From 96d833a089cb146b50121d9c4a1e5ce70b71156d Mon Sep 17 00:00:00 2001 From: Borgia Leiva Date: Tue, 3 Feb 2026 11:20:19 +0100 Subject: [PATCH] Created schema projects_tasks to avoid circular imports --- schemas/projects.py | 4 +++- schemas/projects_tasks.py | 11 +++++++++++ schemas/tasks.py | 5 +++++ 3 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 schemas/projects_tasks.py diff --git a/schemas/projects.py b/schemas/projects.py index 6522337..302d7f5 100644 --- a/schemas/projects.py +++ b/schemas/projects.py @@ -7,12 +7,14 @@ from schemas.users import UserBase class ProjectBase(BaseModel): model_config = ConfigDict(from_attributes=True) - id: int name: str description: str tasks: List[TaskBase] users: List[UserBase] +class ProjectFull(ProjectBase): + id: int + class ProjectCreate(BaseModel): name: str description: Optional[str] = None diff --git a/schemas/projects_tasks.py b/schemas/projects_tasks.py new file mode 100644 index 0000000..9f97c28 --- /dev/null +++ b/schemas/projects_tasks.py @@ -0,0 +1,11 @@ +import schemas.projects as project_schemas +import schemas.tasks as task_schemas +from pydantic import ConfigDict + +class ProjectTaskBase(task_schemas.TaskBase): + model_config = ConfigDict(from_attributes=True) + + project: project_schemas.ProjectBase + +class ProjectTaskCreate(task_schemas.TaskCreate): + project: project_schemas.ProjectBase \ No newline at end of file diff --git a/schemas/tasks.py b/schemas/tasks.py index ea3b711..12f7d81 100644 --- a/schemas/tasks.py +++ b/schemas/tasks.py @@ -17,6 +17,11 @@ class TaskBase(BaseModel): description: Optional[str] = None status: TaskStatus = TaskStatus.PENDING +class TaskCreate(BaseModel): + title: str + description: Optional[str] = None + status: TaskStatus = TaskStatus.PENDING + class TaskUpdate(BaseModel): title: Optional[str] = None description: Optional[str] = None