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
- Agenda de servicios de estetica
- Registro de servicios realizados
- Control de productos (shampoos)
- Observaciones de piel/pelaje
- 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
interface EsteticaService {
getDelDia(): Promise<Estetica[]>;
getById(id: string): Promise<Estetica>;
agendar(data: AgendarEstetica): Promise<Estetica>;
iniciar(id: string): Promise<Estetica>;
terminar(id: string, data: TerminarEstetica): Promise<Estetica>;
getHistorial(mascotaId: string): Promise<Estetica[]>;
getAgenda(fecha: Date): Promise<Estetica[]>;
}
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
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
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
Ultima actualizacion: 2026-01-07