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

export const createPlanSchema = (t: Messages) =>
  z.object({
    name: z.string().min(1, t.validation.nameRequired),
    display_name: z.string().min(1, t.validation.displayNameRequired),
    display_name_fr: z.string().optional(),
    display_name_en: z.string().optional(),
    description: z.string().optional(),
    original_price: z.number().min(0, t.validation.priceMustBePositive),
    discounted_price: z.number().min(0).optional(),
    discount_percentage: z.number().min(0).max(100).optional(),
    billing_frequency: z.string().min(1, t.validation.frequencyRequired),
    is_active: z.boolean().optional(),
    is_popular: z.boolean().optional(),
    unlimited: z.boolean().optional(),
    display_order: z.number().optional(),
  });

export const updatePlanSchema = (t: Messages) => createPlanSchema(t).partial();

export type CreatePlanFormValues = z.infer<ReturnType<typeof createPlanSchema>>;
export type UpdatePlanFormValues = z.infer<ReturnType<typeof updatePlanSchema>>;
