| | from pydantic import BaseModel, Field |
| | from typing import TypedDict, Any, Dict, Literal, Optional |
| | import json |
| | import src.dev_pilot.utils.constants as const |
| |
|
| | |
| | class UserStories(BaseModel): |
| | id: int = Field(...,description="The unique identifier of the user story") |
| | title: str = Field(...,description="The title of the user story") |
| | description: str = Field(...,description="The description of the user story") |
| | priority: int = Field(...,description="The priority of the user story") |
| | acceptance_criteria: str = Field(...,description="The acceptance criteria of the user story") |
| |
|
| | class UserStoryList(BaseModel): |
| | user_stories: list[UserStories] |
| |
|
| | class DesignDocument(BaseModel): |
| | functional: str = Field(..., description="Holds the functional design Document") |
| | technical: str = Field(..., description="Holds the technical design Document") |
| | |
| | class SDLCState(TypedDict): |
| | """ |
| | Represents the structure of the state used in the SDLC graph |
| | |
| | """ |
| | next_node: str = const.PROJECT_INITILIZATION |
| | project_name: str |
| | requirements: list[str] |
| | user_stories: UserStoryList |
| | user_stories_feedback: str |
| | user_stories_review_status: str |
| | design_documents: DesignDocument |
| | design_documents_feedback: str |
| | design_documents_review_status: str |
| | code_generated: str |
| | code_review_comments: str |
| | code_review_feedback: str |
| | code_review_status: str |
| | security_recommendations: str |
| | security_review_comments: str |
| | security_review_status: str |
| | test_cases: str |
| | test_case_review_status: str |
| | test_case_review_feedback: str |
| | qa_testing_comments: str |
| | qa_testing_status: str |
| | qa_testing_feedback: str |
| | deployment_status: str |
| | deployment_feedback: str |
| | artifacts: dict[str, str] |
| | |
| | |
| | |
| | class CustomEncoder(json.JSONEncoder): |
| | def default(self, obj): |
| | |
| | if isinstance(obj, BaseModel): |
| | return obj.model_dump() |
| | |
| | |
| | |
| | return super().default(obj) |
| | |
| |
|
| | |