from typing import Optional
from api_validations.core_validations import BaseModelRegular
from api_validations.validations_request import (
    PydanticBaseModel,
    ListOptions,
)


class InsertPerson(PydanticBaseModel):
    firstname: str
    surname: str
    sex_code: str
    national_identity_id: str
    middle_name: Optional[str] = None
    father_name: Optional[str] = None
    mother_name: Optional[str] = None
    country_code: Optional[str] = "TR"
    birth_place: Optional[str] = None
    birth_date: Optional[str] = None
    tax_no: Optional[str] = None


class ResponsePersonSalesMange(PydanticBaseModel):
    uu_id: str
    firstname: str
    surname: str
    national_identity_id: str
    birth_place: Optional[str] = None
    birth_date: Optional[str] = None
    tax_no: Optional[str] = None


class UpdatePerson(PydanticBaseModel):
    firstname: Optional[str] = None
    surname: Optional[str] = None
    middle_name: Optional[str]
    father_name: Optional[str] = None
    mother_name: Optional[str] = None
    sex_code: 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


#
# class QueryPeople(PydanticBaseModel):
#     uu_id: Optional[str] = None
#
#
# class InsertPeople(PydanticBaseModel):
#     key_id: Optional[str] = None
#     query: Optional[dict] = None
#     data: Optional[_InsertPerson] = None
#
#
# class UpdatePeople(PydanticBaseModel):
#     key_id: Optional[str] = None
#     query: Optional[QueryPeople] = None
#     data: Optional[_UpdatePerson] = None
#
#
# class DeletePeople(PydanticBaseModel):
#     key_id: Optional[str] = None
#     query: Optional[List[QueryPeople]] = None
#     data: Optional[dict] = None
#
#
# class ListPeople(PydanticBaseModel):
#     key_id: Optional[str] = None
#     query: Optional[QueryPeople] = None
#     data: Optional[ListOptions] = None
#
#
# class ActivePeople(PydanticBaseModel):
#     key_id: Optional[str] = None
#     query: Optional[List[QueryPeople]] = None
#     data: Optional[dict] = None
