from typing import List, Optional from pydantic import BaseModel, Field, HttpUrl class Attachment(BaseModel): name: str url: str # data: URI or https URL class TaskRequest(BaseModel): email: str secret: str task: str round: int = Field(1, ge=1, le=3) nonce: str brief: str checks: List[str] evaluation_url: HttpUrl attachments: List[Attachment] = [] class TaskResponse(BaseModel): status: str task: str round: int message: str | None = None task_id: str | None = None repo_url: str | None = None commit_sha: str | None = None pages_url: str | None = None notes: str | None = None task: str round: int repo_url: Optional[str] = None commit_sha: Optional[str] = None pages_url: Optional[str] = None notes: Optional[str] = None class ErrorResponse(BaseModel): status: str = "error" reason: str