feat: Add channel notification event tracking.

Bumps schema version to 2.
Adds Profiles module version dep on schema init.
Add notice_events, notice_sub_events, and notice_resub_events tables.
Add corresponding event manager.
Add ChatNotificationWithPayload event payload extension.
Add ChannelNotification subscription.
This commit is contained in:
2026-07-22 12:21:16 +03:00
parent 7744aaab0e
commit dd6fc013ee
4 changed files with 304 additions and 109 deletions
+25 -21
View File
@@ -3,39 +3,43 @@ from data.columns import String, Timestamp, Integer, Bool
class TrackingChannel(RowModel):
_tablename_ = 'tracking_channels'
_tablename_ = "tracking_channels"
_cache_ = {}
userid = String(primary=True)
joined = Bool
joined = Bool
joined_at = Timestamp()
_timestamp = Timestamp()
class EventData(Registry):
VERSION = ('EVENT_TRACKER', 1)
VERSION = ("EVENT_TRACKER", 2)
tracking_channels = TrackingChannel.table
events = Table('events')
follow_events = Table('follow_events')
bits_events = Table('bits_events')
events = Table("events")
follow_events = Table("follow_events")
bits_events = Table("bits_events")
subscribe_events = Table('subscribe_events')
gift_events = Table('gift_events')
subscribe_message_events = Table('subscribe_message_events')
subscribe_events = Table("subscribe_events")
gift_events = Table("gift_events")
subscribe_message_events = Table("subscribe_message_events")
cheer_events = Table('cheer_events')
redemption_add_events = Table('redemption_add_events')
redemption_update_events = Table('redemption_update_events')
poll_end_events = Table('poll_end_events')
stream_online_events = Table('stream_online_events')
stream_offline_events = Table('stream_offline_events')
channel_update_events = Table('channel_update_events')
cheer_events = Table("cheer_events")
redemption_add_events = Table("redemption_add_events")
redemption_update_events = Table("redemption_update_events")
poll_end_events = Table("poll_end_events")
stream_online_events = Table("stream_online_events")
stream_offline_events = Table("stream_offline_events")
channel_update_events = Table("channel_update_events")
vip_add_events = Table('vip_add_events')
vip_remove_events = Table('vip_remove_events')
vip_add_events = Table("vip_add_events")
vip_remove_events = Table("vip_remove_events")
raid_out_events = Table('raid_out_events')
raid_in_events = Table('raid_in_events')
message_events = Table('message_events')
raid_out_events = Table("raid_out_events")
raid_in_events = Table("raid_in_events")
message_events = Table("message_events")
notice_events = Table("notice_events")
notice_sub_events = Table("notice_sub_events")
notice_resub_events = Table("notice_resub_events")