clienti_agente_dao.dart 1.1 KB

1234567891011121314151617181920212223242526272829303132
  1. import 'package:drift/drift.dart';
  2. import '../database.dart';
  3. class ClientiAgenteDao {
  4. final AppDatabase db;
  5. ClientiAgenteDao(this.db);
  6. Future<ClientiAgenteData?> findByClienteAgente(int idCliente, int idAgente) {
  7. return (db.select(db.clientiAgente)
  8. ..where((t) => t.idCliente.equals(idCliente) & t.idAgente.equals(idAgente))
  9. ).getSingleOrNull();
  10. }
  11. Future<void> activateCustomer(int idCliente, int idAgente) async {
  12. final existing = await findByClienteAgente(idCliente, idAgente);
  13. if (existing != null) {
  14. await (db.update(db.clientiAgente)..where((t) => t.idClientiAgente.equals(existing.idClientiAgente)))
  15. .write(ClientiAgenteCompanion(attivo: const Value(1)));
  16. } else {
  17. await db.into(db.clientiAgente).insert(ClientiAgenteCompanion(
  18. idCliente: Value(idCliente),
  19. idAgente: Value(idAgente),
  20. attivo: const Value(1),
  21. ));
  22. }
  23. }
  24. Future<void> deactivateAllCustomers(int idAgente) {
  25. return (db.update(db.clientiAgente)..where((t) => t.idAgente.equals(idAgente)))
  26. .write(ClientiAgenteCompanion(attivo: const Value(0)));
  27. }
  28. }