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

from __future__ import annotations
from .v3_incidents_postmortems_postmortemlistresult import (
    V3IncidentsPostmortemsPostmortemListResult,
    V3IncidentsPostmortemsPostmortemListResultTypedDict,
)
from .v3_incidents_postmortems_totalpostmortemcount import (
    V3IncidentsPostmortemsTotalPostmortemCount,
    V3IncidentsPostmortemsTotalPostmortemCountTypedDict,
)
import pydantic
from squadcast_sdk.types import BaseModel
from squadcast_sdk.utils import FieldMetadata, QueryParamMetadata
from typing import List
from typing_extensions import Annotated, TypedDict


class PostmortemsGetAllPostmortemsRequestTypedDict(TypedDict):
    from_date: str
    r"""Provide date in RFC3339 format"""
    to_date: str
    r"""Provide date in RFC3339 format"""
    owner_id: str
    r"""Here owner_id represents team_id"""
    limit: int


class PostmortemsGetAllPostmortemsRequest(BaseModel):
    from_date: Annotated[
        str,
        pydantic.Field(alias="fromDate"),
        FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
    ]
    r"""Provide date in RFC3339 format"""

    to_date: Annotated[
        str,
        pydantic.Field(alias="toDate"),
        FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
    ]
    r"""Provide date in RFC3339 format"""

    owner_id: Annotated[
        str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
    ]
    r"""Here owner_id represents team_id"""

    limit: Annotated[
        int, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
    ]


class PostmortemsGetAllPostmortemsDataTypedDict(TypedDict):
    result: List[V3IncidentsPostmortemsPostmortemListResultTypedDict]
    total_count: List[V3IncidentsPostmortemsTotalPostmortemCountTypedDict]


class PostmortemsGetAllPostmortemsData(BaseModel):
    result: List[V3IncidentsPostmortemsPostmortemListResult]

    total_count: List[V3IncidentsPostmortemsTotalPostmortemCount]


class PostmortemsGetAllPostmortemsResponseTypedDict(TypedDict):
    r"""The request has succeeded."""

    data: List[PostmortemsGetAllPostmortemsDataTypedDict]


class PostmortemsGetAllPostmortemsResponse(BaseModel):
    r"""The request has succeeded."""

    data: List[PostmortemsGetAllPostmortemsData]
