import { z } from "zod"; // Quote creation (admin builder) export const createQuoteSchema = z.object({ client_id: z.string().min(1, "Cliente richiesto"), offer_micro_id: z.string().min(1, "Offerta richiesta"), accepted_total: z.string().regex(/^\d+(\.\d{1,2})?$/, "Formato prezzo invalido"), }); // Quote accept (public page, Step 3) export const acceptQuoteSchema = z.object({ token: z.string().length(21, "Token invalido"), email: z.string().email("Email valida").optional().or(z.literal("")), notes: z.string().max(500, "Max 500 caratteri").optional().or(z.literal("")), }); // Quote step validation (public page Steps 1-2) export const quoteStep2Schema = z.object({ tier: z.enum(["A", "B", "C"]).optional(), priceOverrides: z.record(z.string(), z.number().min(0)).optional(), }); export type CreateQuoteInput = z.infer; export type AcceptQuoteInput = z.infer; export type QuoteStep2Input = z.infer;