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

@@ -19,6 +19,13 @@ service AdTemplatesService {
rpc DeleteAdTemplate(DeleteAdTemplateRequest) returns (MessageResponse);
}
service PlayerConfigsService {
rpc ListPlayerConfigs(ListPlayerConfigsRequest) returns (ListPlayerConfigsResponse);
rpc CreatePlayerConfig(CreatePlayerConfigRequest) returns (CreatePlayerConfigResponse);
rpc UpdatePlayerConfig(UpdatePlayerConfigRequest) returns (UpdatePlayerConfigResponse);
rpc DeletePlayerConfig(DeletePlayerConfigRequest) returns (MessageResponse);
}
service PlansService {
rpc ListPlans(ListPlansRequest) returns (ListPlansResponse);
}
@@ -80,6 +87,57 @@ message DeleteAdTemplateRequest {
string id = 1;
}
message ListPlayerConfigsRequest {}
message ListPlayerConfigsResponse {
repeated PlayerConfig configs = 1;
}
message CreatePlayerConfigRequest {
string name = 1;
optional string description = 2;
bool autoplay = 3;
bool loop = 4;
bool muted = 5;
bool show_controls = 6;
bool pip = 7;
bool airplay = 8;
bool chromecast = 9;
optional bool is_active = 10;
optional bool is_default = 11;
optional bool encrytion_m3u8 = 12;
optional string logo_url = 13;
}
message CreatePlayerConfigResponse {
PlayerConfig config = 1;
}
message UpdatePlayerConfigRequest {
string id = 1;
string name = 2;
optional string description = 3;
bool autoplay = 4;
bool loop = 5;
bool muted = 6;
bool show_controls = 7;
bool pip = 8;
bool airplay = 9;
bool chromecast = 10;
optional bool is_active = 11;
optional bool is_default = 12;
optional bool encrytion_m3u8 = 13;
optional string logo_url = 14;
}
message UpdatePlayerConfigResponse {
PlayerConfig config = 1;
}
message DeletePlayerConfigRequest {
string id = 1;
}
message ListPlansRequest {}
message ListPlansResponse {