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

import datetime as dt
import typing

from ....core.datetime_utils import serialize_datetime
from .era_base import EraBase
from .era_id import EraId


class Era(EraBase):
    """
    import uuid

    from candid import Era

    Era(
        era_id=uuid.UUID(
            "4d844ef1-2253-43cd-a4f1-6db7e65cb54b",
        ),
        check_number="CHK12345",
        check_date="2023-10-12",
    )
    """

    era_id: EraId

    def json(self, **kwargs: typing.Any) -> str:
        kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
        return super().json(**kwargs_with_defaults)

    def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
        kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
        return super().dict(**kwargs_with_defaults)

    class Config:
        frozen = True
        smart_union = True
        allow_population_by_field_name = True
        json_encoders = {dt.datetime: serialize_datetime}
