import 'package:drift/drift.dart'; import '../database.dart'; class AgentiDao { final AppDatabase db; AgentiDao(this.db); Future findById(int id) { return (db.select(db.agenti)..where((t) => t.idAgente.equals(id))).getSingleOrNull(); } Future> listAll() { return (db.select(db.agenti)).get(); } Future findByCode(String code) { return (db.select(db.agenti)..where((t) => t.codAgente.equals(code))).getSingleOrNull(); } Future authenticate(String code, String password) { if (password.isEmpty) { return (db.select(db.agenti)..where((t) => t.codAgente.equals(code) & t.pwd.isNull())).getSingleOrNull(); } else { return (db.select(db.agenti)..where((t) => t.codAgente.equals(code) & t.pwd.equals(password))).getSingleOrNull(); } } Future countAgenti() async { final rows = await db.select(db.agenti).get(); return rows.length; } Future insertAgente(AgentiCompanion entry) { return db.into(db.agenti).insert(entry); } Future updateAgente(Agente agent) { return db.update(db.agenti).replace(agent); } Future zapCodiceAgente(String code) { return (db.delete(db.agenti)..where((t) => t.codAgente.equals(code))).go(); } Future updateIdAgente(int oldId, int newId) { return (db.customStatement('update agenti set idAgente=$newId where idAgente=$oldId')); } }