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


class LivingSpaceListValidation:
    tr = {
        **CrudRecordValidation.tr,
        "fix_value": "Sabit Değer",
        "fix_percent": "Sabit Yüzde",
        "agreement_no": "Anlaşma No",
        "marketing_process": "Pazarlama Süreci",
        "marketing_layer": "Pazarlama Katmanı",
        "build_parts_id": "Bölüm ID",
        "build_parts_uu_id": "Bölüm UUID",
        "person_id": "Sorumlu Kişi ID",
        "person_uu_id": "Sorumlu Kişi UUID",
        "occupant_type": "Kiracı Tipi",
        "occupant_type_uu_id": "Kiracı Tipi UUID",
    }
    en = {
        **CrudRecordValidation.en,
        "fix_value": "Fixed Value",
        "fix_percent": "Fixed Percent",
        "agreement_no": "Agreement No",
        "marketing_process": "Marketing Process",
        "marketing_layer": "Marketing Layer",
        "build_parts_id": "Part ID",
        "build_parts_uu_id": "Part UUID",
        "person_id": "Responsible Person ID",
        "person_uu_id": "Responsible Person UUID",
        "occupant_type": "Occupant Type",
        "occupant_type_uu_id": "Occupant Type UUID",
    }


class LivingSpaceListResponse(BaseModelRegular, CrudRecords, LivingSpaceListValidation):

    fix_value: Optional[float] = None
    fix_percent: Optional[float] = None
    agreement_no: Optional[str] = None
    marketing_process: Optional[str] = None
    marketing_layer: Optional[str] = None
    build_parts_id: Optional[int] = None
    build_parts_uu_id: Optional[str] = None
    person_id: Optional[int] = None
    person_uu_id: Optional[str] = None
    occupant_type: Optional[str] = None
    occupant_type_uu_id: Optional[str] = None
