import 'package:drift/drift.dart'; import '../database.dart'; class FilialiDao { final AppDatabase db; FilialiDao(this.db); Future> getDestinationsForCustomer(int idCliente) { return (db.select(db.filiali) ..where((t) => t.idCliente.equals(idCliente) & (t.attivo.equals(1) | t.attivo.isNull())) ..orderBy([(t) => OrderingTerm(expression: t.descrizione)]) ).get(); } Future getById(int id) { return (db.select(db.filiali)..where((t) => t.idFiliale.equals(id))).getSingleOrNull(); } Future getByRemoteId(int remoteId) { return (db.select(db.filiali)..where((t) => t.idFilialeRemoto.equals(remoteId))).getSingleOrNull(); } Future getByCode(String code) { return (db.select(db.filiali)..where((t) => t.codFiliale.equals(code))).getSingleOrNull(); } Future> getNewDestinations() { return (db.select(db.filiali)..where((t) => t.stato.equals('N'))).get(); } Future countNewDestinations() async { final rows = await (db.select(db.filiali)..where((t) => t.stato.equals('N'))).get(); return rows.length; } Future markAsSent(int idFiliale) { return (db.update(db.filiali)..where((t) => t.idFiliale.equals(idFiliale))) .write(FilialiCompanion(stato: const Value('T'))); } Future markAllAsSent() { return (db.update(db.filiali)..where((t) => t.stato.equals('N'))) .write(FilialiCompanion(stato: const Value('T'))); } Future insertFiliale(Filiale entry) { return db.into(db.filiali).insert(entry); } Future checkCodeDuplicate(String code, int idCliente) async { final existing = await (db.select(db.filiali) ..where((t) => t.codFiliale.equals(code) & t.idCliente.equals(idCliente)) ).get(); return existing.isNotEmpty; } }