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:
@@ -637,6 +637,506 @@ func (x *DeleteAdTemplateRequest) GetId() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
type ListPlayerConfigsRequest struct {
|
||||
state protoimpl.MessageState `protogen:"open.v1"`
|
||||
unknownFields protoimpl.UnknownFields
|
||||
sizeCache protoimpl.SizeCache
|
||||
}
|
||||
|
||||
func (x *ListPlayerConfigsRequest) Reset() {
|
||||
*x = ListPlayerConfigsRequest{}
|
||||
mi := &file_app_v1_catalog_proto_msgTypes[12]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *ListPlayerConfigsRequest) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*ListPlayerConfigsRequest) ProtoMessage() {}
|
||||
|
||||
func (x *ListPlayerConfigsRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_app_v1_catalog_proto_msgTypes[12]
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use ListPlayerConfigsRequest.ProtoReflect.Descriptor instead.
|
||||
func (*ListPlayerConfigsRequest) Descriptor() ([]byte, []int) {
|
||||
return file_app_v1_catalog_proto_rawDescGZIP(), []int{12}
|
||||
}
|
||||
|
||||
type ListPlayerConfigsResponse struct {
|
||||
state protoimpl.MessageState `protogen:"open.v1"`
|
||||
Configs []*PlayerConfig `protobuf:"bytes,1,rep,name=configs,proto3" json:"configs,omitempty"`
|
||||
unknownFields protoimpl.UnknownFields
|
||||
sizeCache protoimpl.SizeCache
|
||||
}
|
||||
|
||||
func (x *ListPlayerConfigsResponse) Reset() {
|
||||
*x = ListPlayerConfigsResponse{}
|
||||
mi := &file_app_v1_catalog_proto_msgTypes[13]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *ListPlayerConfigsResponse) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*ListPlayerConfigsResponse) ProtoMessage() {}
|
||||
|
||||
func (x *ListPlayerConfigsResponse) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_app_v1_catalog_proto_msgTypes[13]
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use ListPlayerConfigsResponse.ProtoReflect.Descriptor instead.
|
||||
func (*ListPlayerConfigsResponse) Descriptor() ([]byte, []int) {
|
||||
return file_app_v1_catalog_proto_rawDescGZIP(), []int{13}
|
||||
}
|
||||
|
||||
func (x *ListPlayerConfigsResponse) GetConfigs() []*PlayerConfig {
|
||||
if x != nil {
|
||||
return x.Configs
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type CreatePlayerConfigRequest struct {
|
||||
state protoimpl.MessageState `protogen:"open.v1"`
|
||||
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
|
||||
Description *string `protobuf:"bytes,2,opt,name=description,proto3,oneof" json:"description,omitempty"`
|
||||
Autoplay bool `protobuf:"varint,3,opt,name=autoplay,proto3" json:"autoplay,omitempty"`
|
||||
Loop bool `protobuf:"varint,4,opt,name=loop,proto3" json:"loop,omitempty"`
|
||||
Muted bool `protobuf:"varint,5,opt,name=muted,proto3" json:"muted,omitempty"`
|
||||
ShowControls bool `protobuf:"varint,6,opt,name=show_controls,json=showControls,proto3" json:"show_controls,omitempty"`
|
||||
Pip bool `protobuf:"varint,7,opt,name=pip,proto3" json:"pip,omitempty"`
|
||||
Airplay bool `protobuf:"varint,8,opt,name=airplay,proto3" json:"airplay,omitempty"`
|
||||
Chromecast bool `protobuf:"varint,9,opt,name=chromecast,proto3" json:"chromecast,omitempty"`
|
||||
IsActive *bool `protobuf:"varint,10,opt,name=is_active,json=isActive,proto3,oneof" json:"is_active,omitempty"`
|
||||
IsDefault *bool `protobuf:"varint,11,opt,name=is_default,json=isDefault,proto3,oneof" json:"is_default,omitempty"`
|
||||
EncrytionM3U8 *bool `protobuf:"varint,12,opt,name=encrytion_m3u8,json=encrytionM3u8,proto3,oneof" json:"encrytion_m3u8,omitempty"`
|
||||
LogoUrl *string `protobuf:"bytes,13,opt,name=logo_url,json=logoUrl,proto3,oneof" json:"logo_url,omitempty"`
|
||||
unknownFields protoimpl.UnknownFields
|
||||
sizeCache protoimpl.SizeCache
|
||||
}
|
||||
|
||||
func (x *CreatePlayerConfigRequest) Reset() {
|
||||
*x = CreatePlayerConfigRequest{}
|
||||
mi := &file_app_v1_catalog_proto_msgTypes[14]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *CreatePlayerConfigRequest) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*CreatePlayerConfigRequest) ProtoMessage() {}
|
||||
|
||||
func (x *CreatePlayerConfigRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_app_v1_catalog_proto_msgTypes[14]
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use CreatePlayerConfigRequest.ProtoReflect.Descriptor instead.
|
||||
func (*CreatePlayerConfigRequest) Descriptor() ([]byte, []int) {
|
||||
return file_app_v1_catalog_proto_rawDescGZIP(), []int{14}
|
||||
}
|
||||
|
||||
func (x *CreatePlayerConfigRequest) GetName() string {
|
||||
if x != nil {
|
||||
return x.Name
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *CreatePlayerConfigRequest) GetDescription() string {
|
||||
if x != nil && x.Description != nil {
|
||||
return *x.Description
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *CreatePlayerConfigRequest) GetAutoplay() bool {
|
||||
if x != nil {
|
||||
return x.Autoplay
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (x *CreatePlayerConfigRequest) GetLoop() bool {
|
||||
if x != nil {
|
||||
return x.Loop
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (x *CreatePlayerConfigRequest) GetMuted() bool {
|
||||
if x != nil {
|
||||
return x.Muted
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (x *CreatePlayerConfigRequest) GetShowControls() bool {
|
||||
if x != nil {
|
||||
return x.ShowControls
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (x *CreatePlayerConfigRequest) GetPip() bool {
|
||||
if x != nil {
|
||||
return x.Pip
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (x *CreatePlayerConfigRequest) GetAirplay() bool {
|
||||
if x != nil {
|
||||
return x.Airplay
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (x *CreatePlayerConfigRequest) GetChromecast() bool {
|
||||
if x != nil {
|
||||
return x.Chromecast
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (x *CreatePlayerConfigRequest) GetIsActive() bool {
|
||||
if x != nil && x.IsActive != nil {
|
||||
return *x.IsActive
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (x *CreatePlayerConfigRequest) GetIsDefault() bool {
|
||||
if x != nil && x.IsDefault != nil {
|
||||
return *x.IsDefault
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (x *CreatePlayerConfigRequest) GetEncrytionM3U8() bool {
|
||||
if x != nil && x.EncrytionM3U8 != nil {
|
||||
return *x.EncrytionM3U8
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (x *CreatePlayerConfigRequest) GetLogoUrl() string {
|
||||
if x != nil && x.LogoUrl != nil {
|
||||
return *x.LogoUrl
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
type CreatePlayerConfigResponse struct {
|
||||
state protoimpl.MessageState `protogen:"open.v1"`
|
||||
Config *PlayerConfig `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"`
|
||||
unknownFields protoimpl.UnknownFields
|
||||
sizeCache protoimpl.SizeCache
|
||||
}
|
||||
|
||||
func (x *CreatePlayerConfigResponse) Reset() {
|
||||
*x = CreatePlayerConfigResponse{}
|
||||
mi := &file_app_v1_catalog_proto_msgTypes[15]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *CreatePlayerConfigResponse) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*CreatePlayerConfigResponse) ProtoMessage() {}
|
||||
|
||||
func (x *CreatePlayerConfigResponse) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_app_v1_catalog_proto_msgTypes[15]
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use CreatePlayerConfigResponse.ProtoReflect.Descriptor instead.
|
||||
func (*CreatePlayerConfigResponse) Descriptor() ([]byte, []int) {
|
||||
return file_app_v1_catalog_proto_rawDescGZIP(), []int{15}
|
||||
}
|
||||
|
||||
func (x *CreatePlayerConfigResponse) GetConfig() *PlayerConfig {
|
||||
if x != nil {
|
||||
return x.Config
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type UpdatePlayerConfigRequest struct {
|
||||
state protoimpl.MessageState `protogen:"open.v1"`
|
||||
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
|
||||
Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
|
||||
Description *string `protobuf:"bytes,3,opt,name=description,proto3,oneof" json:"description,omitempty"`
|
||||
Autoplay bool `protobuf:"varint,4,opt,name=autoplay,proto3" json:"autoplay,omitempty"`
|
||||
Loop bool `protobuf:"varint,5,opt,name=loop,proto3" json:"loop,omitempty"`
|
||||
Muted bool `protobuf:"varint,6,opt,name=muted,proto3" json:"muted,omitempty"`
|
||||
ShowControls bool `protobuf:"varint,7,opt,name=show_controls,json=showControls,proto3" json:"show_controls,omitempty"`
|
||||
Pip bool `protobuf:"varint,8,opt,name=pip,proto3" json:"pip,omitempty"`
|
||||
Airplay bool `protobuf:"varint,9,opt,name=airplay,proto3" json:"airplay,omitempty"`
|
||||
Chromecast bool `protobuf:"varint,10,opt,name=chromecast,proto3" json:"chromecast,omitempty"`
|
||||
IsActive *bool `protobuf:"varint,11,opt,name=is_active,json=isActive,proto3,oneof" json:"is_active,omitempty"`
|
||||
IsDefault *bool `protobuf:"varint,12,opt,name=is_default,json=isDefault,proto3,oneof" json:"is_default,omitempty"`
|
||||
EncrytionM3U8 *bool `protobuf:"varint,13,opt,name=encrytion_m3u8,json=encrytionM3u8,proto3,oneof" json:"encrytion_m3u8,omitempty"`
|
||||
LogoUrl *string `protobuf:"bytes,14,opt,name=logo_url,json=logoUrl,proto3,oneof" json:"logo_url,omitempty"`
|
||||
unknownFields protoimpl.UnknownFields
|
||||
sizeCache protoimpl.SizeCache
|
||||
}
|
||||
|
||||
func (x *UpdatePlayerConfigRequest) Reset() {
|
||||
*x = UpdatePlayerConfigRequest{}
|
||||
mi := &file_app_v1_catalog_proto_msgTypes[16]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *UpdatePlayerConfigRequest) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*UpdatePlayerConfigRequest) ProtoMessage() {}
|
||||
|
||||
func (x *UpdatePlayerConfigRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_app_v1_catalog_proto_msgTypes[16]
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use UpdatePlayerConfigRequest.ProtoReflect.Descriptor instead.
|
||||
func (*UpdatePlayerConfigRequest) Descriptor() ([]byte, []int) {
|
||||
return file_app_v1_catalog_proto_rawDescGZIP(), []int{16}
|
||||
}
|
||||
|
||||
func (x *UpdatePlayerConfigRequest) GetId() string {
|
||||
if x != nil {
|
||||
return x.Id
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *UpdatePlayerConfigRequest) GetName() string {
|
||||
if x != nil {
|
||||
return x.Name
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *UpdatePlayerConfigRequest) GetDescription() string {
|
||||
if x != nil && x.Description != nil {
|
||||
return *x.Description
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *UpdatePlayerConfigRequest) GetAutoplay() bool {
|
||||
if x != nil {
|
||||
return x.Autoplay
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (x *UpdatePlayerConfigRequest) GetLoop() bool {
|
||||
if x != nil {
|
||||
return x.Loop
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (x *UpdatePlayerConfigRequest) GetMuted() bool {
|
||||
if x != nil {
|
||||
return x.Muted
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (x *UpdatePlayerConfigRequest) GetShowControls() bool {
|
||||
if x != nil {
|
||||
return x.ShowControls
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (x *UpdatePlayerConfigRequest) GetPip() bool {
|
||||
if x != nil {
|
||||
return x.Pip
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (x *UpdatePlayerConfigRequest) GetAirplay() bool {
|
||||
if x != nil {
|
||||
return x.Airplay
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (x *UpdatePlayerConfigRequest) GetChromecast() bool {
|
||||
if x != nil {
|
||||
return x.Chromecast
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (x *UpdatePlayerConfigRequest) GetIsActive() bool {
|
||||
if x != nil && x.IsActive != nil {
|
||||
return *x.IsActive
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (x *UpdatePlayerConfigRequest) GetIsDefault() bool {
|
||||
if x != nil && x.IsDefault != nil {
|
||||
return *x.IsDefault
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (x *UpdatePlayerConfigRequest) GetEncrytionM3U8() bool {
|
||||
if x != nil && x.EncrytionM3U8 != nil {
|
||||
return *x.EncrytionM3U8
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (x *UpdatePlayerConfigRequest) GetLogoUrl() string {
|
||||
if x != nil && x.LogoUrl != nil {
|
||||
return *x.LogoUrl
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
type UpdatePlayerConfigResponse struct {
|
||||
state protoimpl.MessageState `protogen:"open.v1"`
|
||||
Config *PlayerConfig `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"`
|
||||
unknownFields protoimpl.UnknownFields
|
||||
sizeCache protoimpl.SizeCache
|
||||
}
|
||||
|
||||
func (x *UpdatePlayerConfigResponse) Reset() {
|
||||
*x = UpdatePlayerConfigResponse{}
|
||||
mi := &file_app_v1_catalog_proto_msgTypes[17]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *UpdatePlayerConfigResponse) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*UpdatePlayerConfigResponse) ProtoMessage() {}
|
||||
|
||||
func (x *UpdatePlayerConfigResponse) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_app_v1_catalog_proto_msgTypes[17]
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use UpdatePlayerConfigResponse.ProtoReflect.Descriptor instead.
|
||||
func (*UpdatePlayerConfigResponse) Descriptor() ([]byte, []int) {
|
||||
return file_app_v1_catalog_proto_rawDescGZIP(), []int{17}
|
||||
}
|
||||
|
||||
func (x *UpdatePlayerConfigResponse) GetConfig() *PlayerConfig {
|
||||
if x != nil {
|
||||
return x.Config
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type DeletePlayerConfigRequest struct {
|
||||
state protoimpl.MessageState `protogen:"open.v1"`
|
||||
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
|
||||
unknownFields protoimpl.UnknownFields
|
||||
sizeCache protoimpl.SizeCache
|
||||
}
|
||||
|
||||
func (x *DeletePlayerConfigRequest) Reset() {
|
||||
*x = DeletePlayerConfigRequest{}
|
||||
mi := &file_app_v1_catalog_proto_msgTypes[18]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *DeletePlayerConfigRequest) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*DeletePlayerConfigRequest) ProtoMessage() {}
|
||||
|
||||
func (x *DeletePlayerConfigRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_app_v1_catalog_proto_msgTypes[18]
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use DeletePlayerConfigRequest.ProtoReflect.Descriptor instead.
|
||||
func (*DeletePlayerConfigRequest) Descriptor() ([]byte, []int) {
|
||||
return file_app_v1_catalog_proto_rawDescGZIP(), []int{18}
|
||||
}
|
||||
|
||||
func (x *DeletePlayerConfigRequest) GetId() string {
|
||||
if x != nil {
|
||||
return x.Id
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
type ListPlansRequest struct {
|
||||
state protoimpl.MessageState `protogen:"open.v1"`
|
||||
unknownFields protoimpl.UnknownFields
|
||||
@@ -645,7 +1145,7 @@ type ListPlansRequest struct {
|
||||
|
||||
func (x *ListPlansRequest) Reset() {
|
||||
*x = ListPlansRequest{}
|
||||
mi := &file_app_v1_catalog_proto_msgTypes[12]
|
||||
mi := &file_app_v1_catalog_proto_msgTypes[19]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
@@ -657,7 +1157,7 @@ func (x *ListPlansRequest) String() string {
|
||||
func (*ListPlansRequest) ProtoMessage() {}
|
||||
|
||||
func (x *ListPlansRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_app_v1_catalog_proto_msgTypes[12]
|
||||
mi := &file_app_v1_catalog_proto_msgTypes[19]
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
@@ -670,7 +1170,7 @@ func (x *ListPlansRequest) ProtoReflect() protoreflect.Message {
|
||||
|
||||
// Deprecated: Use ListPlansRequest.ProtoReflect.Descriptor instead.
|
||||
func (*ListPlansRequest) Descriptor() ([]byte, []int) {
|
||||
return file_app_v1_catalog_proto_rawDescGZIP(), []int{12}
|
||||
return file_app_v1_catalog_proto_rawDescGZIP(), []int{19}
|
||||
}
|
||||
|
||||
type ListPlansResponse struct {
|
||||
@@ -682,7 +1182,7 @@ type ListPlansResponse struct {
|
||||
|
||||
func (x *ListPlansResponse) Reset() {
|
||||
*x = ListPlansResponse{}
|
||||
mi := &file_app_v1_catalog_proto_msgTypes[13]
|
||||
mi := &file_app_v1_catalog_proto_msgTypes[20]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
@@ -694,7 +1194,7 @@ func (x *ListPlansResponse) String() string {
|
||||
func (*ListPlansResponse) ProtoMessage() {}
|
||||
|
||||
func (x *ListPlansResponse) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_app_v1_catalog_proto_msgTypes[13]
|
||||
mi := &file_app_v1_catalog_proto_msgTypes[20]
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
@@ -707,7 +1207,7 @@ func (x *ListPlansResponse) ProtoReflect() protoreflect.Message {
|
||||
|
||||
// Deprecated: Use ListPlansResponse.ProtoReflect.Descriptor instead.
|
||||
func (*ListPlansResponse) Descriptor() ([]byte, []int) {
|
||||
return file_app_v1_catalog_proto_rawDescGZIP(), []int{13}
|
||||
return file_app_v1_catalog_proto_rawDescGZIP(), []int{20}
|
||||
}
|
||||
|
||||
func (x *ListPlansResponse) GetPlans() []*Plan {
|
||||
@@ -774,6 +1274,64 @@ const file_app_v1_catalog_proto_rawDesc = "" +
|
||||
"\x18UpdateAdTemplateResponse\x125\n" +
|
||||
"\btemplate\x18\x01 \x01(\v2\x19.stream.app.v1.AdTemplateR\btemplate\")\n" +
|
||||
"\x17DeleteAdTemplateRequest\x12\x0e\n" +
|
||||
"\x02id\x18\x01 \x01(\tR\x02id\"\x1a\n" +
|
||||
"\x18ListPlayerConfigsRequest\"R\n" +
|
||||
"\x19ListPlayerConfigsResponse\x125\n" +
|
||||
"\aconfigs\x18\x01 \x03(\v2\x1b.stream.app.v1.PlayerConfigR\aconfigs\"\xec\x03\n" +
|
||||
"\x19CreatePlayerConfigRequest\x12\x12\n" +
|
||||
"\x04name\x18\x01 \x01(\tR\x04name\x12%\n" +
|
||||
"\vdescription\x18\x02 \x01(\tH\x00R\vdescription\x88\x01\x01\x12\x1a\n" +
|
||||
"\bautoplay\x18\x03 \x01(\bR\bautoplay\x12\x12\n" +
|
||||
"\x04loop\x18\x04 \x01(\bR\x04loop\x12\x14\n" +
|
||||
"\x05muted\x18\x05 \x01(\bR\x05muted\x12#\n" +
|
||||
"\rshow_controls\x18\x06 \x01(\bR\fshowControls\x12\x10\n" +
|
||||
"\x03pip\x18\a \x01(\bR\x03pip\x12\x18\n" +
|
||||
"\aairplay\x18\b \x01(\bR\aairplay\x12\x1e\n" +
|
||||
"\n" +
|
||||
"chromecast\x18\t \x01(\bR\n" +
|
||||
"chromecast\x12 \n" +
|
||||
"\tis_active\x18\n" +
|
||||
" \x01(\bH\x01R\bisActive\x88\x01\x01\x12\"\n" +
|
||||
"\n" +
|
||||
"is_default\x18\v \x01(\bH\x02R\tisDefault\x88\x01\x01\x12*\n" +
|
||||
"\x0eencrytion_m3u8\x18\f \x01(\bH\x03R\rencrytionM3u8\x88\x01\x01\x12\x1e\n" +
|
||||
"\blogo_url\x18\r \x01(\tH\x04R\alogoUrl\x88\x01\x01B\x0e\n" +
|
||||
"\f_descriptionB\f\n" +
|
||||
"\n" +
|
||||
"_is_activeB\r\n" +
|
||||
"\v_is_defaultB\x11\n" +
|
||||
"\x0f_encrytion_m3u8B\v\n" +
|
||||
"\t_logo_url\"Q\n" +
|
||||
"\x1aCreatePlayerConfigResponse\x123\n" +
|
||||
"\x06config\x18\x01 \x01(\v2\x1b.stream.app.v1.PlayerConfigR\x06config\"\xfc\x03\n" +
|
||||
"\x19UpdatePlayerConfigRequest\x12\x0e\n" +
|
||||
"\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n" +
|
||||
"\x04name\x18\x02 \x01(\tR\x04name\x12%\n" +
|
||||
"\vdescription\x18\x03 \x01(\tH\x00R\vdescription\x88\x01\x01\x12\x1a\n" +
|
||||
"\bautoplay\x18\x04 \x01(\bR\bautoplay\x12\x12\n" +
|
||||
"\x04loop\x18\x05 \x01(\bR\x04loop\x12\x14\n" +
|
||||
"\x05muted\x18\x06 \x01(\bR\x05muted\x12#\n" +
|
||||
"\rshow_controls\x18\a \x01(\bR\fshowControls\x12\x10\n" +
|
||||
"\x03pip\x18\b \x01(\bR\x03pip\x12\x18\n" +
|
||||
"\aairplay\x18\t \x01(\bR\aairplay\x12\x1e\n" +
|
||||
"\n" +
|
||||
"chromecast\x18\n" +
|
||||
" \x01(\bR\n" +
|
||||
"chromecast\x12 \n" +
|
||||
"\tis_active\x18\v \x01(\bH\x01R\bisActive\x88\x01\x01\x12\"\n" +
|
||||
"\n" +
|
||||
"is_default\x18\f \x01(\bH\x02R\tisDefault\x88\x01\x01\x12*\n" +
|
||||
"\x0eencrytion_m3u8\x18\r \x01(\bH\x03R\rencrytionM3u8\x88\x01\x01\x12\x1e\n" +
|
||||
"\blogo_url\x18\x0e \x01(\tH\x04R\alogoUrl\x88\x01\x01B\x0e\n" +
|
||||
"\f_descriptionB\f\n" +
|
||||
"\n" +
|
||||
"_is_activeB\r\n" +
|
||||
"\v_is_defaultB\x11\n" +
|
||||
"\x0f_encrytion_m3u8B\v\n" +
|
||||
"\t_logo_url\"Q\n" +
|
||||
"\x1aUpdatePlayerConfigResponse\x123\n" +
|
||||
"\x06config\x18\x01 \x01(\v2\x1b.stream.app.v1.PlayerConfigR\x06config\"+\n" +
|
||||
"\x19DeletePlayerConfigRequest\x12\x0e\n" +
|
||||
"\x02id\x18\x01 \x01(\tR\x02id\"\x12\n" +
|
||||
"\x10ListPlansRequest\">\n" +
|
||||
"\x11ListPlansResponse\x12)\n" +
|
||||
@@ -786,7 +1344,12 @@ const file_app_v1_catalog_proto_rawDesc = "" +
|
||||
"\x0fListAdTemplates\x12%.stream.app.v1.ListAdTemplatesRequest\x1a&.stream.app.v1.ListAdTemplatesResponse\x12c\n" +
|
||||
"\x10CreateAdTemplate\x12&.stream.app.v1.CreateAdTemplateRequest\x1a'.stream.app.v1.CreateAdTemplateResponse\x12c\n" +
|
||||
"\x10UpdateAdTemplate\x12&.stream.app.v1.UpdateAdTemplateRequest\x1a'.stream.app.v1.UpdateAdTemplateResponse\x12Z\n" +
|
||||
"\x10DeleteAdTemplate\x12&.stream.app.v1.DeleteAdTemplateRequest\x1a\x1e.stream.app.v1.MessageResponse2^\n" +
|
||||
"\x10DeleteAdTemplate\x12&.stream.app.v1.DeleteAdTemplateRequest\x1a\x1e.stream.app.v1.MessageResponse2\xb4\x03\n" +
|
||||
"\x14PlayerConfigsService\x12f\n" +
|
||||
"\x11ListPlayerConfigs\x12'.stream.app.v1.ListPlayerConfigsRequest\x1a(.stream.app.v1.ListPlayerConfigsResponse\x12i\n" +
|
||||
"\x12CreatePlayerConfig\x12(.stream.app.v1.CreatePlayerConfigRequest\x1a).stream.app.v1.CreatePlayerConfigResponse\x12i\n" +
|
||||
"\x12UpdatePlayerConfig\x12(.stream.app.v1.UpdatePlayerConfigRequest\x1a).stream.app.v1.UpdatePlayerConfigResponse\x12^\n" +
|
||||
"\x12DeletePlayerConfig\x12(.stream.app.v1.DeletePlayerConfigRequest\x1a\x1e.stream.app.v1.MessageResponse2^\n" +
|
||||
"\fPlansService\x12N\n" +
|
||||
"\tListPlans\x12\x1f.stream.app.v1.ListPlansRequest\x1a .stream.app.v1.ListPlansResponseB,Z*stream.api/internal/gen/proto/app/v1;appv1b\x06proto3"
|
||||
|
||||
@@ -802,55 +1365,74 @@ func file_app_v1_catalog_proto_rawDescGZIP() []byte {
|
||||
return file_app_v1_catalog_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_app_v1_catalog_proto_msgTypes = make([]protoimpl.MessageInfo, 14)
|
||||
var file_app_v1_catalog_proto_msgTypes = make([]protoimpl.MessageInfo, 21)
|
||||
var file_app_v1_catalog_proto_goTypes = []any{
|
||||
(*ListDomainsRequest)(nil), // 0: stream.app.v1.ListDomainsRequest
|
||||
(*ListDomainsResponse)(nil), // 1: stream.app.v1.ListDomainsResponse
|
||||
(*CreateDomainRequest)(nil), // 2: stream.app.v1.CreateDomainRequest
|
||||
(*CreateDomainResponse)(nil), // 3: stream.app.v1.CreateDomainResponse
|
||||
(*DeleteDomainRequest)(nil), // 4: stream.app.v1.DeleteDomainRequest
|
||||
(*ListAdTemplatesRequest)(nil), // 5: stream.app.v1.ListAdTemplatesRequest
|
||||
(*ListAdTemplatesResponse)(nil), // 6: stream.app.v1.ListAdTemplatesResponse
|
||||
(*CreateAdTemplateRequest)(nil), // 7: stream.app.v1.CreateAdTemplateRequest
|
||||
(*CreateAdTemplateResponse)(nil), // 8: stream.app.v1.CreateAdTemplateResponse
|
||||
(*UpdateAdTemplateRequest)(nil), // 9: stream.app.v1.UpdateAdTemplateRequest
|
||||
(*UpdateAdTemplateResponse)(nil), // 10: stream.app.v1.UpdateAdTemplateResponse
|
||||
(*DeleteAdTemplateRequest)(nil), // 11: stream.app.v1.DeleteAdTemplateRequest
|
||||
(*ListPlansRequest)(nil), // 12: stream.app.v1.ListPlansRequest
|
||||
(*ListPlansResponse)(nil), // 13: stream.app.v1.ListPlansResponse
|
||||
(*Domain)(nil), // 14: stream.app.v1.Domain
|
||||
(*AdTemplate)(nil), // 15: stream.app.v1.AdTemplate
|
||||
(*Plan)(nil), // 16: stream.app.v1.Plan
|
||||
(*MessageResponse)(nil), // 17: stream.app.v1.MessageResponse
|
||||
(*ListDomainsRequest)(nil), // 0: stream.app.v1.ListDomainsRequest
|
||||
(*ListDomainsResponse)(nil), // 1: stream.app.v1.ListDomainsResponse
|
||||
(*CreateDomainRequest)(nil), // 2: stream.app.v1.CreateDomainRequest
|
||||
(*CreateDomainResponse)(nil), // 3: stream.app.v1.CreateDomainResponse
|
||||
(*DeleteDomainRequest)(nil), // 4: stream.app.v1.DeleteDomainRequest
|
||||
(*ListAdTemplatesRequest)(nil), // 5: stream.app.v1.ListAdTemplatesRequest
|
||||
(*ListAdTemplatesResponse)(nil), // 6: stream.app.v1.ListAdTemplatesResponse
|
||||
(*CreateAdTemplateRequest)(nil), // 7: stream.app.v1.CreateAdTemplateRequest
|
||||
(*CreateAdTemplateResponse)(nil), // 8: stream.app.v1.CreateAdTemplateResponse
|
||||
(*UpdateAdTemplateRequest)(nil), // 9: stream.app.v1.UpdateAdTemplateRequest
|
||||
(*UpdateAdTemplateResponse)(nil), // 10: stream.app.v1.UpdateAdTemplateResponse
|
||||
(*DeleteAdTemplateRequest)(nil), // 11: stream.app.v1.DeleteAdTemplateRequest
|
||||
(*ListPlayerConfigsRequest)(nil), // 12: stream.app.v1.ListPlayerConfigsRequest
|
||||
(*ListPlayerConfigsResponse)(nil), // 13: stream.app.v1.ListPlayerConfigsResponse
|
||||
(*CreatePlayerConfigRequest)(nil), // 14: stream.app.v1.CreatePlayerConfigRequest
|
||||
(*CreatePlayerConfigResponse)(nil), // 15: stream.app.v1.CreatePlayerConfigResponse
|
||||
(*UpdatePlayerConfigRequest)(nil), // 16: stream.app.v1.UpdatePlayerConfigRequest
|
||||
(*UpdatePlayerConfigResponse)(nil), // 17: stream.app.v1.UpdatePlayerConfigResponse
|
||||
(*DeletePlayerConfigRequest)(nil), // 18: stream.app.v1.DeletePlayerConfigRequest
|
||||
(*ListPlansRequest)(nil), // 19: stream.app.v1.ListPlansRequest
|
||||
(*ListPlansResponse)(nil), // 20: stream.app.v1.ListPlansResponse
|
||||
(*Domain)(nil), // 21: stream.app.v1.Domain
|
||||
(*AdTemplate)(nil), // 22: stream.app.v1.AdTemplate
|
||||
(*PlayerConfig)(nil), // 23: stream.app.v1.PlayerConfig
|
||||
(*Plan)(nil), // 24: stream.app.v1.Plan
|
||||
(*MessageResponse)(nil), // 25: stream.app.v1.MessageResponse
|
||||
}
|
||||
var file_app_v1_catalog_proto_depIdxs = []int32{
|
||||
14, // 0: stream.app.v1.ListDomainsResponse.domains:type_name -> stream.app.v1.Domain
|
||||
14, // 1: stream.app.v1.CreateDomainResponse.domain:type_name -> stream.app.v1.Domain
|
||||
15, // 2: stream.app.v1.ListAdTemplatesResponse.templates:type_name -> stream.app.v1.AdTemplate
|
||||
15, // 3: stream.app.v1.CreateAdTemplateResponse.template:type_name -> stream.app.v1.AdTemplate
|
||||
15, // 4: stream.app.v1.UpdateAdTemplateResponse.template:type_name -> stream.app.v1.AdTemplate
|
||||
16, // 5: stream.app.v1.ListPlansResponse.plans:type_name -> stream.app.v1.Plan
|
||||
0, // 6: stream.app.v1.DomainsService.ListDomains:input_type -> stream.app.v1.ListDomainsRequest
|
||||
2, // 7: stream.app.v1.DomainsService.CreateDomain:input_type -> stream.app.v1.CreateDomainRequest
|
||||
4, // 8: stream.app.v1.DomainsService.DeleteDomain:input_type -> stream.app.v1.DeleteDomainRequest
|
||||
5, // 9: stream.app.v1.AdTemplatesService.ListAdTemplates:input_type -> stream.app.v1.ListAdTemplatesRequest
|
||||
7, // 10: stream.app.v1.AdTemplatesService.CreateAdTemplate:input_type -> stream.app.v1.CreateAdTemplateRequest
|
||||
9, // 11: stream.app.v1.AdTemplatesService.UpdateAdTemplate:input_type -> stream.app.v1.UpdateAdTemplateRequest
|
||||
11, // 12: stream.app.v1.AdTemplatesService.DeleteAdTemplate:input_type -> stream.app.v1.DeleteAdTemplateRequest
|
||||
12, // 13: stream.app.v1.PlansService.ListPlans:input_type -> stream.app.v1.ListPlansRequest
|
||||
1, // 14: stream.app.v1.DomainsService.ListDomains:output_type -> stream.app.v1.ListDomainsResponse
|
||||
3, // 15: stream.app.v1.DomainsService.CreateDomain:output_type -> stream.app.v1.CreateDomainResponse
|
||||
17, // 16: stream.app.v1.DomainsService.DeleteDomain:output_type -> stream.app.v1.MessageResponse
|
||||
6, // 17: stream.app.v1.AdTemplatesService.ListAdTemplates:output_type -> stream.app.v1.ListAdTemplatesResponse
|
||||
8, // 18: stream.app.v1.AdTemplatesService.CreateAdTemplate:output_type -> stream.app.v1.CreateAdTemplateResponse
|
||||
10, // 19: stream.app.v1.AdTemplatesService.UpdateAdTemplate:output_type -> stream.app.v1.UpdateAdTemplateResponse
|
||||
17, // 20: stream.app.v1.AdTemplatesService.DeleteAdTemplate:output_type -> stream.app.v1.MessageResponse
|
||||
13, // 21: stream.app.v1.PlansService.ListPlans:output_type -> stream.app.v1.ListPlansResponse
|
||||
14, // [14:22] is the sub-list for method output_type
|
||||
6, // [6:14] is the sub-list for method input_type
|
||||
6, // [6:6] is the sub-list for extension type_name
|
||||
6, // [6:6] is the sub-list for extension extendee
|
||||
0, // [0:6] is the sub-list for field type_name
|
||||
21, // 0: stream.app.v1.ListDomainsResponse.domains:type_name -> stream.app.v1.Domain
|
||||
21, // 1: stream.app.v1.CreateDomainResponse.domain:type_name -> stream.app.v1.Domain
|
||||
22, // 2: stream.app.v1.ListAdTemplatesResponse.templates:type_name -> stream.app.v1.AdTemplate
|
||||
22, // 3: stream.app.v1.CreateAdTemplateResponse.template:type_name -> stream.app.v1.AdTemplate
|
||||
22, // 4: stream.app.v1.UpdateAdTemplateResponse.template:type_name -> stream.app.v1.AdTemplate
|
||||
23, // 5: stream.app.v1.ListPlayerConfigsResponse.configs:type_name -> stream.app.v1.PlayerConfig
|
||||
23, // 6: stream.app.v1.CreatePlayerConfigResponse.config:type_name -> stream.app.v1.PlayerConfig
|
||||
23, // 7: stream.app.v1.UpdatePlayerConfigResponse.config:type_name -> stream.app.v1.PlayerConfig
|
||||
24, // 8: stream.app.v1.ListPlansResponse.plans:type_name -> stream.app.v1.Plan
|
||||
0, // 9: stream.app.v1.DomainsService.ListDomains:input_type -> stream.app.v1.ListDomainsRequest
|
||||
2, // 10: stream.app.v1.DomainsService.CreateDomain:input_type -> stream.app.v1.CreateDomainRequest
|
||||
4, // 11: stream.app.v1.DomainsService.DeleteDomain:input_type -> stream.app.v1.DeleteDomainRequest
|
||||
5, // 12: stream.app.v1.AdTemplatesService.ListAdTemplates:input_type -> stream.app.v1.ListAdTemplatesRequest
|
||||
7, // 13: stream.app.v1.AdTemplatesService.CreateAdTemplate:input_type -> stream.app.v1.CreateAdTemplateRequest
|
||||
9, // 14: stream.app.v1.AdTemplatesService.UpdateAdTemplate:input_type -> stream.app.v1.UpdateAdTemplateRequest
|
||||
11, // 15: stream.app.v1.AdTemplatesService.DeleteAdTemplate:input_type -> stream.app.v1.DeleteAdTemplateRequest
|
||||
12, // 16: stream.app.v1.PlayerConfigsService.ListPlayerConfigs:input_type -> stream.app.v1.ListPlayerConfigsRequest
|
||||
14, // 17: stream.app.v1.PlayerConfigsService.CreatePlayerConfig:input_type -> stream.app.v1.CreatePlayerConfigRequest
|
||||
16, // 18: stream.app.v1.PlayerConfigsService.UpdatePlayerConfig:input_type -> stream.app.v1.UpdatePlayerConfigRequest
|
||||
18, // 19: stream.app.v1.PlayerConfigsService.DeletePlayerConfig:input_type -> stream.app.v1.DeletePlayerConfigRequest
|
||||
19, // 20: stream.app.v1.PlansService.ListPlans:input_type -> stream.app.v1.ListPlansRequest
|
||||
1, // 21: stream.app.v1.DomainsService.ListDomains:output_type -> stream.app.v1.ListDomainsResponse
|
||||
3, // 22: stream.app.v1.DomainsService.CreateDomain:output_type -> stream.app.v1.CreateDomainResponse
|
||||
25, // 23: stream.app.v1.DomainsService.DeleteDomain:output_type -> stream.app.v1.MessageResponse
|
||||
6, // 24: stream.app.v1.AdTemplatesService.ListAdTemplates:output_type -> stream.app.v1.ListAdTemplatesResponse
|
||||
8, // 25: stream.app.v1.AdTemplatesService.CreateAdTemplate:output_type -> stream.app.v1.CreateAdTemplateResponse
|
||||
10, // 26: stream.app.v1.AdTemplatesService.UpdateAdTemplate:output_type -> stream.app.v1.UpdateAdTemplateResponse
|
||||
25, // 27: stream.app.v1.AdTemplatesService.DeleteAdTemplate:output_type -> stream.app.v1.MessageResponse
|
||||
13, // 28: stream.app.v1.PlayerConfigsService.ListPlayerConfigs:output_type -> stream.app.v1.ListPlayerConfigsResponse
|
||||
15, // 29: stream.app.v1.PlayerConfigsService.CreatePlayerConfig:output_type -> stream.app.v1.CreatePlayerConfigResponse
|
||||
17, // 30: stream.app.v1.PlayerConfigsService.UpdatePlayerConfig:output_type -> stream.app.v1.UpdatePlayerConfigResponse
|
||||
25, // 31: stream.app.v1.PlayerConfigsService.DeletePlayerConfig:output_type -> stream.app.v1.MessageResponse
|
||||
20, // 32: stream.app.v1.PlansService.ListPlans:output_type -> stream.app.v1.ListPlansResponse
|
||||
21, // [21:33] is the sub-list for method output_type
|
||||
9, // [9:21] is the sub-list for method input_type
|
||||
9, // [9:9] is the sub-list for extension type_name
|
||||
9, // [9:9] is the sub-list for extension extendee
|
||||
0, // [0:9] is the sub-list for field type_name
|
||||
}
|
||||
|
||||
func init() { file_app_v1_catalog_proto_init() }
|
||||
@@ -861,15 +1443,17 @@ func file_app_v1_catalog_proto_init() {
|
||||
file_app_v1_common_proto_init()
|
||||
file_app_v1_catalog_proto_msgTypes[7].OneofWrappers = []any{}
|
||||
file_app_v1_catalog_proto_msgTypes[9].OneofWrappers = []any{}
|
||||
file_app_v1_catalog_proto_msgTypes[14].OneofWrappers = []any{}
|
||||
file_app_v1_catalog_proto_msgTypes[16].OneofWrappers = []any{}
|
||||
type x struct{}
|
||||
out := protoimpl.TypeBuilder{
|
||||
File: protoimpl.DescBuilder{
|
||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||
RawDescriptor: unsafe.Slice(unsafe.StringData(file_app_v1_catalog_proto_rawDesc), len(file_app_v1_catalog_proto_rawDesc)),
|
||||
NumEnums: 0,
|
||||
NumMessages: 14,
|
||||
NumMessages: 21,
|
||||
NumExtensions: 0,
|
||||
NumServices: 3,
|
||||
NumServices: 4,
|
||||
},
|
||||
GoTypes: file_app_v1_catalog_proto_goTypes,
|
||||
DependencyIndexes: file_app_v1_catalog_proto_depIdxs,
|
||||
|
||||
Reference in New Issue
Block a user