import { z } from 'zod';

export const createClientSchema = z.object({
  tipoIdentidad: z.enum(['DNI', 'RUC']),
  nroIdentidad: z.string()
    .min(1, 'Número de identidad requerido')
    .regex(/^\d+$/, 'Solo números'),
  nombre: z.string().min(1, 'Nombre requerido'),
  direccion: z.string().optional(),
  referencia: z.string().optional(),
  telefono: z.string().optional(),
  email: z.string().email('Email inválido').optional().or(z.literal('')),
}).refine(data => {
  if (data.tipoIdentidad === 'DNI' && data.nroIdentidad.length !== 8) return false;
  if (data.tipoIdentidad === 'RUC' && data.nroIdentidad.length !== 11) return false;
  return true;
}, {
  message: 'Longitud de documento inválida para el tipo seleccionado',
  path: ['nroIdentidad'],
});

export const updateClientSchema = createClientSchema.partial();

export type CreateClientInput = z.infer<typeof createClientSchema>;
export type UpdateClientInput = z.infer<typeof updateClientSchema>;