agenti_dao.dart 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import 'package:drift/drift.dart';
  2. import '../database.dart';
  3. class AgentiDao {
  4. final AppDatabase db;
  5. AgentiDao(this.db);
  6. Future<Agente?> findById(int id) {
  7. return (db.select(db.agenti)..where((t) => t.idAgente.equals(id))).getSingleOrNull();
  8. }
  9. Future<List<Agente>> listAll() {
  10. return (db.select(db.agenti)).get();
  11. }
  12. Future<Agente?> findByCode(String code) {
  13. return (db.select(db.agenti)..where((t) => t.codAgente.equals(code))).getSingleOrNull();
  14. }
  15. Future<Agente?> authenticate(String code, String password) {
  16. if (password.isEmpty) {
  17. return (db.select(db.agenti)..where((t) => t.codAgente.equals(code) & t.pwd.isNull())).getSingleOrNull();
  18. } else {
  19. return (db.select(db.agenti)..where((t) => t.codAgente.equals(code) & t.pwd.equals(password))).getSingleOrNull();
  20. }
  21. }
  22. Future<int> countAgenti() async {
  23. final rows = await db.select(db.agenti).get();
  24. return rows.length;
  25. }
  26. Future<int> insertAgente(AgentiCompanion entry) {
  27. return db.into(db.agenti).insert(entry);
  28. }
  29. Future<void> updateAgente(Agente agent) {
  30. return db.update(db.agenti).replace(agent);
  31. }
  32. Future<void> zapCodiceAgente(String code) {
  33. return (db.delete(db.agenti)..where((t) => t.codAgente.equals(code))).go();
  34. }
  35. Future<void> updateIdAgente(int oldId, int newId) {
  36. return (db.customStatement('update agenti set idAgente=$newId where idAgente=$oldId'));
  37. }
  38. }