from sqlmodel import Session from app.models import ConfluenceSite from app.models.confluence_space import ConfluenceSpace from app.repositories.base import BaseRepo class ConfluenceSpaceRepo(BaseRepo): model_cls = ConfluenceSpace def find_or_create( self, session: Session, site: ConfluenceSite, space: dict ) -> ConfluenceSpace: space_guid = f"SITE-{site.id}-SPACE-{space['id']}" db_space = session.get(ConfluenceSpace, space_guid) if db_space is None: db_space = ConfluenceSpace( guid=space_guid, id=space["id"], key=space["key"], name=space["name"], site_id=site.id, ) session.add(db_space) session.commit() return db_space confluence_space_repo = ConfluenceSpaceRepo()