feat: Add player_configs feature and migrate user preferences

- Implemented player_configs table to store multiple player configurations per user.
- Migrated existing player settings from user_preferences to player_configs.
- Removed player-related columns from user_preferences.
- Added referral state fields to user for tracking referral rewards.
- Created migration scripts for database changes and data migration.
- Added test cases for app services and usage helpers.
- Introduced video job service interfaces and implementations.
This commit is contained in:
2026-03-24 16:08:36 +00:00
parent 91e5e3542b
commit e7fdd0e1ab
103 changed files with 9540 additions and 8446 deletions

View File

@@ -0,0 +1,17 @@
-- Migration: Add user referral state
-- Created: 2026-03-23
-- Description: Adds minimal referral linkage and first-subscription reward tracking fields to user
BEGIN;
ALTER TABLE "user"
ADD COLUMN IF NOT EXISTS referred_by_user_id UUID REFERENCES "user"(id) ON DELETE SET NULL,
ADD COLUMN IF NOT EXISTS referral_eligible BOOLEAN NOT NULL DEFAULT TRUE,
ADD COLUMN IF NOT EXISTS referral_reward_bps INTEGER,
ADD COLUMN IF NOT EXISTS referral_reward_granted_at TIMESTAMP WITH TIME ZONE,
ADD COLUMN IF NOT EXISTS referral_reward_payment_id UUID,
ADD COLUMN IF NOT EXISTS referral_reward_amount NUMERIC(65,30);
CREATE INDEX IF NOT EXISTS idx_user_referred_by_user_id ON "user"(referred_by_user_id);
COMMIT;