# VET-005: Estetica (Grooming) ## Metadata - **Codigo:** VET-005 - **Modulo:** Estetica - **Prioridad:** P2 - **Estado:** DDL Completado - **Fase:** 4 - Servicios Adicionales ## Descripcion Sistema de gestion de servicios de estetica canina y felina (grooming): agenda de servicios, tipos de corte, productos utilizados, observaciones de piel/pelaje, y registro de tiempos. ## Objetivos 1. Agenda de servicios de estetica 2. Registro de servicios realizados 3. Control de productos (shampoos) 4. Observaciones de piel/pelaje 5. Historial por mascota ## Alcance ### Incluido - Tipos de servicio: bano, corte, limpieza oidos, corte unas - Tipos de corte por raza - Productos/shampoos utilizados - Estado del servicio - Hora inicio/fin - Observaciones de piel - Precio por servicio ### Excluido - Reservas online - Fotos antes/despues - Calificacion del cliente ## Servicios de Estetica | Servicio | Descripcion | Duracion Aprox | |----------|-------------|----------------| | Bano | Bano con shampoo | 30-45 min | | Corte | Corte de pelo | 45-90 min | | Bano + Corte | Servicio completo | 60-120 min | | Limpieza oidos | Limpieza auditiva | 10 min | | Corte unas | Corte de unas | 10 min | | Deslanado | Remocion de pelo muerto | 30-60 min | | Tratamiento piel | Tratamiento dermatologico | 30 min | ## Tipos de Corte por Raza ### Caninos | Raza | Cortes Tipicos | |------|----------------| | Poodle | Continental, Puppy, Teddy Bear | | Schnauzer | Schnauzer estandar, Puppy | | Cocker | Cocker estandar, Puppy | | Yorkshire | Show, Puppy | | Bichon | Bichon estandar, Teddy Bear | ### Felinos | Tipo | Cortes | |------|--------| | Pelo largo | Leon, Higienico | | Pelo corto | Solo bano (sin corte) | ## Modelo de Datos ### Tabla: veterinaria.estetica | Campo | Tipo | Descripcion | |-------|------|-------------| | id | UUID | PK | | tenant_id | UUID | FK | | mascota_id | UUID | FK | | estilista_id | UUID | FK empleado | | fecha_servicio | TIMESTAMPTZ | Fecha/hora | | servicios | TEXT[] | Lista de servicios | | tipo_corte | VARCHAR(50) | Tipo de corte | | shampoo_usado | VARCHAR(100) | Producto | | estado | VARCHAR(20) | pendiente, en_proceso, terminado | | hora_inicio | TIME | Inicio | | hora_fin | TIME | Fin | | observaciones | TEXT | Notas generales | | observaciones_piel | TEXT | Estado de piel/pelaje | | precio | NUMERIC(10,2) | Total | ## Endpoints API | Metodo | Endpoint | Descripcion | |--------|----------|-------------| | GET | /estetica | Servicios del dia | | GET | /estetica/:id | Detalle servicio | | POST | /estetica | Agendar servicio | | PUT | /estetica/:id | Actualizar | | PUT | /estetica/:id/iniciar | Iniciar servicio | | PUT | /estetica/:id/terminar | Terminar servicio | | GET | /mascotas/:id/estetica | Historial mascota | | GET | /estetica/agenda | Agenda por fecha | ## Interfaz del Servicio ```typescript interface EsteticaService { getDelDia(): Promise; getById(id: string): Promise; agendar(data: AgendarEstetica): Promise; iniciar(id: string): Promise; terminar(id: string, data: TerminarEstetica): Promise; getHistorial(mascotaId: string): Promise; getAgenda(fecha: Date): Promise; } interface AgendarEstetica { mascotaId: string; estilistaId?: string; fechaServicio: Date; servicios: string[]; tipoCorte?: string; precio?: number; } interface TerminarEstetica { shampooUsado?: string; observaciones?: string; observacionesPiel?: string; precioFinal?: number; } ``` ## Flujos ### Agendar Servicio ``` 1. Propietario solicita servicio 2. Verificar disponibilidad de estilista 3. Crear registro de estetica: - Mascota - Servicios solicitados - Tipo de corte (si aplica) - Fecha/hora 4. Confirmar con propietario 5. Estado: pendiente ``` ### Ejecutar Servicio ``` 1. Mascota llega a la clinica 2. Estilista marca inicio 3. Realiza servicios: - Bano - Secado - Corte (si aplica) - Extras (orejas, unas) 4. Revisar piel/pelaje 5. Registrar observaciones 6. Marcar como terminado 7. Notificar a propietario 8. Agregar a cuenta ``` ## Productos/Shampoos ```typescript const SHAMPOOS = [ { nombre: 'Shampoo Regular', tipo: 'normal' }, { nombre: 'Shampoo Antipulgas', tipo: 'antiparasitario' }, { nombre: 'Shampoo Dermatologico', tipo: 'medicado' }, { nombre: 'Shampoo Pelo Blanco', tipo: 'especial' }, { nombre: 'Shampoo Cachorro', tipo: 'suave' }, { nombre: 'Acondicionador', tipo: 'complemento' } ]; ``` ## Observaciones de Piel ```typescript interface ObservacionesPiel { estado: 'normal' | 'irritada' | 'seca' | 'grasa' | 'con_lesiones'; parasitos: boolean; pulgas: boolean; garrapatas: boolean; hotspots: boolean; perdidaPelo: boolean; nudos: 'ninguno' | 'pocos' | 'muchos'; notas: string; } ``` ## Panel de Estetica ``` ┌─────────────────────────────────────────────────────────┐ │ ESTETICA - Agenda del Dia (07/01/2026) │ ├─────────────────────────────────────────────────────────┤ │ 09:00 │ 🐕 Firulais │ Bano + Corte │ ✓ Terminado │ │ 10:30 │ 🐈 Michi │ Bano │ ⏳ En proceso │ │ 11:30 │ 🐕 Rocky │ Deslanado │ ⏸ Pendiente │ │ 14:00 │ 🐕 Luna │ Bano + Corte │ ⏸ Pendiente │ │ 15:30 │ 🐕 Max │ Corte unas │ ⏸ Pendiente │ ├─────────────────────────────────────────────────────────┤ │ Estilistas: Ana (4 servicios), Carlos (1 servicio) │ └─────────────────────────────────────────────────────────┘ ``` ## Precios Sugeridos | Servicio | Pequeno | Mediano | Grande | |----------|---------|---------|--------| | Bano | $150 | $200 | $300 | | Corte | $200 | $300 | $450 | | Bano + Corte | $300 | $450 | $650 | | Deslanado | $200 | $300 | $400 | | Limpieza oidos | $50 | $50 | $50 | | Corte unas | $50 | $50 | $50 | ## Entregables | Entregable | Estado | Archivo | |------------|--------|---------| | DDL estetica | Completado | `database/schemas/01-veterinaria-schema-ddl.sql` | | estetica.module.ts | Pendiente | `backend/modules/estetica/` | | EsteticaAgenda.tsx | Pendiente | `frontend/components/` | | EsteticaForm.tsx | Pendiente | `frontend/components/` | ## Dependencias ### Depende de - VET-001 (Mascotas) - Employees (erp-core) ### Bloquea a - Reportes de productividad - App para propietarios ## Criterios de Aceptacion - [ ] Agendar servicio funciona - [ ] Lista de servicios configurable - [ ] Estados se actualizan - [ ] Hora inicio/fin se registra - [ ] Observaciones de piel - [ ] Historial por mascota - [ ] Precio se calcula --- **Ultima actualizacion:** 2026-01-07