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


class InsertAccountRecord(BaseModelRegular):
    iban: str
    bank_date: str
    currency_value: float
    bank_balance: float
    currency: str
    additional_balance: float
    channel_branch: str
    process_name: str
    process_type: str
    process_comment: str
    bank_reference_code: str

    add_comment_note: Optional[str] = None
    is_receipt_mail_send: Optional[bool] = None
    found_from: Optional[str] = None
    similarity: Optional[float] = None
    remainder_balance: Optional[float] = None
    bank_date_y: Optional[int] = None
    bank_date_m: Optional[int] = None
    bank_date_w: Optional[int] = None
    bank_date_d: Optional[int] = None
    approving_accounting_record: Optional[bool] = None
    accounting_receipt_date: Optional[str] = None
    accounting_receipt_number: Optional[int] = None
    approved_record: Optional[bool] = None
    import_file_name: Optional[str] = None
    receive_debit_uu_id: Optional[str] = None
    budget_type_uu_id: Optional[str] = None
    company_uu_id: Optional[str] = None
    send_company_uu_id: Optional[str] = None
    customer_id: Optional[str] = None
    customer_uu_id: Optional[str] = None
    send_person_uu_id: Optional[str] = None
    approving_accounting_person_uu_id: Optional[str] = None
    build_parts_uu_id: Optional[str] = None
    build_decision_book_uu_id: Optional[str] = None


class UpdateAccountRecord(BaseModelRegular):
    iban: Optional[str] = None
    bank_date: Optional[str] = None
    currency_value: Optional[float] = None
    bank_balance: Optional[float] = None
    currency: Optional[str] = None
    additional_balance: Optional[float] = None
    channel_branch: Optional[str] = None
    process_name: Optional[str] = None
    process_type: Optional[str] = None
    process_comment: Optional[str] = None
    bank_reference_code: Optional[str] = None

    add_comment_note: Optional[str] = None
    is_receipt_mail_send: Optional[bool] = None
    found_from: Optional[str] = None
    similarity: Optional[float] = None
    remainder_balance: Optional[float] = None
    bank_date_y: Optional[int] = None
    bank_date_m: Optional[int] = None
    bank_date_w: Optional[int] = None
    bank_date_d: Optional[int] = None
    approving_accounting_record: Optional[bool] = None
    accounting_receipt_date: Optional[str] = None
    accounting_receipt_number: Optional[int] = None
    approved_record: Optional[bool] = None
    import_file_name: Optional[str] = None
    receive_debit_uu_id: Optional[str] = None
    budget_type_uu_id: Optional[str] = None
    company_uu_id: Optional[str] = None
    send_company_uu_id: Optional[str] = None
    customer_id: Optional[str] = None
    customer_uu_id: Optional[str] = None
    send_person_uu_id: Optional[str] = None
    approving_accounting_person_uu_id: Optional[str] = None
    build_parts_uu_id: Optional[str] = None
    build_decision_book_uu_id: Optional[str] = None
