Added functions to fetch requirements from db.

Added functionality to create requirements on page
This commit is contained in:
gulimabr
2025-11-30 15:35:36 -03:00
parent bbbe65067b
commit eb70598cab
11 changed files with 1383 additions and 148 deletions

View File

@@ -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