"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""

from __future__ import annotations
from datetime import datetime
from duckyai.types import BaseModel
from typing import Optional
from typing_extensions import NotRequired, TypedDict


class UserTypedDict(TypedDict):
    id: NotRequired[str]
    r"""The unique identifier of the user."""
    first_name: NotRequired[str]
    r"""The first name of the user."""
    last_name: NotRequired[str]
    r"""The last name of the user."""
    created_at: NotRequired[datetime]
    r"""The timestamp when the user was created in the database."""
    last_signed_in_at: NotRequired[datetime]
    r"""The timestamp of the user's last sign-in."""
    updated_at: NotRequired[datetime]
    r"""The timestamp when the user was last updated in the database."""


class User(BaseModel):
    id: Optional[str] = None
    r"""The unique identifier of the user."""

    first_name: Optional[str] = None
    r"""The first name of the user."""

    last_name: Optional[str] = None
    r"""The last name of the user."""

    created_at: Optional[datetime] = None
    r"""The timestamp when the user was created in the database."""

    last_signed_in_at: Optional[datetime] = None
    r"""The timestamp of the user's last sign-in."""

    updated_at: Optional[datetime] = None
    r"""The timestamp when the user was last updated in the database."""
