from datetime import datetime from typing import Any, Dict, List, Optional from pydantic import BaseModel class ToolDefinitionResponse(BaseModel): name: str version: str description: str input_schema: Dict[str, Any] output_schema: Dict[str, Any] class SRSToolCreateJobResponse(BaseModel): job_id: int status: str class SRSToolJobStatusResponse(BaseModel): job_id: int tool_name: str status: str error_message: Optional[str] = None extraction_id: Optional[int] = None started_at: Optional[datetime] = None completed_at: Optional[datetime] = None class SRSToolRequirementItem(BaseModel): id: str title: str description: str priority: str acceptanceCriteria: List[str] sourceField: str sectionNumber: Optional[str] = None sectionTitle: Optional[str] = None requirementType: Optional[str] = None sortOrder: int class SRSToolResultResponse(BaseModel): jobId: int documentName: str generatedAt: str statistics: Dict[str, Any] requirements: List[SRSToolRequirementItem] class SRSToolRequirementsSaveRequest(BaseModel): requirements: List[SRSToolRequirementItem]