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]