import { z } from 'zod';

export const publicTrackSchema = z.object({
  query: z.string().min(1, 'Tracking number or Order Number is required'),
});

export const updateShipmentSchema = z.object({
  orderId: z.string().min(1, 'Order ID is required'),
  trackingNumber: z.string().min(3, 'Tracking number must be at least 3 characters'),
  carrier: z.string().min(2, 'Carrier name is required'),
  carrierSlug: z.string().optional(),
  carrierTrackingUrl: z.string().url().optional(),
  status: z.enum(['CONFIRMED', 'PROCESSING', 'DISPATCHED', 'IN_TRANSIT', 'OUT_FOR_DELIVERY', 'DELIVERED', 'EXCEPTION']).optional(),
  currentLocation: z.string().optional(),
  estimatedDelivery: z.string().datetime().optional(),
  shippedAt: z.string().datetime().optional(),
});

export const addTrackingEventSchema = z.object({
  shipmentId: z.string().min(1, 'Shipment ID is required'),
  status: z.string().min(1, 'Status is required'),
  title: z.string().min(1, 'Title is required'),
  description: z.string().optional(),
  location: z.string().optional(),
  timestamp: z.string().datetime().optional(),
  source: z.string().optional(),
});
