# Generated by ariadne-codegen
# Source: ../../src/graphql/operations

from typing import Any, Optional

from pydantic import Field

from .base_model import BaseModel


class Episode(BaseModel):
    episode: Optional["EpisodeEpisode"]


class EpisodeEpisode(BaseModel):
    id: str
    channel_name: str = Field(alias="channelName")
    episode_number: Optional[int] = Field(alias="episodeNumber")
    episode_title: Optional[str] = Field(alias="episodeTitle")
    episode_transcript_url: Optional[str] = Field(alias="episodeTranscriptUrl")
    episode_page_url: Optional[str] = Field(alias="episodePageUrl")
    web_page_summary: Optional[str] = Field(alias="webPageSummary")
    web_page_timelines: Optional[list["EpisodeEpisodeWebPageTimelines"]] = Field(
        alias="webPageTimelines"
    )
    sponsor_link_objects: Optional[list["EpisodeEpisodeSponsorLinkObjects"]] = Field(
        alias="sponsorLinkObjects"
    )
    takeaways: list[str]
    s_3_transcript_key: Optional[str] = Field(alias="s3TranscriptKey")
    s_3_transcript_url: Optional[str] = Field(alias="s3TranscriptUrl")
    youtube_video_id: Optional[str] = Field(alias="youtubeVideoId")
    youtube_watch_url: Optional[str] = Field(alias="youtubeWatchUrl")
    youtube_embed_url: Optional[str] = Field(alias="youtubeEmbedUrl")
    media_links: Optional[list["EpisodeEpisodeMediaLinks"]] = Field(alias="mediaLinks")
    published_at: Optional[Any] = Field(alias="publishedAt")
    guests: Optional[list["EpisodeEpisodeGuests"]]
    summary_short: Optional[str] = Field(alias="summaryShort")
    summary_detailed: Optional[str] = Field(alias="summaryDetailed")
    published_summary: Optional[str] = Field(alias="publishedSummary")
    business_links: Optional[list[str]] = Field(alias="businessLinks")
    sponsor_businesses: Optional[list["EpisodeEpisodeSponsorBusinesses"]] = Field(
        alias="sponsorBusinesses"
    )
    protocols: Optional[list["EpisodeEpisodeProtocols"]]


class EpisodeEpisodeWebPageTimelines(BaseModel):
    from_: str = Field(alias="from")
    to: str
    title: Optional[str]
    description: Optional[str]


class EpisodeEpisodeSponsorLinkObjects(BaseModel):
    text: Optional[str]
    links: Optional[list[str]]
    has_code_dave: Optional[bool] = Field(alias="hasCodeDave")
    code: Optional[str]
    brand: Optional[str]
    discount_percent: Optional[float] = Field(alias="discountPercent")


class EpisodeEpisodeMediaLinks(BaseModel):
    url: str
    description: Optional[str]


class EpisodeEpisodeGuests(BaseModel):
    id: str
    name: str
    role: Optional[str]


class EpisodeEpisodeSponsorBusinesses(BaseModel):
    id: str
    name: str
    description: Optional[str]


class EpisodeEpisodeProtocols(BaseModel):
    id: str
    name: str
    description: Optional[str]


Episode.model_rebuild()
EpisodeEpisode.model_rebuild()
