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

from __future__ import annotations
from novu_py.types import BaseModel
import pydantic
from typing import Optional
from typing_extensions import Annotated, NotRequired, TypedDict


class SubscriberFeedResponseDtoTypedDict(TypedDict):
    subscriber_id: str
    r"""The identifier used to create this subscriber, which typically corresponds to the user ID in your system."""
    id: NotRequired[str]
    r"""The internal ID generated by Novu for your subscriber. This ID does not match the `subscriberId` used in your queries. Refer to `subscriberId` for that identifier."""
    first_name: NotRequired[str]
    r"""The first name of the subscriber."""
    last_name: NotRequired[str]
    r"""The last name of the subscriber."""
    avatar: NotRequired[str]
    r"""The URL of the subscriber's avatar image."""


class SubscriberFeedResponseDto(BaseModel):
    subscriber_id: Annotated[str, pydantic.Field(alias="subscriberId")]
    r"""The identifier used to create this subscriber, which typically corresponds to the user ID in your system."""

    id: Annotated[Optional[str], pydantic.Field(alias="_id")] = None
    r"""The internal ID generated by Novu for your subscriber. This ID does not match the `subscriberId` used in your queries. Refer to `subscriberId` for that identifier."""

    first_name: Annotated[Optional[str], pydantic.Field(alias="firstName")] = None
    r"""The first name of the subscriber."""

    last_name: Annotated[Optional[str], pydantic.Field(alias="lastName")] = None
    r"""The last name of the subscriber."""

    avatar: Optional[str] = None
    r"""The URL of the subscriber's avatar image."""
