from typing import Optional

from api_validations.core_validations import BaseModelRegular


class ListOptions(BaseModelRegular):

    page: Optional[int] = 1
    size: Optional[int] = 10
    order_field: Optional[str] = "id"
    order_type: Optional[str] = "asc"
    include_joins: Optional[list] = []
    query: Optional[dict] = {}


class PydanticBaseModel(BaseModelRegular):

    active: Optional[bool] = None
    deleted: Optional[bool] = None
    expiry_starts: Optional[str] = None
    expiry_ends: Optional[str] = None
    is_confirmed: Optional[bool] = None


class EndpointPydantic(BaseModelRegular):

    data: Optional[dict] = {}


class PatchRecord(BaseModelRegular):

    confirm: Optional[bool] = None
    delete: Optional[bool] = None
    active: Optional[bool] = None
