File size: 568 Bytes
b4f2238 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | """Business logic services."""
from __future__ import annotations
from typing import Any
from apps.core.dto import CaseDTO
class CaseDtoAssembler:
def to_dto(self, case: Any, case_number: str | None = None) -> CaseDTO:
dto = CaseDTO.from_model(case)
dto.case_number = case_number
return dto
def to_dtos(self, cases: list[Any], case_number_map: dict[int, str | None] | None = None) -> list[CaseDTO]:
case_number_map = case_number_map or {}
return [self.to_dto(case, case_number_map.get(case.id)) for case in cases]
|