# Gestion de Solicitudes de Servicio

## Tipo de usuario
Administrador / Operaciones

## Donde empieza
Backoffice `/admin/` -> Dashboard o Seccion "Solicitudes"

## Que quiere hacer el usuario
Ver, filtrar y gestionar todas las solicitudes de servicio del sistema

## Pasos - Ver solicitudes

1. Acceder al backoffice
2. Ir a seccion "Solicitudes"
3. Ver listado con todas las solicitudes
4. Usar filtros para encontrar solicitudes especificas:
   - Por estado (Pendiente, Coordinado, Pagado, Completado, Cancelado)
   - Por fecha
   - Por barrio/zona
   - Por veterinario
   - Por dueno

## Pasos - Ver detalle de solicitud

1. Click en una solicitud del listado
2. Ver toda la informacion:
   - Datos del dueno
   - Datos de la mascota
   - Servicios solicitados
   - Fechas preferidas
   - Veterinario asignado (si hay)
   - Estado de pago
   - Historial de cambios de estado

## Pasos - Asignar veterinario manualmente

1. Abrir solicitud en estado "Pendiente"
2. Click en "Asignar veterinario"
3. Ver lista de vets disponibles en la zona
4. Seleccionar veterinario
5. Seleccionar fecha y hora
6. Confirmar asignacion
7. Sistema notifica al vet y al dueno

## Pasos - Cambiar estado manualmente

1. Abrir solicitud
2. Click en "Cambiar estado"
3. Seleccionar nuevo estado
4. Ingresar motivo (si aplica)
5. Confirmar
6. Se registra en el historial

## Que deberia pasar

- Vision completa de todas las solicitudes
- Capacidad de intervenir cuando algo falla
- Trazabilidad de cambios
- Notificaciones a las partes afectadas

## Problemas comunes

- Solicitud sin vet disponible en la zona
- Usuario pago pero webhook fallo
- Vet no puede asistir y hay que reasignar
- Dueno quiere cancelar pero ya pago
- Solicitudes duplicadas del mismo dueno

## Casos especiales

- Solicitud urgente sin vets disponibles
- Reasignacion a ultimo momento
- Cancelacion con reembolso
- Solicitud con datos incompletos
- Dueno no responde a confirmaciones

## Flujos relacionados

- Proceso de reembolso
- Gestion de usuarios
- Reportes

## Notas tecnicas

- APIs:
  - `GET /solicitudes/api/v1/service-requests/` (listado con filtros)
  - `GET /solicitudes/api/v1/service-requests/{id}/` (detalle)
  - `PATCH /solicitudes/api/v1/service-requests/{id}/` (asignar vet)
  - `PATCH /solicitudes/api/v1/change-service-request-state/` (cambiar estado)
- Estados validos: pending, coordinated, payed, completed, cancelled
- Permisos: solo staff puede ver todas las solicitudes
