Models & Storage layer for category feature (Issue #85): - Add Category dataclass to core/models.py - id (slug): lowercase alphabetic only - name: display name - created_at: Unix timestamp - deleted_at: soft delete timestamp (None if active) - Add category_ids field to Bounty dataclass - list[str] for multiple categories per bounty - Default empty list for backward compatibility - Add categories field to RoomData dataclass - list[Category] for room-level categories - Default empty list - Update JsonFileRoomStorage to serialize/deserialize: - Category fields (id, name, created_at, deleted_at) - Bounty.category_ids - RoomData.categories Backward compatible: existing data without categories works fine.
8.9 KiB
8.9 KiB