Saltar a contenido

ADR-012 — Elegibles insuficientes: el motor sortea lo que hay

  • Status: accepted (D12 del BRIEF)
  • Context: Puede haber menos chances elegibles que ganadores + suplentes (semana floja, exclusiones acumuladas).
  • Alternatives: fallar la ejecución (bloquea el sorteo publicado); esperar más participaciones (viola la fecha publicada); sortear lo disponible (elegida).
  • Decision: El motor sortea sobre los elegibles existentes. Si alcanzan para K < N posiciones, el acta registra K resultados y las unidades sin ganador quedan para decisión del operador (devolución al stock / NO_OTORGADO según el momento).
  • Consequences: El sorteo nunca se bloquea; el acta refleja fielmente la escasez.

Implementation Plan

  • Motor: min(elegibles_unicos_por_dni, posiciones) posiciones cubiertas, en orden.
  • Unidades no sorteadas permanecen Asignado hasta acción del operador (auditada).

Verification

  • [ ] Test: 3 elegibles (post-dedup) con 5 premios + 10 suplentes → acta con 3 resultados, 2 unidades sin ganador siguen Asignado.
  • [ ] Test: 0 elegibles → acta vacía válida, sin error.