"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""

from __future__ import annotations
from apideck_unify.types import BaseModel
from apideck_unify.utils import FieldMetadata
from datetime import datetime
from typing import Optional
from typing_extensions import Annotated, NotRequired, TypedDict


class SuppliersFilterTypedDict(TypedDict):
    company_name: NotRequired[str]
    r"""Company Name of supplier to search for"""
    display_name: NotRequired[str]
    r"""Display Name of supplier to search for"""
    first_name: NotRequired[str]
    r"""First name of supplier to search for"""
    last_name: NotRequired[str]
    r"""Last name of supplier to search for"""
    email: NotRequired[str]
    r"""Email of supplier to search for"""
    updated_since: NotRequired[datetime]


class SuppliersFilter(BaseModel):
    company_name: Annotated[Optional[str], FieldMetadata(query=True)] = None
    r"""Company Name of supplier to search for"""

    display_name: Annotated[Optional[str], FieldMetadata(query=True)] = None
    r"""Display Name of supplier to search for"""

    first_name: Annotated[Optional[str], FieldMetadata(query=True)] = None
    r"""First name of supplier to search for"""

    last_name: Annotated[Optional[str], FieldMetadata(query=True)] = None
    r"""Last name of supplier to search for"""

    email: Annotated[Optional[str], FieldMetadata(query=True)] = None
    r"""Email of supplier to search for"""

    updated_since: Annotated[Optional[datetime], FieldMetadata(query=True)] = None
