Primer commit
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
import { z } from 'zod';
|
||||
|
||||
export const PacienteSchema = z.object({
|
||||
id: z.string().uuid().optional(),
|
||||
nombre: z.string().min(2, "El nombre debe tener al menos 2 caracteres"),
|
||||
telefono: z.string().optional(),
|
||||
email: z.string().email("Correo inválido").optional(),
|
||||
notas_clinicas: z.string().optional(),
|
||||
});
|
||||
|
||||
export const ProcedimientoSchema = z.object({
|
||||
id: z.string().uuid().optional(),
|
||||
nombre: z.string().min(2, "Procedimiento requerido"),
|
||||
duracion_minutos: z.number().int().positive("Obligatorio"),
|
||||
precio: z.number().positive().optional(),
|
||||
});
|
||||
|
||||
export const CitaSchema = z.object({
|
||||
id: z.string().uuid().optional(),
|
||||
paciente_id: z.string().uuid(),
|
||||
procedimiento_id: z.string().uuid().optional(),
|
||||
start_time: z.string().datetime(),
|
||||
end_time: z.string().datetime(),
|
||||
status: z.enum(["agendada", "completada", "cancelada"]).default("agendada"),
|
||||
medico_id: z.string().uuid(),
|
||||
});
|
||||
|
||||
export const InteraccionSchema = z.object({
|
||||
id: z.string().uuid().optional(),
|
||||
paciente_id: z.string().uuid(),
|
||||
plataforma: z.enum(["whatsapp", "instagram", "tiktok", "web"]),
|
||||
request_payload: z.any(),
|
||||
});
|
||||
|
||||
export const ChatStatusSchema = z.object({
|
||||
id: z.string().uuid().optional(),
|
||||
paciente_id: z.string().uuid(),
|
||||
ia_activa: z.boolean().default(true),
|
||||
last_updated: z.string().datetime().optional()
|
||||
});
|
||||
Reference in New Issue
Block a user