# Gestion de Agenda

## Tipo de usuario
Veterinario

## Donde empieza
Dashboard veterinario `/vet/` -> Menu "Mi agenda" o `/vet/turnos`

## Que quiere hacer el usuario
Ver su calendario de visitas, gestionar disponibilidad y marcar dias no disponibles

## Pasos - Ver agenda

1. Ir a "Mi agenda"
2. Ver calendario con:
   - Visitas confirmadas (con detalle al hacer click)
   - Dias/horarios bloqueados
   - Disponibilidad por franja horaria
3. Navegar entre semanas/meses
4. Filtrar por estado (pendientes, confirmadas, completadas)

## Pasos - Configurar disponibilidad semanal

1. Ir a "Configuracion" -> "Mi disponibilidad"
2. Para cada dia de la semana:
   - Marcar si trabajo ese dia
   - Definir franja horaria (ej: 9:00-18:00)
   - Definir pausa (ej: 13:00-14:00)
3. Guardar configuracion

## Pasos - Bloquear dias especificos

1. En el calendario, click en un dia
2. Seleccionar "Marcar como no disponible"
3. Opcionalmente agregar motivo (vacaciones, curso, etc.)
4. Confirmar
5. Ese dia no aparece como opcion para nuevas solicitudes

## Pasos - Ver detalle de visita

1. Click en una visita en el calendario
2. Ver informacion completa:
   - Dueno: nombre, telefono, direccion
   - Mascota: nombre, tipo, edad, foto
   - Servicios a realizar
   - Historial previo de esa mascota
   - Estado de pago
   - Notas especiales

## Que deberia pasar

- Calendario siempre actualizado con visitas
- No puedo recibir solicitudes en dias bloqueados
- Cambios de disponibilidad afectan solo solicitudes futuras
- Puedo ver toda la informacion necesaria para la visita

## Problemas comunes

- Vet olvida desbloquear dia despues de terminar vacaciones
- Visitas muy seguidas en zonas distantes (logistica)
- Vet quiere mover visita a otro horario
- Visita cancelada a ultimo momento
- Vet no marco indisponibilidad y le llegan solicitudes que no puede atender

## Casos especiales

- Visita reprogramada: mostrar historial de cambios
- Visita cancelada por el dueno: liberar espacio en agenda
- Emergencia: poder agregar visita fuera de horario normal
- Feriados: bloquear automaticamente?
- Multiples visitas mismo dia/zona: optimizar ruta?

## Flujos relacionados

- Aceptar solicitud (agrega a la agenda)
- Realizar visita (inicia desde la agenda)
- Gestionar zonas de cobertura

## Notas tecnicas

- APIs:
  - `GET /mascotas/api/v1/vet-visits/?veterinarian=X`
  - `GET /mascotas/api/v1/vet_availabilities/`
  - `PUT /mascotas/api/v1/vet_availabilities/{id}/`
  - `POST /mascotas/api/v1/vet_unavailabilities/` (dias bloqueados)
- Vista calendario: usar libreria tipo FullCalendar
- Colores por estado: pendiente (amarillo), pagado (verde), completado (azul)
