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

import typing
import uuid

import pydantic
from ......core.pydantic_utilities import IS_PYDANTIC_V2
from .....commons.types.encounter_id import EncounterId
from .health_care_code_information_new import HealthCareCodeInformationNew


class HealthCareCodeInformation(HealthCareCodeInformationNew):
    id: typing.Optional[uuid.UUID] = pydantic.Field(default=None)
    """
    The id of this health care code information if it is already stored.
    If this is not set, this is referring to a new health care code information to be added
    to the encounter.  If it is set, this refers to an update of an existing health care code
    information object on the encounter.
    """

    encounter_id: typing.Optional[EncounterId] = pydantic.Field(default=None)
    """
    The encounter_id of this health care code information if it is already stored.
    This will be set by the server in responses, but clients are not expected to set it.
    """

    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
