"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.addTrackingEventSchema = exports.updateShipmentSchema = exports.publicTrackSchema = void 0;
const zod_1 = require("zod");
exports.publicTrackSchema = zod_1.z.object({
    query: zod_1.z.string().min(1, 'Tracking number or Order Number is required'),
});
exports.updateShipmentSchema = zod_1.z.object({
    orderId: zod_1.z.string().min(1, 'Order ID is required'),
    trackingNumber: zod_1.z.string().min(3, 'Tracking number must be at least 3 characters'),
    carrier: zod_1.z.string().min(2, 'Carrier name is required'),
    carrierSlug: zod_1.z.string().optional(),
    carrierTrackingUrl: zod_1.z.string().url().optional(),
    status: zod_1.z.enum(['CONFIRMED', 'PROCESSING', 'DISPATCHED', 'IN_TRANSIT', 'OUT_FOR_DELIVERY', 'DELIVERED', 'EXCEPTION']).optional(),
    currentLocation: zod_1.z.string().optional(),
    estimatedDelivery: zod_1.z.string().datetime().optional(),
    shippedAt: zod_1.z.string().datetime().optional(),
});
exports.addTrackingEventSchema = zod_1.z.object({
    shipmentId: zod_1.z.string().min(1, 'Shipment ID is required'),
    status: zod_1.z.string().min(1, 'Status is required'),
    title: zod_1.z.string().min(1, 'Title is required'),
    description: zod_1.z.string().optional(),
    location: zod_1.z.string().optional(),
    timestamp: zod_1.z.string().datetime().optional(),
    source: zod_1.z.string().optional(),
});
//# sourceMappingURL=tracking.validator.js.map