# generated by datamodel-codegen:
#   filename:  chat_request.schema.json
#   timestamp: 2026-03-03T01:18:26+00:00

from __future__ import annotations

from typing import Annotated, Any

from pydantic import BaseModel, ConfigDict, Field

from . import chat_event_schema, placeholder_map_schema, tool_settings_schema


class ChatRequest(BaseModel):
    model_config = ConfigDict(
        extra='forbid',
    )
    messages: list[chat_event_schema.ChatEvent]
    recursion_limit: Annotated[int | None, Field(ge=1)] = None
    placeholderMap: placeholder_map_schema.PlaceholderMap | None = None
    toolSettings: tool_settings_schema.ToolSettings | None = None
    tool_choice: dict[str, Any] | str | None = None
    llm: str | None = None
    timeZone: str | None = None
