from backend.code.enums.errors_enum import ErrorTypeEnum from backend.code.core.controller import Controller from backend.code.enums.errors_enum import ErrorTypeEnum from backend.code.modules.database.database_sqlite import DatabaseSqliteModule from backend.code.modules.settlements.repository import SettlementRepository from backend.code.models.responses.settlement_detail import SettlementDetailResponse class SettlementController(Controller): def __init__(self): database = DatabaseSqliteModule() self.repo = SettlementRepository(database) def ListSettlements(self, params: str = None): result = [] if params is not None: params = self._OnProcessParams(params) settlements = self.repo.FilterSettlements(params) if len(settlements) == 0: return result for _settlement in settlements: settlement = SettlementDetailResponse( Id = _settlement[0], Name = _settlement[1], Address = _settlement[2], LastDone = _settlement[4], LastDoneBy = _settlement[5], Active = _settlement[6] ) result.append(settlement) return result def SelectSettlement(self, id: int): settlement = self.repo.SelectSettlementById(id) if settlement is None: return return SettlementDetailResponse( Id = settlement[0], Name = settlement[1], Address = settlement[2], LastDone = settlement[4], LastDoneBy = settlement[5], Active = settlement[6] ) def RegisterSettlement(self, name: str, address: str, active: bool = True): exists = self.repo.FilterSettlements({'name': name, 'address': address}) if len(exists) > 0: return ErrorTypeEnum.SETTLEMENT_EXISTS settlement_id = self.repo.InsertSettlement(name, address, active) if settlement_id is None: return return SettlementDetailResponse( Id = settlement_id, Name = name, Address = address, LastDone = None, LastDoneBy = None, Active = active ) def EditSettlement(self, id: int, name: str, address: str, active: bool = True): exists = self.repo.SelectSettlementById(id) if exists is None: return ErrorTypeEnum.SETTLEMENT_ID_NOT_EXISTS edited = self.repo.UpdateSettlement(id, name, address, active) if edited == 0: return return True def RegisterSettlementDone(self, id: int, doneAt: datetime, doneBy: int): pass def DeleteSettlement(self, id: int): exists = self.repo.SelectSettlementById(id) if exists is None: return ErrorTypeEnum.SETTLEMENT_ID_NOT_EXISTS deleted = self.repo.DeleteSettlement(id) if deleted == 0: return return True