Model/domain/abri
Daniel Roth 13e3e78749 Share the unsuccessful-outcome vocabulary between differ and abandonment
Extract the abandonment outcome strings to a single UnsuccessfulOutcome
Literal + UNSUCCESSFUL_OUTCOMES tuple in domain.abri.models, alongside
SlotCode. The differ's NEGATIVE_OUTCOMES now references the tuple and the
reason-code mapping is keyed on the Literal, so the two can no longer
drift and a mistyped outcome fails type-checking.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-08 14:23:33 +00:00
..
__init__.py Abri log_job returns the OpenHousing job number from the relay success response 🟥 2026-07-03 14:22:09 +00:00
abandonment.py Share the unsuccessful-outcome vocabulary between differ and abandonment 2026-07-08 14:23:33 +00:00
descriptions.py Abri job descriptions identify the visit as a Domna condition survey 🟩 2026-07-03 14:34:05 +00:00
models.py Share the unsuccessful-outcome vocabulary between differ and abandonment 2026-07-08 14:23:33 +00:00
phone_selection.py Phone-number selection policy lives in the domain layer 🟪 2026-07-06 14:47:37 +00:00
slots.py Abri confirmed time before midday books the morning slot 🟩 2026-07-03 14:32:15 +00:00