from fastapi import APIRouter, HTTPException, status from app.modules.projects.schemas import ProjectCreate, ProjectRead from app.modules.projects.service import project_service router = APIRouter(prefix="/projects", tags=["projects"]) @router.get("", response_model=list[ProjectRead]) async def list_projects() -> list[ProjectRead]: return project_service.list() @router.post( "", response_model=ProjectRead, status_code=status.HTTP_201_CREATED, ) async def create_project(payload: ProjectCreate) -> ProjectRead: return project_service.create(payload) @router.get("/{project_id}", response_model=ProjectRead) async def get_project(project_id: int) -> ProjectRead: project = project_service.get(project_id) if project is None: raise HTTPException(status_code=404, detail="Project not found") return project