Files
stream.api/proto/app/v1/account.proto
claude e7fdd0e1ab 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.
2026-03-24 16:08:36 +00:00

107 lines
2.6 KiB
Protocol Buffer

syntax = "proto3";
package stream.app.v1;
option go_package = "stream.api/internal/gen/proto/app/v1;appv1";
import "google/protobuf/wrappers.proto";
import "app/v1/common.proto";
service AccountService {
rpc GetMe(GetMeRequest) returns (GetMeResponse);
rpc UpdateMe(UpdateMeRequest) returns (UpdateMeResponse);
rpc DeleteMe(DeleteMeRequest) returns (MessageResponse);
rpc ClearMyData(ClearMyDataRequest) returns (MessageResponse);
rpc GetUserById (google.protobuf.StringValue) returns (User) {}
}
service PreferencesService {
rpc GetPreferences(GetPreferencesRequest) returns (GetPreferencesResponse);
rpc UpdatePreferences(UpdatePreferencesRequest) returns (UpdatePreferencesResponse);
}
service UsageService {
rpc GetUsage(GetUsageRequest) returns (GetUsageResponse);
}
service NotificationsService {
rpc ListNotifications(ListNotificationsRequest) returns (ListNotificationsResponse);
rpc MarkNotificationRead(MarkNotificationReadRequest) returns (MessageResponse);
rpc MarkAllNotificationsRead(MarkAllNotificationsReadRequest) returns (MessageResponse);
rpc DeleteNotification(DeleteNotificationRequest) returns (MessageResponse);
rpc ClearNotifications(ClearNotificationsRequest) returns (MessageResponse);
}
message GetMeRequest {}
message GetMeResponse {
User user = 1;
}
message UpdateMeRequest {
optional string username = 1;
optional string email = 2;
optional string language = 3;
optional string locale = 4;
optional string telegram_id = 5;
}
message UpdateMeResponse {
User user = 1;
}
message DeleteMeRequest {}
message ClearMyDataRequest {}
message GetPreferencesRequest {}
message GetPreferencesResponse {
Preferences preferences = 1;
}
message UpdatePreferencesRequest {
optional bool email_notifications = 1;
optional bool push_notifications = 2;
optional bool marketing_notifications = 3;
optional bool telegram_notifications = 4;
optional bool autoplay = 5;
optional bool loop = 6;
optional bool muted = 7;
optional bool show_controls = 8;
optional bool pip = 9;
optional bool airplay = 10;
optional bool chromecast = 11;
optional string language = 12;
optional string locale = 13;
}
message UpdatePreferencesResponse {
Preferences preferences = 1;
}
message GetUsageRequest {}
message GetUsageResponse {
string user_id = 1;
int64 total_videos = 2;
int64 total_storage = 3;
}
message ListNotificationsRequest {}
message ListNotificationsResponse {
repeated Notification notifications = 1;
}
message MarkNotificationReadRequest {
string id = 1;
}
message MarkAllNotificationsReadRequest {}
message DeleteNotificationRequest {
string id = 1;
}
message ClearNotificationsRequest {}