From b2854393ae5749d00c447f2d41f052bd4d0410a2 Mon Sep 17 00:00:00 2001 From: shokollm <270575765+shokollm@users.noreply.github.com> Date: Thu, 2 Apr 2026 22:34:19 +0000 Subject: [PATCH] Address PR #19 review feedback round 3: - TrackingData.group_id renamed to room_id (works for both group and DM) - Removed room_id from TrackedBounty (it's just a lightweight pointer) --- core/models.py | 16 ++++++---------- tests/test_models.py | 15 +++++++-------- 2 files changed, 13 insertions(+), 18 deletions(-) diff --git a/core/models.py b/core/models.py index 6f6328c..fe57645 100644 --- a/core/models.py +++ b/core/models.py @@ -23,16 +23,12 @@ class Bounty: class TrackedBounty: """A bounty that a user is tracking. - Use TrackedBounty when you need to record that a user is tracking a specific - bounty from a specific room. The room_id indicates which room the bounty - was tracked from (useful when users can track bounties across multiple rooms). - - For simple tracking lists, just use bounty_id and created_at. + Lightweight relation/pointer - the actual tracking context (including room) + lives in TrackingData, not here. """ bounty_id: int created_at: int - room_id: int @dataclass @@ -50,16 +46,16 @@ class RoomData: @dataclass class TrackingData: - """User tracking state within a group. + """User tracking state within a room (group or DM). TrackingData vs TrackedBounty: - - Use TrackingData to store ALL tracked bounties for a user in a specific group. - It contains the group_id, user_id, and a list of TrackedBounty entries. + - Use TrackingData to store ALL tracked bounties for a user in a specific room. + It contains the room_id, user_id, and a list of TrackedBounty entries. - Use TrackedBounty to represent a single tracked bounty entry within that list. TrackingData is the container, TrackedBounty is the item. """ - group_id: int + room_id: int user_id: int tracked: list[TrackedBounty] diff --git a/tests/test_models.py b/tests/test_models.py index 7995725..ca45860 100644 --- a/tests/test_models.py +++ b/tests/test_models.py @@ -83,14 +83,13 @@ class TestBounty: class TestTrackedBounty: def test_create_tracked_bounty(self): - tb = TrackedBounty(bounty_id=5, created_at=1735600000, room_id=-1001) + tb = TrackedBounty(bounty_id=5, created_at=1735600000) assert tb.bounty_id == 5 assert tb.created_at == 1735600000 - assert tb.room_id == -1001 def test_tracked_bounty_comparison(self): - tb1 = TrackedBounty(bounty_id=1, created_at=0, room_id=-1001) - tb2 = TrackedBounty(bounty_id=1, created_at=0, room_id=-1001) + tb1 = TrackedBounty(bounty_id=1, created_at=0) + tb2 = TrackedBounty(bounty_id=1, created_at=0) assert tb1 == tb2 @@ -132,13 +131,13 @@ class TestRoomData: class TestTrackingData: def test_create_tracking_data(self): - td = TrackingData(group_id=-1001, user_id=123456, tracked=[]) - assert td.group_id == -1001 + td = TrackingData(room_id=-1001, user_id=123456, tracked=[]) + assert td.room_id == -1001 assert td.user_id == 123456 assert td.tracked == [] def test_tracking_data_with_tracked(self): - tb = TrackedBounty(bounty_id=5, created_at=0, room_id=-1001) - td = TrackingData(group_id=-1001, user_id=123, tracked=[tb]) + tb = TrackedBounty(bounty_id=5, created_at=0) + td = TrackingData(room_id=-1001, user_id=123, tracked=[tb]) assert len(td.tracked) == 1 assert td.tracked[0].bounty_id == 5