2026-04-13 11:34:23 +08:00
|
|
|
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
|
|
|
|
|
description: str
|
|
|
|
|
priority: str
|
|
|
|
|
acceptanceCriteria: List[str]
|
|
|
|
|
sourceField: str
|
2026-05-05 19:45:33 +08:00
|
|
|
sectionUid: Optional[str] = None
|
2026-04-13 11:34:23 +08:00
|
|
|
sectionNumber: Optional[str] = None
|
|
|
|
|
sectionTitle: Optional[str] = None
|
|
|
|
|
requirementType: Optional[str] = None
|
2026-05-05 19:45:33 +08:00
|
|
|
interfaceName: Optional[str] = None
|
|
|
|
|
interfaceType: Optional[str] = None
|
|
|
|
|
dataSource: Optional[str] = None
|
|
|
|
|
dataDestination: Optional[str] = None
|
2026-04-13 11:34:23 +08:00
|
|
|
sortOrder: int
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class SRSToolResultResponse(BaseModel):
|
|
|
|
|
jobId: int
|
|
|
|
|
documentName: str
|
|
|
|
|
generatedAt: str
|
|
|
|
|
statistics: Dict[str, Any]
|
|
|
|
|
requirements: List[SRSToolRequirementItem]
|
2026-05-05 19:45:33 +08:00
|
|
|
rawOutput: Dict[str, Any]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class SRSToolHistoryItem(BaseModel):
|
|
|
|
|
jobId: int
|
|
|
|
|
documentName: str
|
|
|
|
|
generatedAt: str
|
|
|
|
|
totalRequirements: int
|
|
|
|
|
status: str
|
|
|
|
|
createdAt: str
|
|
|
|
|
updatedAt: str
|
2026-04-13 11:34:23 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
class SRSToolRequirementsSaveRequest(BaseModel):
|
|
|
|
|
requirements: List[SRSToolRequirementItem]
|
2026-05-05 19:45:33 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
class TestingGenerationSaveRequest(BaseModel):
|
|
|
|
|
source_job_id: Optional[int] = None
|
|
|
|
|
source_document_name: str
|
|
|
|
|
knowledge_base_id: Optional[int] = None
|
|
|
|
|
generated_file: Dict[str, Any]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class TestingGenerationCreateRequest(BaseModel):
|
|
|
|
|
source_job_id: Optional[int] = None
|
|
|
|
|
source_document_name: str
|
|
|
|
|
knowledge_base_id: Optional[int] = None
|
|
|
|
|
requirements: List[SRSToolRequirementItem]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class TestingGenerationCreateResponse(BaseModel):
|
|
|
|
|
job_id: int
|
|
|
|
|
status: str
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class TestingGenerationJobStatusResponse(BaseModel):
|
|
|
|
|
job_id: int
|
|
|
|
|
tool_name: str
|
|
|
|
|
status: str
|
|
|
|
|
error_message: Optional[str] = None
|
|
|
|
|
started_at: Optional[datetime] = None
|
|
|
|
|
completed_at: Optional[datetime] = None
|
|
|
|
|
source_document_name: Optional[str] = None
|
|
|
|
|
current_step: Optional[int] = None
|
|
|
|
|
total_steps: Optional[int] = None
|
|
|
|
|
current_requirement_id: Optional[str] = None
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class TestingGenerationResultResponse(BaseModel):
|
|
|
|
|
jobId: int
|
|
|
|
|
sourceJobId: Optional[int] = None
|
|
|
|
|
sourceDocumentName: str
|
|
|
|
|
generatedAt: str
|
|
|
|
|
totalRequirements: int
|
|
|
|
|
knowledgeBaseId: Optional[int] = None
|
|
|
|
|
generatedFile: Dict[str, Any]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class TestingGenerationHistoryItem(BaseModel):
|
|
|
|
|
jobId: int
|
|
|
|
|
sourceJobId: Optional[int] = None
|
|
|
|
|
sourceDocumentName: str
|
|
|
|
|
generatedAt: str
|
|
|
|
|
totalRequirements: int
|
|
|
|
|
knowledgeBaseId: Optional[int] = None
|
|
|
|
|
status: str
|
|
|
|
|
createdAt: str
|
|
|
|
|
updatedAt: str
|