Added project separation logic

This commit is contained in:
gulimabr
2025-12-01 11:01:13 -03:00
parent 6d02736cba
commit 07005788ed
17 changed files with 1337 additions and 115 deletions

View File

@@ -22,6 +22,46 @@ class UserInfo(BaseModel):
role: Optional[str] = None # User role name
# Project schemas
class ProjectBase(BaseModel):
"""Base schema for projects."""
project_name: str
project_desc: Optional[str] = None
class ProjectResponse(BaseModel):
"""Response schema for a single project."""
id: int
project_name: str
project_desc: Optional[str] = None
created_at: Optional[datetime] = None
class Config:
from_attributes = True
class ProjectCreateRequest(BaseModel):
"""Request schema for creating a project."""
project_name: str
project_desc: Optional[str] = None
class ProjectUpdateRequest(BaseModel):
"""Request schema for updating a project."""
project_name: Optional[str] = None
project_desc: Optional[str] = None
class ProjectListResponse(BaseModel):
"""Response schema for list of projects."""
projects: List[ProjectResponse]
class ProjectMemberRequest(BaseModel):
"""Request schema for adding/removing project members."""
user_id: int
# Group schemas
class GroupResponse(BaseModel):
"""Response schema for a single group."""
@@ -82,6 +122,7 @@ class ValidationResponse(BaseModel):
class RequirementResponse(BaseModel):
"""Response schema for a single requirement."""
id: int
project_id: int
req_name: str
req_desc: Optional[str] = None
version: int
@@ -103,6 +144,7 @@ class RequirementListResponse(BaseModel):
class RequirementCreateRequest(BaseModel):
"""Request schema for creating a requirement."""
project_id: int
tag_id: int
req_name: str
req_desc: Optional[str] = None