summary.md 1.7 KB

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<double>(0.0, ...) with ?? 0.0 to avoid num from double? + int
  • Unused imports/fields warnings (pre-existing, cosmetic)