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

from __future__ import annotations
from .notificationfeeditemdto import (
    NotificationFeedItemDto,
    NotificationFeedItemDtoTypedDict,
)
from novu_py.types import BaseModel
import pydantic
from typing import List, Optional
from typing_extensions import Annotated, NotRequired, TypedDict


class FeedResponseDtoTypedDict(TypedDict):
    has_more: bool
    r"""Indicates if there are more notifications to load."""
    data: List[NotificationFeedItemDtoTypedDict]
    r"""Array of notifications returned in the response."""
    page_size: float
    r"""The number of notifications returned in this response."""
    page: float
    r"""The current page number of the notifications."""
    total_count: NotRequired[float]
    r"""Total number of notifications available."""


class FeedResponseDto(BaseModel):
    has_more: Annotated[bool, pydantic.Field(alias="hasMore")]
    r"""Indicates if there are more notifications to load."""

    data: List[NotificationFeedItemDto]
    r"""Array of notifications returned in the response."""

    page_size: Annotated[float, pydantic.Field(alias="pageSize")]
    r"""The number of notifications returned in this response."""

    page: float
    r"""The current page number of the notifications."""

    total_count: Annotated[Optional[float], pydantic.Field(alias="totalCount")] = None
    r"""Total number of notifications available."""
