from sqlalchemy.orm import Session from packages.domain import Project from packages.adapters.sqlalchemy_impl.models import ProjectModel class SQLAlchemyProjectRepository: def __init__(self, session: Session): self.session = session def list_by_workspace(self, workspace_id: str) -> list[Project]: models = self.session.query(ProjectModel).filter(ProjectModel.workspace_id == workspace_id).all() return [ Project( id=m.id, workspace_id=m.workspace_id, name=m.name, description=m.description, created_at=m.created_at, ) for m in models ] def create(self, project: Project) -> Project: model = ProjectModel( id=project.id, workspace_id=project.workspace_id, name=project.name, description=project.description, created_at=project.created_at, ) self.session.add(model) self.session.commit() return project