bmc_hub/docs/CONTACT_LIFECYCLE.md

37 lines
2.0 KiB
Markdown
Raw Permalink Normal View History

2026-11-03 09:08:51 +01:00
# Onboarding og offboarding på kontaktkortet
Kontaktkortets oversigt viser separate forløb. En dato kan gemmes uden automatik.
Automatik bruger kalenderdage og kl. 08 i Europe/Copenhagen, kontrolleres ved
API-start og hvert femte minut og indhenter forfaldne forløb efter nedetid.
Sagens deadline sættes til kl. 17 på datoen, gemt som UTC efter sagsmodulets konvention.
Åbne hovedsager matches på kunde, direkte kontaktrelation og eksplicit type/tag.
En kandidat giver en undersag; flere kræver valg på kontaktkortet. En oprettet
sags reference bevares ved datoændring. Afsluttede sager kræver manuel behandling.
Annullering stopper automatikken og sletter ingen sager.
## Installation
Anvend kun `migrations/1076_contact_lifecycle.sql` i det ønskede miljø og genstart
API'et. Migrationen tilføjer en tabel og indeks uden at ændre eksisterende data.
Uden migration svarer de nye endpoints med 503; eksisterende kontakt-API bevares.
Ingen forløb eller sager oprettes af migrationen.
API: GET/POST `/api/v1/contacts/{id}/lifecycle`, GET `/preview`,
PATCH `/{event_id}` og POST `/{event_id}/cancel` under samme base.
Læsning kræver cases.view/tickets.view; redigering cases.edit/tickets.edit.
Automatik kræver desuden sagsoprettelse og skabeloner templates.run.
Automatikkens seneste godkender skal fortsat være aktiv og have rettighederne.
## Kontrol og drift
Kør `pytest tests/test_contact_lifecycle_api.py tests/test_contact_lifecycle_worker.py tests/test_contacts_router_simple.py`
med projektets venv og `node tests/js/contact-lifecycle.test.cjs`.
Kontrollér i browseren: gem dato uden automatik, planlæg automatisk forløb,
vælg mellem flere hovedsager, åbn oprettet sag, ændr dato og annuller.
Kortet viser fejl og behov for manuel behandling. Tekniske fejl logges af
jobbet `check_contact_lifecycles`; forløb i fejl genforsøges ved næste kørsel.
Ved tilbagerulning deaktiveres jobbet/kodeændringen; behold tabellen for at
bevare historik og referencer. Sammenlægning af kontakter flytter forløbene med.