from fastapi import APIRouter, Path from backend.dependecies import SessionDependency from schemas.project import ( GetProjectsResponse, CreateProjectResponse, CreateProjectRequest, UpdateProjectResponse, UpdateProjectRequest, DeleteProjectResponse, ) from services import ProjectService project_router = APIRouter( tags=["project"], ) @project_router.get( "/", response_model=GetProjectsResponse, operation_id="get_projects", ) async def get_projects( session: SessionDependency, ): return await ProjectService(session).get_projects() @project_router.post( "/", response_model=CreateProjectResponse, operation_id="create_project", ) async def create_project( session: SessionDependency, request: CreateProjectRequest, ): return await ProjectService(session).create_project(request) @project_router.patch( "/{pk}", response_model=UpdateProjectResponse, operation_id="update_project", ) async def update_project( session: SessionDependency, request: UpdateProjectRequest, pk: int = Path(), ): return await ProjectService(session).update_project(pk, request) @project_router.delete( "/{pk}", response_model=DeleteProjectResponse, operation_id="delete_project", ) async def delete_project( session: SessionDependency, pk: int = Path(), ): return await ProjectService(session).delete_project(pk)