from datetime import UTC, datetime from itertools import count from app.modules.projects.schemas import ProjectCreate, ProjectRead class ProjectService: def __init__(self) -> None: self._ids = count(1) self._projects: list[ProjectRead] = [] def list(self) -> list[ProjectRead]: return self._projects.copy() def create(self, payload: ProjectCreate) -> ProjectRead: project = ProjectRead( id=next(self._ids), created_at=datetime.now(UTC), **payload.model_dump(), ) self._projects.append(project) return project def get(self, project_id: int) -> ProjectRead | None: return next( (project for project in self._projects if project.id == project_id), None, ) project_service = ProjectService()