from sqlmodel import Session from app.models import ConfluencePage, ConfluenceSpace, ConfluenceSite class ConfluencePageRepo: def create_page( self, session: Session, site: ConfluenceSite, db_space: ConfluenceSpace, page: dict, ) -> ConfluencePage: page_guid = f"SITE-{site.id}-PAGE-{page['id']}" db_page = ConfluencePage( guid=page_guid, id=page["id"], link=f"https://{site.host}/wiki{page['_links']['tinyui']}", version=page["version"]["number"], status=page["status"], title=page["title"], body=page["body"]["storage"]["value"], author_id=page["authorId"], created_at=page["version"]["createdAt"], space_guid=db_space.guid, space_id=db_space.id, space_key=db_space.key, site_id=site.id, ) session.add(db_page) session.commit() session.refresh(db_page) return db_page def udpate_page(self, session: Session, db_page: ConfluencePage) -> ConfluencePage: session.merge(db_page) session.commit() return db_page confluence_page_repo = ConfluencePageRepo()