diff --git a/backend/app/modules/project/domain/entities.py b/backend/app/modules/project/domain/entities.py index e69de29..afa12f6 100644 --- a/backend/app/modules/project/domain/entities.py +++ b/backend/app/modules/project/domain/entities.py @@ -0,0 +1,11 @@ +from dataclasses import dataclass +from datetime import datetime + + +@dataclass +class Project: + id: str + name: str + design_dir: str + code_dir: str | None + created_at: datetime diff --git a/backend/app/modules/project/domain/repositories.py b/backend/app/modules/project/domain/repositories.py index e69de29..5d9ac4a 100644 --- a/backend/app/modules/project/domain/repositories.py +++ b/backend/app/modules/project/domain/repositories.py @@ -0,0 +1,21 @@ +from abc import ABC, abstractmethod + +from app.modules.project.domain.entities import Project + + +class ProjectRepository(ABC): + @abstractmethod + def list_all(self) -> list[Project]: + ... + + @abstractmethod + def get_by_id(self, project_id: str) -> Project | None: + ... + + @abstractmethod + def save(self, project: Project) -> None: + ... + + @abstractmethod + def delete(self, project_id: str) -> None: + ...