Files
2026-11-05 08:28:15 +00:00

91 lines
2.9 KiB
Python

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