# Code generated by Lark OpenAPI.

from typing import Any, Optional, Union, Dict, List, Set, IO, Callable, Type
from lark_oapi.core.construct import init
from .meeting_subtitle_ssd_speaker import MeetingSubtitleSsdSpeaker


class MeetingSubtitle(object):
    _types = {
        "content": str,
        "language": str,
        "speaker_user_id": int,
        "speaker_device_id": int,
        "ssd_speaker": MeetingSubtitleSsdSpeaker,
    }

    def __init__(self, d=None):
        self.content: Optional[str] = None
        self.language: Optional[str] = None
        self.speaker_user_id: Optional[int] = None
        self.speaker_device_id: Optional[int] = None
        self.ssd_speaker: Optional[MeetingSubtitleSsdSpeaker] = None
        init(self, d, self._types)

    @staticmethod
    def builder() -> "MeetingSubtitleBuilder":
        return MeetingSubtitleBuilder()


class MeetingSubtitleBuilder(object):
    def __init__(self) -> None:
        self._meeting_subtitle = MeetingSubtitle()

    def content(self, content: str) -> "MeetingSubtitleBuilder":
        self._meeting_subtitle.content = content
        return self

    def language(self, language: str) -> "MeetingSubtitleBuilder":
        self._meeting_subtitle.language = language
        return self

    def speaker_user_id(self, speaker_user_id: int) -> "MeetingSubtitleBuilder":
        self._meeting_subtitle.speaker_user_id = speaker_user_id
        return self

    def speaker_device_id(self, speaker_device_id: int) -> "MeetingSubtitleBuilder":
        self._meeting_subtitle.speaker_device_id = speaker_device_id
        return self

    def ssd_speaker(self, ssd_speaker: MeetingSubtitleSsdSpeaker) -> "MeetingSubtitleBuilder":
        self._meeting_subtitle.ssd_speaker = ssd_speaker
        return self

    def build(self) -> "MeetingSubtitle":
        return self._meeting_subtitle
