"""Domain models for CleverAgents - auto-generated from Phase 0 stubs."""

from pydantic import Field

from ..base import DomainBaseModel
from ..core.enums import ModelProvider


class ModelProviderExtraAuthVars(DomainBaseModel):
    """Data contract for ModelProviderExtraAuthVars."""

    var: str = Field(...)
    maybe_j_s_o_n_file_path: bool | None = Field(
        alias="maybeJSONFilePath", default=None
    )
    required: bool | None = Field(default=None)
    default: str | None = Field(default=None)


class ModelProviderConfigSchema(DomainBaseModel):
    """Data contract for ModelProviderConfigSchema."""

    provider: ModelProvider = Field(...)
    custom_provider: str | None = Field(alias="customProvider", default=None)
    base_url: str = Field(..., alias="baseUrl")
    has_a_w_s_auth: bool | None = Field(alias="hasAWSAuth", default=None)
    has_claude_max_auth: bool | None = Field(alias="hasClaudeMaxAuth", default=None)
    skip_auth: bool | None = Field(alias="skipAuth", default=None)
    local_only: bool | None = Field(alias="localOnly", default=None)
    api_key_env_var: str | None = Field(alias="apiKeyEnvVar", default=None)
    extra_auth_vars: list[ModelProviderExtraAuthVars] | None = Field(
        alias="extraAuthVars", default=None
    )
