from typing import Optional
from api_validations.core_validations import BaseModelRegular
from api_validations.validations_request import (
    CrudRecordValidation,
    CrudRecords,
)


class BuildPartsListValidation:
    tr = {
        **CrudRecordValidation.tr,
        "address_gov_code": "Adres Kapı Kodu",
        "part_no": "Bölüm No",
        "part_level": "Bölüm Seviyesi",
        "part_code": "Bölüm Kodu",
        "part_gross": "Bölüm Brüt",
        "part_net": "Bölüm Net",
        "default_accessory": "Varsayılan Aksesuar",
        "human_livable": "İnsan Yaşamı",
        "due_part_key": "Sabit Ödeme Grubu",
        "build_uu_id": "Bina UUID",
        "part_direction_uu_id": "Bölüm Yönü UUID",
        "part_type_uu_id": "Bölüm Tipi UUID",
    }
    en = {
        **CrudRecordValidation.en,
        "address_gov_code": "Address Government Code",
        "part_no": "Part Number",
        "part_level": "Part Level",
        "part_code": "Part Code",
        "part_gross": "Part Gross",
        "part_net": "Part Net",
        "default_accessory": "Default Accessory",
        "human_livable": "Human Livable",
        "due_part_key": "Constant Payment Group",
        "build_uu_id": "Building UUID",
        "part_direction_uu_id": "Part Direction UUID",
        "part_type_uu_id": "Part Type UUID",
    }


class BuildPartsListResponse(BaseModelRegular, CrudRecords, BuildPartsListValidation):
    address_gov_code: Optional[str] = None
    part_no: Optional[int] = None
    part_level: Optional[int] = None
    part_code: Optional[str] = None
    part_gross: Optional[int] = None
    part_net: Optional[int] = None
    default_accessory: Optional[str] = None
    human_livable: Optional[bool] = None
    due_part_key: Optional[str] = None
    build_uu_id: Optional[str] = None
    part_direction_uu_id: Optional[str] = None
    part_type_uu_id: Optional[str] = None
