Auto-sync: 20260502_030000

This commit is contained in:
Paolo 2026-05-02 03:00:02 +02:00
parent 9dd5c625b7
commit 73760d0e3b
4 changed files with 43 additions and 0 deletions

BIN
.DS_Store vendored

Binary file not shown.

View file

@ -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<String, dynamic>` 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.*

View file

@ -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.

11
memory-bank/rules.md Normal file
View file

@ -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.