# language: es # Fuente: album/book/ops-templates/backoffice/01-gestion-solicitudes.md # Drive: 05. ATC - Operaciones/Procedimientos # Tests Backend: pytest tests/contracts/solicitudes/test_service_requests.py # Tests Frontend: npx playwright test admin-requests.spec.ts Característica: Gestion de solicitudes de servicio Como administrador del backoffice Quiero gestionar todas las solicitudes del sistema Para asegurar que se atiendan correctamente Antecedentes: Dado que estoy logueado como administrador Y estoy en la seccion "Solicitudes" del backoffice # ============================================ # VER Y FILTRAR SOLICITUDES # ============================================ Escenario: Ver listado de todas las solicitudes Cuando cargo la pagina de solicitudes Entonces deberia ver un listado paginado Y cada solicitud deberia mostrar: | campo | | ID | | Dueno | | Mascota | | Servicios | | Estado | | Fecha | Esquema del escenario: Filtrar solicitudes por estado Cuando filtro por estado "" Entonces solo deberia ver solicitudes con estado "" Ejemplos: | estado | | Pendiente | | Coordinado | | Pagado | | Completado | | Cancelado | Escenario: Buscar solicitud especifica Cuando busco por email "maria@ejemplo.com" Entonces deberia ver solo solicitudes de ese dueno Escenario: Filtrar por rango de fechas Cuando filtro desde "01/01/2024" hasta "31/01/2024" Entonces solo deberia ver solicitudes de enero 2024 # ============================================ # ASIGNAR VETERINARIO MANUALMENTE # ============================================ Escenario: Asignar veterinario a solicitud pendiente Dado que hay una solicitud pendiente en "Palermo" Y no fue aceptada por ningun veterinario Cuando abro el detalle de la solicitud Y hago click en "Asignar veterinario" Entonces deberia ver lista de veterinarios con cobertura en Palermo Cuando selecciono "Dra. Garcia" Y selecciono fecha "15 de enero" hora "10:00" Y confirmo la asignacion Entonces la solicitud deberia pasar a estado "Coordinado" Y deberia estar asignada a Dra. Garcia Y el dueno deberia recibir notificacion Y el veterinario deberia recibir notificacion Escenario: Ver disponibilidad de veterinarios antes de asignar Dado que estoy asignando un veterinario Cuando veo la lista de veterinarios disponibles Entonces deberia ver para cada uno: | informacion | | Nombre | | Disponibilidad | | Visitas del dia | | Distancia a destino | # ============================================ # CAMBIAR ESTADO MANUALMENTE # ============================================ Escenario: Cambiar estado de solicitud Dado que hay una solicitud en estado "Coordinado" Y el pago se proceso pero el webhook fallo Cuando abro la solicitud Y hago click en "Cambiar estado" Y selecciono "Pagado" Y ingreso motivo "Pago confirmado manualmente - ID MP: 12345" Y confirmo el cambio Entonces la solicitud deberia pasar a "Pagado" Y el cambio deberia registrarse en el historial Y deberia quedar mi usuario como responsable del cambio Regla: Solo ciertos cambios de estado son validos Escenario: No puedo volver a estado anterior Dado que hay una solicitud en estado "Completado" Cuando intento cambiar el estado a "Pagado" Entonces deberia ver error "No se puede volver a un estado anterior" Escenario: Puedo cancelar desde cualquier estado Dado que hay una solicitud en estado "Coordinado" Cuando cambio el estado a "Cancelado" Y ingreso motivo de cancelacion Entonces la solicitud deberia cancelarse # ============================================ # VER DETALLE COMPLETO # ============================================ Escenario: Ver historial de cambios de una solicitud Dado que hay una solicitud con varios cambios de estado Cuando abro el detalle de la solicitud Y voy a la pestaña "Historial" Entonces deberia ver todos los cambios con: | campo | | Fecha y hora | | Estado anterior | | Estado nuevo | | Usuario | | Motivo | Escenario: Ver informacion de pago Dado que hay una solicitud pagada Cuando abro el detalle Entonces deberia ver seccion "Pago" con: | campo | | Monto | | Fecha de pago | | Metodo | | ID operacion MP | | Estado del pago | # ============================================ # CASOS ESPECIALES # ============================================ Escenario: Reasignar veterinario Dado que hay una solicitud asignada a "Dr. Lopez" Y Dr. Lopez no puede asistir Cuando abro la solicitud Y hago click en "Reasignar" Y selecciono otro veterinario Y confirmo Entonces Dr. Lopez deberia ser notificado de la desasignacion Y el nuevo vet deberia ser notificado Y el dueno deberia ser notificado del cambio Escenario: Solicitud sin veterinarios disponibles Dado que hay una solicitud pendiente en una zona remota Y no hay veterinarios con cobertura en esa zona Cuando intento asignar veterinario Entonces deberia ver mensaje "No hay veterinarios disponibles" Y deberia poder expandir la busqueda a zonas cercanas