"""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 enum import Enum
from typing import Optional
from typing_extensions import Annotated, NotRequired, TypedDict


class BankAccountsFilterStatus(str, Enum):
    r"""Filter by account status"""

    ACTIVE = "active"
    INACTIVE = "inactive"
    CLOSED = "closed"


class BankAccountsFilterTypedDict(TypedDict):
    name: NotRequired[str]
    r"""Filter by bank account name"""
    status: NotRequired[BankAccountsFilterStatus]
    r"""Filter by account status"""


class BankAccountsFilter(BaseModel):
    name: Annotated[Optional[str], FieldMetadata(query=True)] = None
    r"""Filter by bank account name"""

    status: Annotated[Optional[BankAccountsFilterStatus], FieldMetadata(query=True)] = (
        None
    )
    r"""Filter by account status"""
