# Fuente: album/book/ops-templates/backoffice/03-gestion-servicios.md
# Drive: 08. IT y Producto/Catalogo Servicios
# Tests Backend: pytest tests/contracts/productos/test_services.py
# Tests Frontend: npx playwright test admin-services.spec.ts

Feature: Gestion de servicios y precios

  Como administrador
  Quiero gestionar el catalogo de servicios
  Para mantener la oferta actualizada

  Background:
    Given que estoy logueado como administrador
    And estoy en la seccion "Servicios"

  # ============================================
  # VER CATALOGO DE SERVICIOS
  # ============================================

  Scenario: Ver listado de servicios
    When cargo la pagina de servicios
    Then deberia ver todos los servicios organizados por categoria
    And cada servicio deberia mostrar:
      | campo           |
      | Nombre          |
      | Categoria       |
      | Tipo mascota    |
      | Precio actual   |
      | Estado          |

  # ============================================
  # CREAR Y EDITAR SERVICIOS
  # ============================================

  Scenario: Agregar nuevo servicio
    When hago click en "Agregar servicio"
    And completo los datos:
      | campo            | valor                           |
      | Nombre           | Vacuna Quintuple Felina         |
      | Descripcion      | Protege contra 5 enfermedades   |
      | Categoria        | Vacunacion                      |
      | Tipo mascota     | Gato                            |
      | Precio           | 15000                           |
    And guardo el servicio
    Then el servicio deberia crearse
    And deberia aparecer en el turnero para gatos

  Scenario: Desactivar servicio
    Given que existe el servicio "Servicio Antiguo"
    When abro el servicio
    And hago click en "Desactivar"
    And confirmo
    Then el servicio no deberia aparecer en el turnero

  # ============================================
  # GESTION DE PRECIOS
  # ============================================

  Scenario: Actualizar precio de servicio
    Given que "Consulta clinica" tiene precio actual de 10000
    When abro el servicio
    And voy a la seccion "Precios"
    And hago click en "Agregar precio"
    And ingreso nuevo precio 12000
    And selecciono fecha de vigencia "01/02/2024"
    And guardo
    Then deberia crearse el nuevo precio
    And el precio anterior deberia quedar en historial

  Rule: El precio se congela al crear la solicitud

    Scenario: Cambio de precio no afecta solicitudes existentes
      Given que hay una solicitud pendiente con "Consulta clinica" a 10000
      When cambio el precio de "Consulta clinica" a 12000
      Then la solicitud deberia mantener el precio de 10000

  # ============================================
  # CONFIGURAR COMBOS
  # ============================================

  Scenario: Crear combo de servicios
    When voy a "Combos"
    And hago click en "Agregar combo"
    And configuro:
      | campo            | valor                    |
      | Nombre           | Plan Preventivo Felino   |
      | Servicios        | Vacunacion, Desparasitacion |
      | Precio combo     | 25000                    |
    And guardo
    Then el combo deberia crearse
    And deberia aplicarse automaticamente en el turnero
