53 lines
1.2 KiB
Python
53 lines
1.2 KiB
Python
|
|
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]
|