From eab0b24ac3174123c2bfcbeac2ae04d044dd336c Mon Sep 17 00:00:00 2001 From: Paolo Date: Sat, 2 May 2026 03:00:02 +0200 Subject: [PATCH] Auto-sync: 20260502_030000 --- .DS_Store | Bin 30724 -> 30724 bytes memory-bank/attempted-solutions.md | 16 ++++++++++++++++ memory-bank/next-session.md | 16 ++++++++++++++++ memory-bank/rules.md | 11 +++++++++++ 4 files changed, 43 insertions(+) create mode 100644 memory-bank/attempted-solutions.md create mode 100644 memory-bank/next-session.md create mode 100644 memory-bank/rules.md diff --git a/.DS_Store b/.DS_Store index 782c942912a022aff79f65005988f1293e6a9fa1..94db28bf787a76fa0019b56e39bc6c1550ff5e0b 100644 GIT binary patch delta 81 zcmZqqz}WJEal>5s$s0A(IT#>7YI1^t#AX!*UW3V^9;NKYrbapnmWGo9;$5s$s07&IT#>7YI1^t#AX!*UW3WYG|Pld4UBaZjE&4|brh-%&5aCn k6f7p|Yne{w4-ntX8n}dS^Q!ncoSR)EQ`k1I%8%jz0Qn9W*8l(j diff --git a/memory-bank/attempted-solutions.md b/memory-bank/attempted-solutions.md new file mode 100644 index 0000000..0988a49 --- /dev/null +++ b/memory-bank/attempted-solutions.md @@ -0,0 +1,16 @@ +# Attempted Solutions + +In questo documento si tengono tracce delle soluzioni scartate o fallite, per non ripeterle in futuro. + +## Deserializzazione Firebase (Circostanze) +- **Problema**: Firebase trasforma dizionari con chiavi numeriche sequenziali (es. la lista di checkbox delle 17 circostanze) in liste dinamiche, portando l'app a crashare in caso di cast diretto a Map. +- **Soluzione adottata**: Uso della funzione statica `fixCircostanze` in `cid_data_manager.dart` per garantire la lettura unificata in Mappa. *Non tentare parsing diretti `as Map` sulle circostanze.* + +## Monetizzazione (Modello Abbonamento) +- **Tentativo**: Inizialmente configurato con RevenueCat come abbonamento ricorrente (rinnovo automatico). +- **Esito**: Modello scartato (29 Aprile 2026) a favore di un "passaggio Una-Tantum" di 1 mese. +- **Motivo**: Il modulo CAI si compila raramente. Un abbonamento ricorrente causava attrito e scarsa conversione. *Non reinserire logiche di recurring billing sul paywall.* + +## Interfaccia Paywall iOS (Overflow) +- **Problema**: Crash visivo "bottom overflow" su schermi iOS piccoli a causa della rigidezza del widget del paywall. +- **Soluzione adottata**: Inserimento del blocco in un `SingleChildScrollView`. *Evitare `Column` statiche per schermate lunghe di checkout.* diff --git a/memory-bank/next-session.md b/memory-bank/next-session.md new file mode 100644 index 0000000..6f24361 --- /dev/null +++ b/memory-bank/next-session.md @@ -0,0 +1,16 @@ +# Next Session + +## Stato Finale +- Abbiamo concluso l'analisi dei dati di Acquisizione (Google Ads) e configurato con successo `firebase_analytics` per tracciare le aperture (`app_open`) su Firebase. +- La campagna Google Ads è stata formalmente sospesa. L'architettura generale di monetizzazione e scambio dati è stabile. + +## Prossimo Passo (Focus) +- **Priorità 1 (Debito Tecnico)**: Refactoring del file `lib/global_data.dart` per correggere i nomi delle variabili che attualmente violano il `lowerCamelCase` (es. `Cod_fiscale_cond_B`). +- **Priorità 2 (Sviluppo Funzionale)**: Riprendere l'implementazione della Firma Elettronica Avanzata (FEA) e testare il rendering del certificato nella Pagina 2 del PDF. + +## File da Rileggere +- `lib/global_data.dart` (per avviare la pulizia). +- `lib/main.dart` e `lib/pdf_engine.dart` (per il contesto della Firma FEA). + +## Rischi o Punti Fragili Aperti +- Qualsiasi modifica in `global_data.dart` richiederà un refactoring a cascata su decine di file dei componenti (`comp_1.dart` a `comp_15.dart`). Bisogna prestare massima attenzione a non rompere il binding dei controller del form. diff --git a/memory-bank/rules.md b/memory-bank/rules.md new file mode 100644 index 0000000..80e0ddb --- /dev/null +++ b/memory-bank/rules.md @@ -0,0 +1,11 @@ +# Rules & Behavior + +## Protocollo Operativo della Memory Bank +- **Lettura Obbligatoria**: Prima di proporre modifiche o codice, leggi sempre `rules.md`, `current-state.md`, `decisions.md`, `attempted-solutions.md` e `next-session.md`. +- **Aggiornamento Silente**: Aggiorna SEMPRE la memory bank (es. `current-state.md`, `change-log.md`) in totale autonomia dopo ogni fix, refactor o implementazione. L'utente vuole trasparenza ma **non devi mai chiedere il permesso** per scrivere. + +## Convenzioni di Codice (Flutter/Dart) +- Mantenere la convenzione `lowerCamelCase` per le variabili (esiste attualmente del debito tecnico in `global_data.dart` da correggere). + +## Vincoli Architetturali +- **Intoccabilità del PDF**: Le coordinate di rendering in `syncfusion_flutter_pdf` o `pdf` sono calibrate al millimetro (`pw.Stack`). Non inserire mai modifiche o logiche di overflow che possano "rompere" il posizionamento dei testi sui box prestampati.