from fastapi import HTTPException, status from app.repositories.scheme_versions import get_current_scheme_version from app.repositories.schemes import get_scheme_record_by_scheme_id async def get_current_draft_context(scheme_id: str): scheme = await get_scheme_record_by_scheme_id(scheme_id) version = await get_current_scheme_version( scheme_id=scheme.scheme_id, current_version_number=scheme.current_version_number, ) if version.status != "draft" or scheme.status != "draft": raise HTTPException( status_code=status.HTTP_409_CONFLICT, detail="Current scheme version is not editable because it is not in draft state", ) return scheme, version