# This file was auto-generated by Fern from our API Definition.

import datetime as dt
import typing

import pydantic
from ..core.pydantic_utilities import IS_PYDANTIC_V2
from ..core.unchecked_base_model import UncheckedBaseModel
from .count_limit import CountLimit
from .prompts_status_enum import PromptsStatusEnum


class BillingChecks(UncheckedBaseModel):
    export_storages: CountLimit
    import_storages: CountLimit
    is_license_expired: bool
    is_license_warning: bool
    is_prompts_expire: bool
    is_prompts_warning: bool
    license_expires: typing.Optional[dt.date] = None
    license_issued: typing.Optional[dt.date] = None
    license_warning: typing.Optional[dt.date] = None
    organization_is_active: bool
    projects: CountLimit
    prompts_api_keys_enabled: bool
    prompts_enabled: bool
    prompts_expire: typing.Optional[str] = None
    prompts_status: PromptsStatusEnum
    prompts_warning: typing.Optional[str] = None
    results: CountLimit
    trial_days: int
    users: CountLimit

    if IS_PYDANTIC_V2:
        model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True)  # type: ignore # Pydantic v2
    else:

        class Config:
            frozen = True
            smart_union = True
            extra = pydantic.Extra.allow
