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


class PeopleListValidation:
    tr = {
        **CrudRecordValidation.tr,
        "firstname": "Ad",
        "surname": "Soyad",
        "middle_name": "Orta İsim",
        "sex_code": "Cinsiyet Kodu",
        "person_ref": "Kişi Referansı",
        "person_tag": "Kişi Etiketi",
        "father_name": "Baba Adı",
        "mother_name": "Anne Adı",
        "country_code": "Ülke Kodu",
        "national_identity_id": "Kimlik Numarası",
        "birth_place": "Doğum Yeri",
        "birth_date": "Doğum Tarihi",
        "tax_no": "Vergi Numarası",
    }
    en = {
        **CrudRecordValidation.en,
        "firstname": "First Name",
        "surname": "Surname",
        "middle_name": "Middle Name",
        "sex_code": "Sex Code",
        "person_ref": "Person Reference",
        "person_tag": "Person Tag",
        "father_name": "Father's Name",
        "mother_name": "Mother's Name",
        "country_code": "Country Code",
        "national_identity_id": "National Identity ID",
        "birth_place": "Birth Place",
        "birth_date": "Birth Date",
        "tax_no": "Tax Number",
    }


class PeopleListResponse(BaseModelRegular, CrudRecords, PeopleListValidation):
    firstname: Optional[str] = None
    surname: Optional[str] = None
    middle_name: Optional[str] = None
    sex_code: Optional[str] = None
    person_ref: Optional[str] = None
    person_tag: Optional[str] = None
    father_name: Optional[str] = None
    mother_name: Optional[str] = None
    country_code: Optional[str] = None
    national_identity_id: Optional[str] = None
    birth_place: Optional[str] = None
    birth_date: Optional[str] = None
    tax_no: Optional[str] = None
