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

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


class MessagesResponseDtoTypedDict(TypedDict):
    has_more: bool
    r"""Indicates if there are more messages available"""
    data: List[MessageResponseDtoTypedDict]
    r"""List of messages"""
    page_size: float
    r"""Number of messages per page"""
    page: float
    r"""Current page number"""
    total_count: NotRequired[float]
    r"""Total number of messages available"""


class MessagesResponseDto(BaseModel):
    has_more: Annotated[bool, pydantic.Field(alias="hasMore")]
    r"""Indicates if there are more messages available"""

    data: List[MessageResponseDto]
    r"""List of messages"""

    page_size: Annotated[float, pydantic.Field(alias="pageSize")]
    r"""Number of messages per page"""

    page: float
    r"""Current page number"""

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