# Ristoris Flutter Project Summary ## Project Porting Xamarin Android app "PowerAge Ristoris" to Flutter multiplatform. ## Constraints - Flutter 3.41.2 via FVM (`.fvmrc`) - Drift for SQLite, Riverpod for state management (v2) - UI: Material 3 responsive (tablet/phone/desktop) - Three layers: DB, business logic, UI - Images: `getApplicationDocumentsDirectory` ## Done - All phases 0-5: project setup, DB, DAOs, DTOs, services, business, providers, UI, routes - `flutter analyze`: **0 errors** (pre-existing warnings only) - `fvm flutter build linux`: **success** (was failing before) - **Fixed naming collision**: `StatisticheVendita` and `ClientiAgente` table classes conflicted with auto-generated data classes in `database.g.dart` (both named identically). Applied `@DataClassName('StatisticheVenditaData')` and `@DataClassName('ClientiAgenteData')` so table class and data class have distinct names. Updated 4 DAO/service files to reference `StatisticheVenditaData`/`ClientiAgenteData`. - build_runner regenerated successfully ## Architecture - **DB layer**: `database.dart` (Drift), tables in `tables/`, DAOs in `daos/` (plain classes, no `@DriftAccessor`, take `AppDatabase` via constructor) - **Business**: services like `statistics_service.dart`, `pricing_service.dart`, etc. - **UI**: pages responsive via `LayoutBuilder`, `flutter_riverpod` - **Sync**: `reference_sync_service.dart`, `promo_sync_service.dart`, etc. ## Known Issues - `TextColumn` doesn't support `greaterOrEquals`/`lessOrEquals` → in-memory filter after fetch - `customStatement` instead of `m.createIndex` in migration - `fold(0.0, ...)` with `?? 0.0` to avoid `num` from `double?` + `int` - Unused imports/fields warnings (pre-existing, cosmetic)