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

from __future__ import annotations
from .v4_statuspages_issues_componentstatus import (
    V4StatusPagesIssuesComponentStatus,
    V4StatusPagesIssuesComponentStatusTypedDict,
)
from .v4_statuspages_issues_issuecomponentdetail import (
    V4StatusPagesIssuesIssueComponentDetail,
    V4StatusPagesIssuesIssueComponentDetailTypedDict,
)
from .v4_statuspages_issues_issuedetail import (
    V4StatusPagesIssuesIssueDetail,
    V4StatusPagesIssuesIssueDetailTypedDict,
)
from datetime import datetime
import pydantic
from squadcast_sdk.types import BaseModel
from typing import List
from typing_extensions import Annotated, TypedDict


class V4StatusPagesIssuesGetIssueByIDResponseTypedDict(TypedDict):
    id: int
    title: str
    last_updated_at: datetime
    components: List[V4StatusPagesIssuesIssueComponentDetailTypedDict]
    issues: List[V4StatusPagesIssuesIssueDetailTypedDict]
    current_issue_state: V4StatusPagesIssuesComponentStatusTypedDict
    page_status: V4StatusPagesIssuesComponentStatusTypedDict
    under_maintenance: bool
    status_maintenance: V4StatusPagesIssuesComponentStatusTypedDict
    page_id: int
    is_migrated: bool


class V4StatusPagesIssuesGetIssueByIDResponse(BaseModel):
    id: int

    title: str

    last_updated_at: Annotated[datetime, pydantic.Field(alias="lastUpdatedAt")]

    components: List[V4StatusPagesIssuesIssueComponentDetail]

    issues: List[V4StatusPagesIssuesIssueDetail]

    current_issue_state: Annotated[
        V4StatusPagesIssuesComponentStatus, pydantic.Field(alias="currentIssueState")
    ]

    page_status: Annotated[
        V4StatusPagesIssuesComponentStatus, pydantic.Field(alias="pageStatus")
    ]

    under_maintenance: Annotated[bool, pydantic.Field(alias="underMaintenance")]

    status_maintenance: Annotated[
        V4StatusPagesIssuesComponentStatus, pydantic.Field(alias="statusMaintenance")
    ]

    page_id: Annotated[int, pydantic.Field(alias="pageID")]

    is_migrated: Annotated[bool, pydantic.Field(alias="isMigrated")]
