From 2f112efe752712b44250e437dc0d3853393f4a23 Mon Sep 17 00:00:00 2001 From: Daniel Rosel Date: Sat, 4 Apr 2026 15:46:53 +0200 Subject: [PATCH] fix: cascade delete dependent rows for version removal --- apps/backend/fastapi/app/models/cv.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/apps/backend/fastapi/app/models/cv.py b/apps/backend/fastapi/app/models/cv.py index 38d57fe..5475c25 100644 --- a/apps/backend/fastapi/app/models/cv.py +++ b/apps/backend/fastapi/app/models/cv.py @@ -52,9 +52,15 @@ class CvVersion(Base, IdentifierMixin, TimestampMixin): parent: Mapped["CvVersion | None"] = relationship( "CvVersion", remote_side="[CvVersion.id]" ) - patches: Mapped[list["CvPatch"]] = relationship("CvPatch", back_populates="version") + patches: Mapped[list["CvPatch"]] = relationship( + "CvPatch", + back_populates="version", + cascade="all, delete-orphan", + ) submissions: Mapped[list["Submission"]] = relationship( - "Submission", back_populates="version" + "Submission", + back_populates="version", + cascade="all, delete-orphan", ) public_assets: Mapped[list["PublicAsset"]] = relationship( "PublicAsset", @@ -118,7 +124,9 @@ class Submission(Base, IdentifierMixin, TimestampMixin): version: Mapped[CvVersion] = relationship("CvVersion", back_populates="submissions") suggestions: Mapped[list["AiSuggestion"]] = relationship( - "AiSuggestion", back_populates="submission" + "AiSuggestion", + back_populates="submission", + cascade="all, delete-orphan", ) public_asset: Mapped["PublicAsset | None"] = relationship( "PublicAsset", back_populates="submission"