Added functions to fetch requirements from db.
Added functionality to create requirements on page
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
from typing import Optional, List
|
||||
from datetime import datetime
|
||||
from pydantic import BaseModel, SecretStr
|
||||
|
||||
|
||||
@@ -35,3 +36,84 @@ class GroupResponse(BaseModel):
|
||||
class GroupListResponse(BaseModel):
|
||||
"""Response schema for list of groups."""
|
||||
groups: List[GroupResponse]
|
||||
|
||||
|
||||
# Tag schemas
|
||||
class TagResponse(BaseModel):
|
||||
"""Response schema for a single tag."""
|
||||
id: int
|
||||
tag_code: str
|
||||
tag_description: str
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
|
||||
class TagListResponse(BaseModel):
|
||||
"""Response schema for list of tags."""
|
||||
tags: List[TagResponse]
|
||||
|
||||
|
||||
# Priority schemas
|
||||
class PriorityResponse(BaseModel):
|
||||
"""Response schema for a priority."""
|
||||
id: int
|
||||
priority_name: str
|
||||
priority_num: int
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
|
||||
# Validation schemas
|
||||
class ValidationResponse(BaseModel):
|
||||
"""Response schema for a validation."""
|
||||
id: int
|
||||
status_name: str
|
||||
req_version_snapshot: int
|
||||
comment: Optional[str] = None
|
||||
created_at: Optional[datetime] = None
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
|
||||
# Requirement schemas
|
||||
class RequirementResponse(BaseModel):
|
||||
"""Response schema for a single requirement."""
|
||||
id: int
|
||||
req_name: str
|
||||
req_desc: Optional[str] = None
|
||||
version: int
|
||||
created_at: Optional[datetime] = None
|
||||
updated_at: Optional[datetime] = None
|
||||
tag: TagResponse
|
||||
priority: Optional[PriorityResponse] = None
|
||||
groups: List[GroupResponse] = []
|
||||
validation_status: Optional[str] = None # Computed from latest validation
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
|
||||
class RequirementListResponse(BaseModel):
|
||||
"""Response schema for list of requirements."""
|
||||
requirements: List[RequirementResponse]
|
||||
|
||||
|
||||
class RequirementCreateRequest(BaseModel):
|
||||
"""Request schema for creating a requirement."""
|
||||
tag_id: int
|
||||
req_name: str
|
||||
req_desc: Optional[str] = None
|
||||
priority_id: Optional[int] = None
|
||||
group_ids: Optional[List[int]] = None
|
||||
|
||||
|
||||
class RequirementUpdateRequest(BaseModel):
|
||||
"""Request schema for updating a requirement."""
|
||||
req_name: Optional[str] = None
|
||||
req_desc: Optional[str] = None
|
||||
tag_id: Optional[int] = None
|
||||
priority_id: Optional[int] = None
|
||||
group_ids: Optional[List[int]] = None
|
||||
|
||||
Reference in New Issue
Block a user