agenti_dao.dart 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738
  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<Agente?> findByCode(String code) {
  10. return (db.select(db.agenti)..where((t) => t.codAgente.equals(code))).getSingleOrNull();
  11. }
  12. Future<Agente?> authenticate(String code, String password) {
  13. return (db.select(db.agenti)
  14. ..where((t) => t.codAgente.equals(code) & t.pwd.equals(password))
  15. ).getSingleOrNull();
  16. }
  17. Future<int> countAgenti() async {
  18. final rows = await db.select(db.agenti).get();
  19. return rows.length;
  20. }
  21. Future<int> insertAgente(AgentiCompanion entry) {
  22. return db.into(db.agenti).insert(entry);
  23. }
  24. Future<void> updateAgente(Agente agent) {
  25. return db.update(db.agenti).replace(agent);
  26. }
  27. Future<void> zapCodiceAgente(String code) {
  28. return (db.delete(db.agenti)..where((t) => t.codAgente.equals(code))).go();
  29. }
  30. }