from datetime import datetime from pydantic import BaseModel, Field class AgentCreate(BaseModel): username: str = Field(..., min_length=3, max_length=50) password: str = Field(..., min_length=6) class AgentResponse(BaseModel): id: str username: str role: str created_at: datetime model_config = {"from_attributes": True} class AgentLogin(BaseModel): username: str password: str class TokenResponse(BaseModel): access_token: str token_type: str = "bearer" class RefreshResponse(BaseModel): access_token: str token_type: str = "bearer" class ApiTokenCreate(BaseModel): name: str = Field(..., min_length=1, max_length=255) role: str = Field(..., pattern="^(researcher|developer|viewer)$") class ApiTokenResponse(BaseModel): id: str name: str role: str created_at: datetime model_config = {"from_attributes": True} class ApiTokenGenerateResponse(BaseModel): token: str name: str role: str model_config = {"from_attributes": True}