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


class TaxRatesFilterTypedDict(TypedDict):
    assets: NotRequired[bool]
    r"""Boolean to describe if tax rate can be used for asset accounts"""
    equity: NotRequired[bool]
    r"""Boolean to describe if tax rate can be used for equity accounts"""
    expenses: NotRequired[bool]
    r"""Boolean to describe if tax rate can be used for expense accounts"""
    liabilities: NotRequired[bool]
    r"""Boolean to describe if tax rate can be used for liability accounts"""
    revenue: NotRequired[bool]
    r"""Boolean to describe if tax rate can be used for revenue accounts"""


class TaxRatesFilter(BaseModel):
    assets: Annotated[Optional[bool], FieldMetadata(query=True)] = None
    r"""Boolean to describe if tax rate can be used for asset accounts"""

    equity: Annotated[Optional[bool], FieldMetadata(query=True)] = None
    r"""Boolean to describe if tax rate can be used for equity accounts"""

    expenses: Annotated[Optional[bool], FieldMetadata(query=True)] = None
    r"""Boolean to describe if tax rate can be used for expense accounts"""

    liabilities: Annotated[Optional[bool], FieldMetadata(query=True)] = None
    r"""Boolean to describe if tax rate can be used for liability accounts"""

    revenue: Annotated[Optional[bool], FieldMetadata(query=True)] = None
    r"""Boolean to describe if tax rate can be used for revenue accounts"""
