F1 costruisce i mattoni su cui poggia tutta la migrazione: confini tra contesti, attore, eventi con outbox, ruoli e permessi, proiezione verso WordPress e i primi comandi locali dell'agenda. Queste pagine mostrano, con il codice reale, come ogni piano ha realizzato i paradigmi e dove l'implementazione ha precisato il piano.
I quattro piani sono implementati e integrati nel branch epic/migrazione-F1 (merge ca4ebcbf, 12 novembre 2026), non ancora in main. Per i concetti di base parti dalla guida Paradigmi della migrazione.
packwerk e i sei pacchetti, Attore e Current.attore, Dominio::RegolaViolata, Eventi.pubblica con l'outbox, la riconsegna e i subscriber idempotenti.
Il ruolo sull'utente, la matrice ruolo → azioni con richiedi_permesso!, l'import dei 54 utenti WP e l'invito di admin e operation.
Il pacchetto legacy_wp: registro, adattatori, proiezioni, filtro anti-eco, registro delle scritture su WP, riconciliazione e cruscotto admin.
Fissa, modifica e annulla l'appuntamento in Support dietro il flag agenda_comandi_locali, con la proiezione su WP come effetto dell'evento.
F1-02 e F1-03 si sono sviluppati in parallelo fino al Task 10 di F1-03. Da lì F1-03 ha usato i permessi e users.legacy_wp_id di F1-02. F1-04 poggia sulla sync inversa.
flowchart LR A["F1-01 convenzioni
pacchetti, attore, eventi"] --> B["F1-02 accessi
ruoli e permessi"] A --> C["F1-03 sync inversa
LegacyWp"] B -->|"Task 11 e 13"| C C --> D["F1-04 comandi agenda"] B --> F21["F2-01 tecnici"] C --> F21 D --> F2["F2-02, F2-03,
F2-04, F2-06"]
| Step | Mattoni principali | Tabelle | Li usano |
|---|---|---|---|
| F1-01 | Attore, ApplicationJob.con_attore, Dominio::RegolaViolata, Eventi.pubblica, Eventi::RiconsegnaJob, Eventi::Idempotente, package.yml e CI packwerk | kernel_eventi, kernel_eventi_elaborati | tutti gli step successivi |
| F1-02 | Accessi::Ruoli, Accessi::Permessi, richiedi_permesso!, InvitaUtenti, AbbinaOperatori, LegacyWp::ImportaUtenti | users.ruolo, invitato_il, legacy_wp_id | F1-03 (attore WP, cruscotto), tutti i controller F2 |
| F1-03 | LegacyWp::Registro, Adattatori::Base, Proietta, ProiettaJob, FiltroEco, RegistroScrittureWp, Proprieta.master? | legacy_wp_proiezioni, legacy_wp_scritture | F1-04 e ogni kind di F2 che WP legge |
| F1-04 | FissaAppuntamento, ModificaAppuntamento, AnnullaAppuntamento, Appuntamento.programmati, Adattatori::Appuntamento, dominio.it.yml | appuntamenti.stato, FK sugli hub, wp_post_id nullable sui token | F2-02, F2-04, F2-05 |