feat: add deleted_at, created_by_username to Bounty; timezone, admin_user_ids to RoomData
Issue #41: Model updates for Phase 2 features Bounty model: - Add deleted_at: int | None - timestamp when deleted (soft-delete) - Add created_by_username: str | None - username for display purposes RoomData model: - Add timezone: str | None - room's timezone (e.g., "Asia/Jakarta") - Add admin_user_ids: list[int] - list of admin user IDs Storage adapter updated to handle new fields in load/save operations. Tests added for new fields.
This commit is contained in:
@@ -56,6 +56,8 @@ class JsonFileRoomStorage:
|
||||
due_date_ts=b.get("due_date_ts"),
|
||||
created_at=b["created_at"],
|
||||
created_by_user_id=b["created_by_user_id"],
|
||||
deleted_at=b.get("deleted_at"),
|
||||
created_by_username=b.get("created_by_username"),
|
||||
)
|
||||
for b in data.get("bounties", [])
|
||||
]
|
||||
@@ -64,6 +66,8 @@ class JsonFileRoomStorage:
|
||||
room_id=data["room_id"],
|
||||
bounties=bounties,
|
||||
next_id=data["next_id"],
|
||||
timezone=data.get("timezone"),
|
||||
admin_user_ids=data.get("admin_user_ids", []),
|
||||
)
|
||||
|
||||
def save(self, room_data: RoomData) -> None:
|
||||
@@ -71,6 +75,8 @@ class JsonFileRoomStorage:
|
||||
data = {
|
||||
"room_id": room_data.room_id,
|
||||
"next_id": room_data.next_id,
|
||||
"timezone": room_data.timezone,
|
||||
"admin_user_ids": room_data.admin_user_ids or [],
|
||||
"bounties": [
|
||||
{
|
||||
"id": b.id,
|
||||
@@ -79,6 +85,8 @@ class JsonFileRoomStorage:
|
||||
"due_date_ts": b.due_date_ts,
|
||||
"created_at": b.created_at,
|
||||
"created_by_user_id": b.created_by_user_id,
|
||||
"deleted_at": b.deleted_at,
|
||||
"created_by_username": b.created_by_username,
|
||||
}
|
||||
for b in room_data.bounties
|
||||
],
|
||||
|
||||
Reference in New Issue
Block a user