# Fuente: album/book/ops-templates/backoffice/02-gestion-usuarios.md
# Drive: 05. ATC - Operaciones/Procedimientos
# Tests Backend: pytest tests/contracts/mascotas/test_pet_owners.py
# Tests Frontend: npx playwright test admin-users.spec.ts

Feature: Gestion de usuarios

  Como administrador del backoffice
  Quiero gestionar duenos y veterinarios
  Para mantener la base de usuarios actualizada

  Background:
    Given que estoy logueado como administrador
    And estoy en el backoffice

  # ============================================
  # GESTION DE DUENOS
  # ============================================

  Scenario: Buscar dueno de mascota
    Given que estoy en la seccion "Duenos"
    When busco "maria@ejemplo.com"
    Then deberia ver a Maria Garcia en los resultados
    And deberia ver sus mascotas listadas

  Scenario: Ver perfil completo de dueno
    Given que encontre a "Maria Garcia"
    When hago click en su perfil
    Then deberia ver:
      | seccion             | contenido                    |
      | Datos personales    | Nombre, email, telefono      |
      | Direcciones         | Direcciones registradas      |
      | Mascotas            | Lista de mascotas            |
      | Historial           | Solicitudes anteriores       |

  Scenario: Editar datos de dueno
    Given que estoy viendo el perfil de un dueno
    When hago click en "Editar"
    And cambio el telefono a "1155559999"
    And guardo los cambios
    Then el telefono deberia actualizarse

  # ============================================
  # GESTION DE VETERINARIOS
  # ============================================

  Scenario: Agregar nuevo veterinario
    Given que estoy en la seccion "Veterinarios"
    When hago click en "Agregar veterinario"
    And completo los datos:
      | campo          | valor                |
      | Nombre         | Dr. Juan Perez       |
      | Matricula      | MV-12345             |
      | Email          | jperez@ejemplo.com   |
      | Telefono       | 1155551234           |
    And selecciono zonas de cobertura:
      | zona      |
      | Palermo   |
      | Recoleta  |
    And genero credenciales de acceso
    And guardo
    Then deberia crearse el veterinario
    And deberia poder loguearse con sus credenciales

  Scenario: Intentar desactivar veterinario con citas pendientes
    Given que el veterinario "Dra. Garcia" tiene 3 citas pendientes
    When intento desactivarla
    Then deberia ver advertencia "Tiene 3 citas pendientes"
    And deberia ver opciones:
      | opcion                         |
      | Reasignar citas y desactivar   |
      | Cancelar                       |

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

  Scenario: Fusionar cuentas duplicadas
    Given que hay dos cuentas para el mismo dueno:
      | cuenta  | email              | mascotas |
      | Cuenta1 | maria@gmail.com    | Luna     |
      | Cuenta2 | maria@hotmail.com  | Rocky    |
    When selecciono ambas cuentas
    And hago click en "Fusionar"
    And elijo Cuenta1 como principal
    And confirmo
    Then deberia existir solo Cuenta1
    And deberia tener ambas mascotas
