import { z } from "zod";
import type { Messages } from "@/shared/i18n/config";

export const telematicsProductSchema = (t: Messages) =>
  z.object({
    sku: z.string().min(1, t.validation.codeRequired),
    category: z.enum(["boitier", "module", "capteur", "accessoire"]),
    name: z.string().min(1, t.validation.nameRequired),
    description: z.string().optional(),
    price: z.number().min(0, t.validation.priceMustBePositive),
    stock_quantity: z.number().int().min(0, t.validation.numberNonNegative),
    is_active: z.boolean(),
    needs_covered: z.array(z.string()),
    specifications: z.array(
      z.object({
        key: z.string().min(1, t.validation.labelRequired),
        value: z.string().min(1, t.validation.labelRequired),
      })
    ),
  });

export type TelematicsProductFormValues = z.infer<
  ReturnType<typeof telematicsProductSchema>
>;
