fix(db): update models for boards w/ nullable deleted_at

This commit is contained in:
psychedelicious 2023-06-22 13:11:25 +10:00
parent 19a6e5dad8
commit 6779f1a5ad
2 changed files with 8 additions and 4 deletions

View File

@ -93,10 +93,10 @@ class SqliteBoardImageRecordStorage(BoardImageRecordStorageBase):
created_at DATETIME NOT NULL DEFAULT(STRFTIME('%Y-%m-%d %H:%M:%f', 'NOW')),
-- updated via trigger
updated_at DATETIME NOT NULL DEFAULT(STRFTIME('%Y-%m-%d %H:%M:%f', 'NOW')),
-- enforce one-to-many relationship between boards and images using PK
-- (we can extend this to many-to-many later)
-- Soft delete, currently unused
deleted_at DATETIME,
-- enforce one-to-many relationship between boards and images using PK
-- (we can extend this to many-to-many later)
PRIMARY KEY (image_name),
FOREIGN KEY (board_id) REFERENCES boards (board_id) ON DELETE CASCADE,
FOREIGN KEY (image_name) REFERENCES images (image_name) ON DELETE CASCADE

View File

@ -19,6 +19,10 @@ class BoardRecord(BaseModel):
description="The updated timestamp of the board."
)
"""The updated timestamp of the image."""
deleted_at: Union[datetime, str, None] = Field(
description="The deleted timestamp of the board."
)
"""The updated timestamp of the image."""
cover_image_name: Optional[str] = Field(
description="The name of the cover image of the board."
)
@ -46,7 +50,7 @@ def deserialize_board_record(board_dict: dict) -> BoardRecord:
cover_image_name = board_dict.get("cover_image_name", "unknown")
created_at = board_dict.get("created_at", get_iso_timestamp())
updated_at = board_dict.get("updated_at", get_iso_timestamp())
# deleted_at = board_dict.get("deleted_at", get_iso_timestamp())
deleted_at = board_dict.get("deleted_at", get_iso_timestamp())
return BoardRecord(
board_id=board_id,
@ -54,5 +58,5 @@ def deserialize_board_record(board_dict: dict) -> BoardRecord:
cover_image_name=cover_image_name,
created_at=created_at,
updated_at=updated_at,
# deleted_at=deleted_at,
deleted_at=deleted_at,
)