# language: es
# Fuente: album/book/ops-templates/veterinarian/04-zonas-cobertura.md
# Drive: 08. IT y Producto/Funcionalidades Plataforma Veterinario
# Tests Backend: pytest tests/contracts/mascotas/test_veterinarians.py
# Tests Frontend: npx playwright test vet-coverage.spec.ts

Característica: Gestionar zonas de cobertura

  Como veterinario
  Quiero definir en que zonas atiendo
  Para recibir solo solicitudes que puedo cubrir

  Antecedentes:
    Dado que estoy logueado como veterinario
    Y estoy en la seccion "Mi cobertura"

  # ============================================
  # VER ZONAS ACTUALES
  # ============================================

  Escenario: Ver mapa con mis zonas de cobertura
    Cuando cargo la pagina de cobertura
    Entonces deberia ver un mapa de la ciudad
    Y mis zonas cubiertas deberian estar resaltadas
    Y deberia ver un listado de barrios seleccionados

  Escenario: Ver estadisticas por zona
    Dado que tengo cobertura en "Palermo" y "Recoleta"
    Cuando veo el detalle de mis zonas
    Entonces deberia ver para cada zona:
      | metrica                  |
      | Solicitudes este mes     |
      | Visitas completadas      |
      | Otros vets en la zona    |

  # ============================================
  # AGREGAR ZONAS
  # ============================================

  Escenario: Agregar barrio desde el mapa
    Dado que no tengo cobertura en "Belgrano"
    Cuando hago click en "Belgrano" en el mapa
    Y confirmo agregar la zona
    Entonces "Belgrano" deberia aparecer en mi lista de zonas
    Y deberia empezar a ver solicitudes de Belgrano

  Escenario: Agregar barrio desde el buscador
    Cuando busco "Nuñez" en el buscador de barrios
    Y selecciono "Nuñez" de los resultados
    Y confirmo agregar la zona
    Entonces "Nuñez" deberia aparecer en mi lista

  Escenario: Agregar multiples zonas a la vez
    Cuando selecciono los barrios:
      | barrio     |
      | Colegiales |
      | Chacarita  |
      | Villa Crespo |
    Y hago click en "Agregar seleccionados"
    Entonces los 3 barrios deberian agregarse a mi cobertura

  # ============================================
  # QUITAR ZONAS
  # ============================================

  Escenario: Quitar zona de cobertura
    Dado que tengo cobertura en "Recoleta"
    Cuando hago click en "X" junto a "Recoleta"
    Y confirmo quitar la zona
    Entonces "Recoleta" no deberia estar en mi lista
    Y no deberia ver nuevas solicitudes de Recoleta

  Escenario: Quitar zona con solicitudes pendientes
    Dado que tengo cobertura en "Palermo"
    Y hay solicitudes pendientes en Palermo que no acepte
    Cuando intento quitar "Palermo"
    Entonces deberia ver advertencia "Hay X solicitudes pendientes en esta zona"
    Y deberia poder confirmar de todas formas
    # Las solicitudes pendientes siguen disponibles para otros vets

  # ============================================
  # IMPACTO EN SOLICITUDES
  # ============================================

  Regla: Los cambios de zona afectan solo solicitudes nuevas

    Escenario: Agregar zona muestra solicitudes existentes
      Dado que no tengo cobertura en "Belgrano"
      Y hay 3 solicitudes pendientes en Belgrano
      Cuando agrego "Belgrano" a mi cobertura
      Entonces deberia ver las 3 solicitudes pendientes de Belgrano

    Escenario: Quitar zona no afecta visitas aceptadas
      Dado que tengo cobertura en "Recoleta"
      Y tengo una visita aceptada en Recoleta para mañana
      Cuando quito "Recoleta" de mi cobertura
      Entonces la visita de mañana deberia mantenerse
      Pero no deberia ver nuevas solicitudes de Recoleta

  # ============================================
  # CASOS ESPECIALES
  # ============================================

  Escenario: Zona no disponible en el sistema
    Dado que quiero cubrir "Barrio Nuevo"
    Pero ese barrio no esta en el sistema
    Cuando busco "Barrio Nuevo"
    Entonces deberia ver mensaje "Zona no encontrada"
    Y deberia ver opcion "Solicitar que agreguen esta zona"

  Escenario: Zona con baja demanda
    Dado que agrego una zona con poca actividad
    Cuando pasan 30 dias sin solicitudes
    Entonces deberia recibir sugerencia "Considera expandir tu cobertura"

  Escenario: Zona saturada de veterinarios
    Dado que quiero agregar "Palermo"
    Y hay muchos veterinarios cubriendo Palermo
    Cuando agrego la zona
    Entonces deberia ver nota "Esta zona tiene alta cobertura de veterinarios"
    # Informativo, no bloquea
