"""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 ActivityNotificationSubscriberResponseDtoTypedDict(TypedDict):
    subscriber_id: str
    r"""External unique identifier of the subscriber"""
    id: str
    r"""Internal to Novu unique identifier of the subscriber"""
    first_name: NotRequired[str]
    r"""First name of the subscriber"""
    last_name: NotRequired[str]
    r"""Last name of the subscriber"""
    email: NotRequired[str]
    r"""Email address of the subscriber"""
    phone: NotRequired[str]
    r"""Phone number of the subscriber"""


class ActivityNotificationSubscriberResponseDto(BaseModel):
    subscriber_id: Annotated[str, pydantic.Field(alias="subscriberId")]
    r"""External unique identifier of the subscriber"""

    id: Annotated[str, pydantic.Field(alias="_id")]
    r"""Internal to Novu unique identifier of the subscriber"""

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

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

    email: Optional[str] = None
    r"""Email address of the subscriber"""

    phone: Optional[str] = None
    r"""Phone number of the subscriber"""
