from __future__ import annotations

from typing import Any

from pydantic import BaseModel, Field


class ConnectorSessionRequest(BaseModel):
    kind: str
    connection_id: str = Field(alias="connectionId")
    channel_id: str = Field(alias="channelId")
    display_name: str = Field(alias="displayName")
    callback_base_url: str = Field(alias="callbackBaseUrl")
    options: dict[str, Any] = Field(default_factory=dict)


class SendRequest(BaseModel):
    request_id: str = Field(alias="requestId")
    connection_id: str = Field(alias="connectionId")
    channel_id: str = Field(alias="channelId")
    kind: str
    target: dict[str, Any]
    content: str
    metadata: dict[str, Any] = Field(default_factory=dict)
