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

import datetime as dt
import typing

import pydantic
from ..core.unchecked_base_model import UncheckedBaseModel
from .time_stamp import TimeStamp


class Comment(UncheckedBaseModel):
    annotation: typing.Optional[str] = None
    completed_at: typing.Optional[dt.datetime] = pydantic.Field(default=None)
    """
    Completion timestamp
    """

    completer_id: typing.Optional[str] = pydantic.Field(default=None)
    """
    ID of user who marked the comment as completed
    """

    created_at: dt.datetime = pydantic.Field()
    """
    Creation timestamp
    """

    file_id: str = pydantic.Field()
    """
    File ID
    """

    id: str = pydantic.Field()
    """
    Comment ID
    """

    page: typing.Optional[int] = pydantic.Field(default=None)
    """
    Document page
    """

    text: str = pydantic.Field()
    """
    Comment text
    """

    text_edited_at: typing.Optional[dt.datetime] = pydantic.Field(default=None)
    """
    Text edited timestamp
    """

    timestamp: TimeStamp
    updated_at: dt.datetime = pydantic.Field()
    """
    Update timestamp
    """

    model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True)
