from datetime import datetime from pydantic import BaseModel, ConfigDict, Field class ProxyTemplateDocument(BaseModel): model_config = ConfigDict(extra="forbid") id: str = Field(..., description="Stable template identifier") name: str = Field(..., description="Display name") description: str = Field(default="", description="Short explanation") category: str = Field(default="custom", description="Template category") protocol: str = Field(default="custom", description="Primary proxy protocol") family: str = Field(default="custom", description="Template family") tags: list[str] = Field(default_factory=list, description="Filter tags") action: str = Field(default="custom", description="Primary template action") summary: str = Field(default="", description="Short operational summary") behavior: str = Field(default="", description="Runtime behavior description") code: str = Field(..., description="Addon source code") source_url: str | None = Field(default=None, description="Reference URL") built_in: bool = Field(default=False, description="Provided by thePlug") created_at: datetime | None = None updated_at: datetime | None = None class ProxyTemplateCreateInput(BaseModel): model_config = ConfigDict(extra="forbid") id: str = Field(..., description="Stable template identifier") name: str = Field(..., description="Display name") description: str = Field(default="", description="Short explanation") category: str = Field(default="custom", description="Template category") protocol: str = Field(default="custom", description="Primary proxy protocol") family: str = Field(default="custom", description="Template family") tags: list[str] = Field(default_factory=list, description="Filter tags") action: str = Field(default="custom", description="Primary template action") summary: str = Field(default="", description="Short operational summary") behavior: str = Field(default="", description="Runtime behavior description") code: str = Field(..., description="Addon source code") source_url: str | None = Field(default=None, description="Reference URL")