-
Notifications
You must be signed in to change notification settings - Fork 2
Open
Labels
enhancementNew feature or requestNew feature or request
Description
Epic: #12 — Implement user_activity Table Support
Size: M
Dependencies: None — foundation issue
Description
Create the reusable service module and Pydantic model for user activity tracking.
Files to create
app/models/user_activity.py—UserActivitymodel +UserActivityResponseresponse modelapp/services/user_activity_service.py—record_user_activity()write function +list_user_activity()read functiontests/services/test_user_activity_service.py— unit tests
Key design
USER_ACTIVITY_TABLE_NAME = "user_activity"constantANONYMOUS_USER_ID = UUID("00000000-0000-0000-0000-000000000000")sentinelrecord_user_activity(userid, activity_type, activity_id=None, db_table=None)— generatesuuid1()foractivity_idif not provided, computes day partition asYYYY-MM-DD, inserts viadb_table.insert_one()list_user_activity(userid, page, page_size, activity_type=None, db_table=None)— queries last 30 days of partition keys (same pattern aslist_trending_videos), optionalactivity_typefilter, returnsTuple[List[UserActivity], int]- Follows existing
get_table()import pattern fromapp.db.astra_client
Acceptance Criteria
-
record_user_activity()inserts correct document structure -
list_user_activity()returns paginated results with optional type filter - Unit tests mock
get_tableand verifyinsert_oneargs and query logic
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request