# This file was auto-generated by Fern from our API Definition.

import datetime as dt
import typing

import pydantic
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel


class AssistantMbpConfigResponse(UniversalBaseModel):
    """
    Response schema for assistant MBP configuration.
    """

    id: str = pydantic.Field()
    """
    MBP configuration ID
    """

    assistant_id: str = pydantic.Field()
    """
    Associated assistant ID
    """

    organization_id: str = pydantic.Field()
    """
    Organization ID
    """

    join_mode: str = pydantic.Field()
    """
    Join mode: manual, calendar, or always
    """

    is_enabled: bool = pydantic.Field()
    """
    Whether MBP is enabled
    """

    bot_name_override: typing.Optional[str] = pydantic.Field(default=None)
    """
    Override bot display name
    """

    trigger_patterns: typing.Optional[typing.List[str]] = pydantic.Field(default=None)
    """
    Chat trigger patterns
    """

    respond_to_direct_messages: bool = pydantic.Field()
    """
    Respond to direct messages in meeting chat
    """

    respond_to_group_mentions: bool = pydantic.Field()
    """
    Respond when mentioned in group chat
    """

    auto_join_rule_ids: typing.Optional[typing.List[str]] = pydantic.Field(default=None)
    """
    Linked auto-join rule IDs
    """

    allowed_tool_categories: typing.Optional[typing.List[str]] = pydantic.Field(default=None)
    """
    Tool categories allowed during meetings
    """

    max_response_time_seconds: int = pydantic.Field()
    """
    Max seconds before placeholder response
    """

    meeting_summary_enabled: bool = pydantic.Field()
    """
    Auto-generate meeting summary
    """

    transcription_enabled: bool = pydantic.Field()
    """
    Transcription enabled during meetings
    """

    follow_user_ids: typing.Optional[typing.List[str]] = pydantic.Field(default=None)
    """
    User IDs whose meetings this assistant auto-joins
    """

    created_at: dt.datetime = pydantic.Field()
    """
    Creation timestamp
    """

    updated_at: dt.datetime = pydantic.Field()
    """
    Last update timestamp
    """

    if IS_PYDANTIC_V2:
        model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True)  # type: ignore # Pydantic v2
    else:

        class Config:
            frozen = True
            smart_union = True
            extra = pydantic.Extra.allow
