# Fuente: album/book/ops-templates/backoffice/05-reportes.md
# Drive: 07. Finanzas y contabilidad/Reportes
# Tests Backend: pytest tests/contracts/mascotas/test_stats.py
# Tests Frontend: npx playwright test admin-reports.spec.ts

Feature: Reportes y dashboard

  Como administrador o gerente
  Quiero ver metricas y generar reportes
  Para tomar decisiones informadas

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

  # ============================================
  # DASHBOARD
  # ============================================

  Scenario: Ver dashboard principal
    When accedo al dashboard
    Then deberia ver metricas resumidas:
      | metrica               | periodo  |
      | Solicitudes nuevas    | Hoy      |
      | Visitas completadas   | Semana   |
      | Ingresos              | Mes      |
      | Veterinarios activos  | Actual   |
      | Tasa de conversion    | Mes      |

  Scenario: Ver grafico de tendencia
    When veo el grafico de solicitudes
    Then deberia ver la evolucion de los ultimos 30 dias
    And deberia poder comparar con periodo anterior

  # ============================================
  # REPORTE DE SOLICITUDES
  # ============================================

  Scenario: Generar reporte de solicitudes
    When voy a "Reportes" -> "Solicitudes"
    And selecciono periodo "Enero 2024"
    And hago click en "Generar"
    Then deberia ver tabla con solicitudes del periodo
    And deberia ver totales por estado

  Scenario: Filtrar reporte por multiples criterios
    When genero reporte con filtros:
      | filtro         | valor       |
      | Periodo        | Enero 2024  |
      | Zona           | Palermo     |
      | Veterinario    | Dra. Garcia |
    Then deberia ver solo solicitudes que cumplan todos los criterios

  # ============================================
  # REPORTE DE INGRESOS
  # ============================================

  Scenario: Ver ingresos por periodo
    When voy a "Reportes" -> "Ingresos"
    And selecciono "Ultimo trimestre"
    Then deberia ver:
      | dato                  |
      | Ingresos totales      |
      | Cantidad de pagos     |
      | Ticket promedio       |
      | Reembolsos realizados |
      | Ingreso neto          |

  Scenario: Ingresos agrupados por veterinario
    When agrupo el reporte por "Veterinario"
    Then deberia ver para cada vet:
      | dato                  |
      | Visitas completadas   |
      | Ingresos generados    |
      | Porcentaje del total  |

  # ============================================
  # EXPORTACION
  # ============================================

  Scenario Outline: Exportar reporte en diferentes formatos
    Given que tengo un reporte generado
    When hago click en "Exportar"
    And selecciono formato "<formato>"
    Then deberia descargarse el archivo en formato <formato>

    Examples:
      | formato |
      | CSV     |
      | Excel   |
      | PDF     |

  Scenario: Exportar reporte grande de forma asincrona
    Given que genere un reporte con mas de 10000 registros
    When hago click en "Exportar"
    Then deberia ver mensaje "Generando exportacion..."
    And deberia recibir notificacion cuando este listo
