♻️ Refactor models to use cascade delete relationships (#1276)

This commit is contained in:
Alejandra
2024-08-01 11:44:00 -05:00
committed by GitHub
parent d4ae12cd9a
commit 269040d670
2 changed files with 41 additions and 2 deletions

View File

@@ -43,7 +43,7 @@ class UpdatePassword(SQLModel):
class User(UserBase, table=True):
id: uuid.UUID = Field(default_factory=uuid.uuid4, primary_key=True)
hashed_password: str
items: list["Item"] = Relationship(back_populates="owner")
items: list["Item"] = Relationship(back_populates="owner", cascade_delete=True)
# Properties to return via API, id is always required
@@ -76,7 +76,9 @@ class ItemUpdate(ItemBase):
class Item(ItemBase, table=True):
id: uuid.UUID = Field(default_factory=uuid.uuid4, primary_key=True)
title: str = Field(max_length=255)
owner_id: uuid.UUID = Field(foreign_key="user.id", nullable=False)
owner_id: uuid.UUID = Field(
foreign_key="user.id", nullable=False, ondelete="CASCADE"
)
owner: User | None = Relationship(back_populates="items")