# language: es
# Fuente: album/book/ops-templates/backoffice/04-reembolsos.md
# Drive: 07. Finanzas y contabilidad/Reembolsos
# Tests Backend: pytest tests/contracts/payments/test_refunds.py
# Tests Frontend: npx playwright test admin-refunds.spec.ts

Característica: Proceso de reembolso

  Como administrador
  Quiero procesar reembolsos de pagos
  Para resolver cancelaciones y problemas

  Antecedentes:
    Dado que estoy logueado como administrador
    Y estoy en el backoffice

  # ============================================
  # IDENTIFICAR PAGO A REEMBOLSAR
  # ============================================

  Escenario: Buscar solicitud pagada por ID de operacion
    Cuando busco por ID de Mercado Pago "12345678"
    Entonces deberia encontrar la solicitud asociada
    Y deberia ver los detalles del pago

  Escenario: Ver detalles de pago
    Dado que encontre una solicitud pagada
    Cuando veo la seccion de pago
    Entonces deberia ver:
      | campo                |
      | Monto pagado         |
      | Fecha de pago        |
      | Metodo de pago       |
      | ID operacion MP      |
      | Estado en MP         |

  # ============================================
  # PROCESAR REEMBOLSO
  # ============================================

  Escenario: Reembolso total exitoso
    Dado que hay una solicitud pagada por 15000
    Y la visita fue cancelada
    Cuando abro la solicitud
    Y hago click en "Procesar reembolso"
    Y selecciono "Reembolso total"
    Y ingreso motivo "Cancelacion por indisponibilidad del veterinario"
    Y confirmo el reembolso
    Entonces deberia enviarse la solicitud de reembolso a Mercado Pago
    Y deberia ver mensaje "Reembolso en proceso"
    Y la solicitud deberia registrar el reembolso
    Y el dueno deberia recibir email de confirmacion

  Escenario: Reembolso parcial
    Dado que hay una solicitud pagada por 20000
    Y solo se realizo parte del servicio
    Cuando proceso reembolso parcial por 10000
    Y ingreso motivo "Servicio parcialmente completado"
    Y confirmo
    Entonces deberia procesarse reembolso por 10000
    Y deberia quedar registro del monto reembolsado
    Y deberia quedar registro del monto retenido

  # ============================================
  # TIEMPOS DE ACREDITACION
  # ============================================

  Esquema del escenario: Informar tiempo de acreditacion segun metodo
    Dado que el pago original fue con "<metodo>"
    Cuando proceso el reembolso
    Entonces deberia informar al usuario:
      """
      El reembolso se acreditara en <tiempo>
      """

    Ejemplos:
      | metodo              | tiempo                          |
      | Tarjeta credito     | 1-2 resumenes de cuenta         |
      | Tarjeta debito      | 5-10 dias habiles               |
      | Dinero en cuenta MP | forma inmediata                 |
      | Transferencia       | 5-10 dias habiles               |

  # ============================================
  # VALIDACIONES Y ERRORES
  # ============================================

  Escenario: No puedo reembolsar mas del monto pagado
    Dado que hay una solicitud pagada por 15000
    Cuando intento reembolsar 20000
    Entonces deberia ver error "El monto supera el pago original"

  Escenario: Reembolso duplicado
    Dado que ya procese un reembolso total para una solicitud
    Cuando intento procesar otro reembolso
    Entonces deberia ver error "Esta solicitud ya fue reembolsada"

  Escenario: Pago fuera de plazo de reembolso
    Dado que hay un pago de hace 200 dias
    Cuando intento reembolsar
    Entonces deberia ver advertencia "Fuera de plazo de reembolso de MP (180 dias)"
    Y deberia sugerir "Contactar al dueno para solucion alternativa"

  # ============================================
  # SEGUIMIENTO
  # ============================================

  Escenario: Ver estado del reembolso
    Dado que procese un reembolso hace 2 dias
    Cuando veo el detalle del reembolso
    Entonces deberia ver el estado actual en Mercado Pago
    Y deberia ver historial de estados:
      | estado      | fecha       |
      | Solicitado  | 01/01/2024  |
      | En proceso  | 01/01/2024  |
      | Completado  | 03/01/2024  |

  Escenario: Reembolso rechazado por MP
    Dado que Mercado Pago rechazo el reembolso
    Cuando veo el estado
    Entonces deberia ver "Reembolso rechazado"
    Y deberia ver el motivo del rechazo
    Y deberia poder contactar al dueno con alternativas

  # ============================================
  # REGISTRO Y AUDITORIA
  # ============================================

  Regla: Todos los reembolsos quedan registrados

    Escenario: Ver historial de reembolsos
      Cuando voy a "Reportes" -> "Reembolsos"
      Entonces deberia ver lista de todos los reembolsos
      Y cada uno deberia mostrar:
        | campo            |
        | Solicitud        |
        | Monto original   |
        | Monto reembolso  |
        | Motivo           |
        | Procesado por    |
        | Fecha            |
        | Estado           |
