fc / apps /core /dto /client.py
jun2024's picture
Upload 2241 files
b4f2238 verified
Raw History Blame Contribute Delete
1.43 kB
"""Module for client."""
from __future__ import annotations
from dataclasses import dataclass
from typing import TYPE_CHECKING
if TYPE_CHECKING:
from apps.client.models import Client, ClientIdentityDoc
@dataclass
class ClientDTO:
id: int
name: str
client_type: str
phone: str | None = None
id_number: str | None = None
address: str | None = None
is_our_client: bool = False
@classmethod
def from_model(cls, client: Client) -> ClientDTO:
return cls(
id=client.id,
name=client.name,
client_type=client.client_type,
phone=client.phone,
id_number=client.id_number,
address=client.address,
is_our_client=client.is_our_client,
)
@dataclass
class PropertyClueDTO:
id: int
client_id: int
clue_type: str
content: str
description: str | None = None
@dataclass
class ClientIdentityDocDTO:
id: int
client_id: int
doc_type: str
doc_type_display: str
file_path: str | None = None
expiry_date: str | None = None
is_valid: bool = True
@classmethod
def from_model(cls, doc: ClientIdentityDoc) -> ClientIdentityDocDTO:
return cls(
id=doc.id,
client_id=doc.client_id,
doc_type=doc.doc_type,
doc_type_display=doc.get_doc_type_display(),
file_path=doc.media_url,
)