# Fuente: album/book/ops-templates/pet-owner/05-historial-medico.md
# Drive: 08. IT y Producto/Funcionalidades Plataforma Veterinario
# Tests Backend: pytest tests/contracts/mascotas/test_vet_visits.py
# Tests Frontend: npx playwright test medical-history.spec.ts

Feature: Ver historial medico

  Como dueno de mascota
  Quiero ver el historial medico de mis mascotas
  Para tener registro de sus visitas y tratamientos

  Background:
    Given que estoy logueado como dueno de mascota
    And tengo una mascota "Luna" con visitas completadas

  # ============================================
  # ACCESO AL HISTORIAL
  # ============================================

  Scenario: Acceder al historial desde mascotas
    Given que estoy en "Mis mascotas"
    When hago click en "Luna"
    And voy a la seccion "Historial de visitas"
    Then deberia ver lista de visitas de Luna

  Scenario: Acceder al historial desde turnos
    Given que estoy en "Mis turnos"
    And filtro por "Completados"
    When hago click en un turno de Luna
    And hago click en "Ver informe medico"
    Then deberia ver el informe de esa visita

  # ============================================
  # VISUALIZACION DE VISITAS
  # ============================================

  Scenario: Ver lista de visitas ordenadas
    Given que Luna tiene visitas en las siguientes fechas:
      | fecha       |
      | 2024-01-15  |
      | 2023-11-20  |
      | 2023-06-10  |
    When veo el historial de Luna
    Then deberia ver las visitas ordenadas de mas reciente a mas antigua
    And la primera deberia ser del "15 de enero 2024"

  Scenario: Ver detalle completo de informe
    When hago click en una visita completada
    Then deberia ver los siguientes datos:
      | seccion           | contenido                        |
      | Informacion       | Fecha, veterinario, servicios    |
      | Examen fisico     | Peso, temperatura, FC, obs       |
      | Diagnostico       | Descripcion del diagnostico      |
      | Tratamiento       | Plan de tratamiento              |
      | Medicamentos      | Lista con dosis y frecuencia     |
      | Estudios          | Estudios solicitados y estado    |
      | Seguimiento       | Recomendaciones, proximo control |

  Scenario: Ver informe con medicamentos recetados
    Given que la visita incluye medicamentos:
      """
      1. Amoxicilina 250mg - 1 comprimido cada 12hs por 7 dias
      2. Meloxicam 1.5mg - 1 comprimido por dia por 3 dias
      """
    When veo el informe
    Then deberia ver la lista de medicamentos
    And cada medicamento deberia mostrar:
      | campo       |
      | Nombre      |
      | Dosis       |
      | Frecuencia  |
      | Duracion    |

  # ============================================
  # DESCARGA Y COMPARTIR
  # ============================================

  Scenario: Descargar informe como PDF
    Given que estoy viendo un informe medico
    When hago click en "Descargar PDF"
    Then deberia descargarse un archivo PDF
    And el PDF deberia contener toda la informacion del informe
    And deberia tener el logo de Amar Mascotas

  Scenario: Imprimir informe
    Given que estoy viendo un informe medico
    When hago click en "Imprimir"
    Then deberia abrirse el dialogo de impresion
    And el formato deberia ser optimizado para impresion

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

  Scenario: Visita completada sin informe cargado
    # El vet no cargo el informe todavia
    Given que Luna tiene una visita marcada como "Completada"
    But el veterinario no cargo el informe aun
    When intento ver el informe
    Then deberia ver mensaje "Informe pendiente"
    And deberia ver "El veterinario esta completando el informe"

  Scenario: Informe con estudios pendientes
    Given que el informe solicita estudios de laboratorio
    And los resultados aun no estan disponibles
    When veo el informe
    Then deberia ver seccion "Estudios solicitados"
    And deberia ver estado "Pendiente de resultados"
    And deberia ver nota "Se notificara cuando esten listos"

  Scenario: Mascota con multiples visitas el mismo dia
    # Raro pero posible: consulta de urgencia + seguimiento
    Given que Luna tuvo 2 visitas el 15 de enero
    When veo el historial
    Then deberia ver ambas visitas listadas
    And deberian estar diferenciadas por hora

  # ============================================
  # PERMISOS Y PRIVACIDAD
  # ============================================

  Rule: Solo el dueno puede ver el historial de su mascota

    Scenario: Dueno ve historial de su mascota
      Given que soy dueno de Luna
      When accedo al historial de Luna
      Then deberia poder verlo completo

    Scenario: No puedo ver historial de mascota ajena
      Given que existe mascota "Rocky" de otro dueno
      When intento acceder al historial de Rocky
      Then deberia ver error "No tienes acceso"
      # 403 Forbidden

  # ============================================
  # BUSQUEDA Y FILTROS
  # ============================================

  Scenario: Filtrar historial por tipo de servicio
    Given que Luna tiene visitas de vacunacion y consulta
    When filtro por "Vacunacion"
    Then solo deberia ver visitas de vacunacion

  Scenario: Buscar en historial por fecha
    When busco visitas del "2023"
    Then solo deberia ver visitas del 2023
    And no deberia ver visitas del 2024
