diff --git a/cmd/app.go b/cmd/app.go index 1308bbd..ddc8cd5 100644 --- a/cmd/app.go +++ b/cmd/app.go @@ -5,6 +5,7 @@ import ( "micro-bundle/internal/controller" _ "micro-bundle/internal/handler" "micro-bundle/pkg/app" + "micro-bundle/pkg/db" "micro-bundle/pkg/tracing" "dubbo.apache.org/dubbo-go/v3/config" @@ -12,15 +13,15 @@ import ( _ "dubbo.apache.org/dubbo-go/v3/imports" "github.com/bwmarrin/snowflake" "go.uber.org/zap" - "gorm.io/gorm" ) -func NewApp(Lg *zap.Logger, JaegerTracer *tracing.JaegerProvider, SfNode *snowflake.Node, BundleDB *gorm.DB) *app.App { +func NewApp(Lg *zap.Logger, JaegerTracer *tracing.JaegerProvider, SfNode *snowflake.Node, BundleDB *db.BundleDB, TaskBenchDB *db.TaskBenchDB) *app.App { return &app.App{ Lg: Lg, JaegerTracer: JaegerTracer, SfNode: SfNode, BundleDB: BundleDB, + TaskBenchDB: TaskBenchDB, } } diff --git a/cmd/wire.go b/cmd/wire.go index 8a29cd3..815532d 100644 --- a/cmd/wire.go +++ b/cmd/wire.go @@ -14,6 +14,6 @@ import ( ) func InitApp() (*app.App, error) { - wire.Build(logger.Provider, tracing.Provider, snowf.Provider, db.Provider, NewApp) + wire.Build(logger.Provider, tracing.Provider, snowf.Provider, db.Provider, db.TaskBenchProvider, NewApp) return &app.App{}, nil } diff --git a/cmd/wire_gen.go b/cmd/wire_gen.go index aec1a63..a51c5a3 100644 --- a/cmd/wire_gen.go +++ b/cmd/wire_gen.go @@ -1,6 +1,6 @@ // Code generated by Wire. DO NOT EDIT. -//go:generate go run github.com/google/wire/cmd/wire +//go:generate go run -mod=mod github.com/google/wire/cmd/wire //go:build !wireinject // +build !wireinject @@ -12,6 +12,12 @@ import ( "micro-bundle/pkg/logger" "micro-bundle/pkg/snowf" "micro-bundle/pkg/tracing" + + _ "dubbo.apache.org/dubbo-go/v3/filter/tps/strategy" + + _ "dubbo.apache.org/dubbo-go/v3/imports" + + _ "micro-bundle/internal/handler" ) // Injectors from wire.go: @@ -20,7 +26,8 @@ func InitApp() (*app.App, error) { zapLogger := logger.ZapInit() jaegerProvider := tracing.NewTracing() node := snowf.NewSf() - gormDB := db.NewBundleDB() - appApp := NewApp(zapLogger, jaegerProvider, node, gormDB) + bundleDB := db.NewBundleDB() + taskBenchDB := db.NewTaskBenchDB() + appApp := NewApp(zapLogger, jaegerProvider, node, bundleDB, taskBenchDB) return appApp, nil } diff --git a/conf/config.yaml b/conf/config.yaml index 2e8a885..d42d6c1 100644 --- a/conf/config.yaml +++ b/conf/config.yaml @@ -7,6 +7,12 @@ bundleDB: user: artuser password: C250PflXIWv2SQm8 db_name: "fiee_bundle" +taskBenchDB: + host: 121.229.45.214 + port: 9007 + user: artuser + password: C250PflXIWv2SQm8 + db_name: "fiee_task_bench" #aliYunRtc: # appid: "aeztom27" # app_key: "76c62466cbd77d7a3606660a15861d1e" diff --git a/conf/dev/config.yaml b/conf/dev/config.yaml index 2e8a885..d42d6c1 100644 --- a/conf/dev/config.yaml +++ b/conf/dev/config.yaml @@ -7,6 +7,12 @@ bundleDB: user: artuser password: C250PflXIWv2SQm8 db_name: "fiee_bundle" +taskBenchDB: + host: 121.229.45.214 + port: 9007 + user: artuser + password: C250PflXIWv2SQm8 + db_name: "fiee_task_bench" #aliYunRtc: # appid: "aeztom27" # app_key: "76c62466cbd77d7a3606660a15861d1e" diff --git a/conf/prod/config.yaml b/conf/prod/config.yaml index 27a60ca..6240193 100644 --- a/conf/prod/config.yaml +++ b/conf/prod/config.yaml @@ -7,6 +7,12 @@ bundleDB: user: fonchain_opv password: IhQmhg8HZjDmU=Ove5PnA^D db_name: "micro_bundle" +taskBenchDB: + host: svc-fontree-mysql-service + port: 3306 + user: fonchain_opv + password: IhQmhg8HZjDmU=Ove5PnA^D + db_name: "fiee_task_bench" #redis: # db: ${oa-meeting.redis.db} # addr: ${redis.addr} diff --git a/config/config.go b/config/config.go index 60b85d7..0e82bef 100644 --- a/config/config.go +++ b/config/config.go @@ -26,6 +26,13 @@ type AppConfig struct { Password string DbName string `mapstructure:"db_name"` } + TaskBenchDB struct { + Host string + Port string + User string + Password string + DbName string `mapstructure:"db_name"` + } Redis struct { DB string Addr string diff --git a/internal/controller/task.go b/internal/controller/task.go new file mode 100644 index 0000000..6cfdb50 --- /dev/null +++ b/internal/controller/task.go @@ -0,0 +1,296 @@ +package controller + +import ( + "context" + "fmt" + "micro-bundle/internal/dao" + "micro-bundle/internal/logic" + "micro-bundle/pb/bundle" +) + +// GetPendingTaskList 查询待指派任务记录 +func (b *BundleProvider) GetPendingTaskList(_ context.Context, req *bundle.TaskQueryRequest) (*bundle.TaskQueryResponse, error) { + // 转换请求参数 + daoReq := &dao.TaskQueryRequest{ + Keyword: req.Keyword, + Page: int(req.Page), + PageSize: int(req.PageSize), + SortBy: req.SortBy, + SortType: req.SortType, + } + + // 调用logic层 + tasks, total, err := logic.GetPendingTaskList(daoReq) + if err != nil { + return nil, err + } + + // 转换响应数据 + var taskInfos []*bundle.TaskManagementInfo + for _, task := range tasks { + taskInfo := &bundle.TaskManagementInfo{ + SubNum: task.SubNum, + TelNum: task.TelNum, + ArtistName: task.ArtistName, + PendingVideoCount: int32(task.PendingVideoCount), + PendingPostCount: int32(task.PendingPostCount), + PendingDataCount: int32(task.PendingDataCount), + ProgressTaskCount: int32(task.ProgressTaskCount), + CompleteTaskCount: int32(task.CompleteTaskCount), + LastTaskAssignee: task.LastTaskAssignee, + TaskAssigneeNum: task.TaskAssigneeNum, + } + taskInfos = append(taskInfos, taskInfo) + } + + return &bundle.TaskQueryResponse{ + Tasks: taskInfos, + Total: total, + Page: req.Page, + PageSize: req.PageSize, + }, nil +} + +// AssignTask 指派某位员工完成某个艺人的任务 +// AssignTask 指派某位员工完成某个艺人的任务 +func (b *BundleProvider) AssignTask(_ context.Context, req *bundle.TaskAssignRequest) (*bundle.CommonResponse, error) { + // 转换请求参数 + daoReq := &dao.TaskAssignRequest{ + SubNum: req.SubNum, + TelNum: req.TelNum, + ArtistName: req.ArtistName, // 添加缺失的ArtistName字段 + TaskAssignee: req.TaskAssignee, + TaskAssigneeNum: req.TaskAssigneeNum, + Operator: req.Operator, + OperatorNum: req.OperatorNum, + AssignVideoCount: int(req.AssignVideoCount), + AssignPostCount: int(req.AssignPostCount), + AssignDataCount: int(req.AssignDataCount), + } + + // 调用logic层 + err := logic.AssignTask(daoReq) + if err != nil { + return &bundle.CommonResponse{ + Msg: err.Error(), + }, err + } + + return &bundle.CommonResponse{ + Msg: "任务指派成功", + }, nil +} + +// UpdatePendingCount 修改待发数量 +func (b *BundleProvider) UpdatePendingCount(_ context.Context, req *bundle.UpdatePendingCountRequest) (*bundle.CommonResponse, error) { + // 转换请求参数 + daoReq := &dao.UpdatePendingCountRequest{ + SubNum: req.SubNum, + TelNum: req.TelNum, + ArtistName: req.ArtistName, // 添加缺失的ArtistName字段 + PendingVideoCount: int(req.PendingVideoCount), + PendingPostCount: int(req.PendingPostCount), + PendingDataCount: int(req.PendingDataCount), + Operator: req.Operator, + OperatorNum: req.OperatorNum, + } + + // 调用logic层 + err := logic.UpdatePendingCount(daoReq) + if err != nil { + return &bundle.CommonResponse{ + Msg: err.Error(), + }, err + } + + return &bundle.CommonResponse{ + Msg: "待发数量修改成功", + }, nil +} + +// GetRecentAssignRecords 查询最近被指派记录 +func (b *BundleProvider) GetRecentAssignRecords(_ context.Context, req *bundle.RecentAssignRecordsRequest) (*bundle.RecentAssignRecordsResponse, error) { + limit := int(req.Limit) + if limit == 0 { + limit = 3 // 默认查询3条 + } + + // 调用logic层 + operatorList, err := logic.GetRecentAssignRecords(limit) + if err != nil { + return nil, err + } + + return &bundle.RecentAssignRecordsResponse{ + OperatorList: operatorList, + }, nil +} + +// GetEmployeeAssignedTasks 根据登录人信息查询被指派给该员工的任务 +func (b *BundleProvider) GetEmployeeAssignedTasks(_ context.Context, req *bundle.EmployeeTaskQueryRequest) (*bundle.EmployeeTaskQueryResponse, error) { + // 转换请求参数 + daoReq := &dao.EmployeeTaskQueryRequest{ + TaskAssigneeNum: req.TaskAssigneeNum, + Keyword: req.Keyword, + Operator: req.Operator, + SortBy: req.SortBy, + StartTime: req.StartTime, + EndTime: req.EndTime, + StartCompleteTime: req.StartCompleteTime, + EndCompleteTime: req.EndCompleteTime, + Status: int(req.Status), + Page: int(req.Page), + PageSize: int(req.PageSize), + } + + // 调用logic层 + records, total, err := logic.GetEmployeeAssignedTasks(daoReq) + if err != nil { + return nil, err + } + + // 转换响应数据 + var recordInfos []*bundle.TaskAssignRecordInfo + for _, record := range records { + recordInfo := convertToTaskAssignRecordInfo(record) + recordInfos = append(recordInfos, recordInfo) + } + + return &bundle.EmployeeTaskQueryResponse{ + Records: recordInfos, + Total: total, + Page: req.Page, + PageSize: req.PageSize, + }, nil +} + +// CompleteTaskManually 员工手动点击完成任务 +func (b *BundleProvider) CompleteTaskManually(_ context.Context, req *bundle.CompleteTaskManuallyRequest) (*bundle.CommonResponse, error) { + // 调用logic层 + err := logic.CompleteTaskManually(req.AssignRecordsUUID, req.TaskAssigneeNum) + if err != nil { + return &bundle.CommonResponse{ + Msg: err.Error(), + }, err + } + + return &bundle.CommonResponse{ + Msg: "任务完成状态更新成功", + }, nil +} + +// UpdateTaskProgress 员工实际完成任务状态更新 +func (b *BundleProvider) UpdateTaskProgress(_ context.Context, req *bundle.UpdateTaskProgressRequest) (*bundle.CommonResponse, error) { + // 转换请求参数 + daoReq := &dao.CompleteTaskRequest{ + AssignRecordsUUID: req.AssignRecordsUUID, + EmployeeName: req.EmployeeName, + EmployeeNum: req.EmployeeNum, + TaskType: req.TaskType, + CompleteCount: int(req.CompleteCount), + } + + // 调用logic层 + err := logic.UpdateTaskProgress(daoReq) + if err != nil { + return &bundle.CommonResponse{ + Msg: err.Error(), + }, err + } + + return &bundle.CommonResponse{ + Msg: "任务进度更新成功", + }, nil +} + +// GetTaskAssignRecordsList 多条件查询操作记录表 +func (b *BundleProvider) GetTaskAssignRecordsList(_ context.Context, req *bundle.TaskAssignRecordsQueryRequest) (*bundle.TaskAssignRecordsQueryResponse, error) { + // 转换请求参数 + daoReq := &dao.TaskAssignRecordsQueryRequest{ + Keyword: req.Keyword, + TaskAssignee: req.TaskAssignee, + Operator: req.Operator, + OperatorNum: req.OperatorNum, + StartTime: req.StartTime, + EndTime: req.EndTime, + Status: int(req.Status), + ActualStatus: int(req.ActualStatus), + Page: int(req.Page), + PageSize: int(req.PageSize), + } + + // 调用logic层 + records, total, err := logic.GetTaskAssignRecordsList(daoReq) + if err != nil { + return nil, err + } + + // 转换响应数据 + var recordInfos []*bundle.TaskAssignRecordInfo + for _, record := range records { + recordInfo := convertToTaskAssignRecordInfo(record) + recordInfos = append(recordInfos, recordInfo) + } + + return &bundle.TaskAssignRecordsQueryResponse{ + Records: recordInfos, + Total: total, + Page: req.Page, + PageSize: req.PageSize, + }, nil +} + +// convertToTaskAssignRecordInfo 转换TaskAssignRecords模型为proto消息 +func convertToTaskAssignRecordInfo(record *dao.TaskAssignRecordsResponse) *bundle.TaskAssignRecordInfo { + var completeTime string + if !record.CompleteTime.IsZero() { + completeTime = record.CompleteTime.Format("2006-01-02 15:04:05") + } + + return &bundle.TaskAssignRecordInfo{ + AssignRecordsUUID: record.AssignRecordsUUID, + SubNum: record.SubNum, + TelNum: record.TelNum, + ArtistName: record.ArtistName, + Status: int32(record.Status), + ActualStatus: int32(record.ActualStatus), + CompleteTime: completeTime, + OperatorType: int32(record.OperatorType), + Operator: record.Operator, + OperatorNum: record.OperatorNum, + OperatorTime: record.OperatorTime.Format("2006-01-02 15:04:05"), + TaskAssignee: record.TaskAssignee, + TaskAssigneeNum: record.TaskAssigneeNum, + PendingVideoCount: int32(record.PendingVideoCount), + PendingPostCount: int32(record.PendingPostCount), + PendingDataCount: int32(record.PendingDataCount), + UpdatedAt: record.UpdatedAt.Format("2006-01-02 15:04:05"), + } +} + +// GetArtistBundleBalance 查询艺人套餐剩余数量 +func (b *BundleProvider) GetArtistBundleBalance(_ context.Context, req *bundle.ArtistBundleBalanceRequest) (*bundle.ArtistBundleBalanceResponse, error) { + // 参数验证 + if req.CustomerNum == "" && req.TelNum == "" { + return nil, fmt.Errorf("艺人编号和手机号不能同时为空") + } + + // 转换请求参数 + daoReq := &dao.ArtistBundleBalanceRequest{ + CustomerNum: req.CustomerNum, + TelNum: req.TelNum, + } + + // 调用logic层 + result, err := logic.GetArtistBundleBalance(daoReq) + if err != nil { + return nil, err + } + + // 转换响应数据 + return &bundle.ArtistBundleBalanceResponse{ + RemainingVideoCount: int32(result.RemainingVideoCount), + RemainingImageCount: int32(result.RemainingImageCount), + RemainingDataAnalysisCount: int32(result.RemainingDataAnalysisCount), + }, nil +} diff --git a/internal/dao/taskDao.go b/internal/dao/taskDao.go new file mode 100644 index 0000000..fbf2a04 --- /dev/null +++ b/internal/dao/taskDao.go @@ -0,0 +1,964 @@ +package dao + +import ( + "fmt" + "micro-bundle/internal/model" + "micro-bundle/pkg/app" + commonErr "micro-bundle/pkg/err" + "micro-bundle/pkg/msg" + "time" + + "github.com/google/uuid" + "gorm.io/gorm" +) + +// TaskQueryRequest 查询待指派任务记录请求参数 +type TaskQueryRequest struct { + Keyword string `json:"keyword"` // 艺人姓名、编号、手机号搜索关键词 + Page int `json:"page"` // 页码 + PageSize int `json:"pageSize"` // 每页数量 + SortBy string `json:"sortBy"` // 排序字段 + SortType string `json:"sortType"` // 排序类型 asc/desc +} + +// TaskAssignRequest 指派任务请求参数 +type TaskAssignRequest struct { + SubNum string `json:"subNum"` // 艺人编号 + TelNum string `json:"telNum"` // 艺人手机号 + ArtistName string `json:"artistName"` // 艺人姓名 + TaskAssignee string `json:"taskAssignee"` // 任务指派人 + TaskAssigneeNum string `json:"taskAssigneeNum"` // 任务指派人账号 + Operator string `json:"operator"` // 操作人 + OperatorNum string `json:"operatorNum"` // 操作人账号 + AssignVideoCount int `json:"assignVideoCount"` // 指派视频数 + AssignPostCount int `json:"assignPostCount"` // 指派图文数 + AssignDataCount int `json:"assignDataCount"` // 指派数据数 +} + +// UpdatePendingCountRequest 修改待发数量请求参数 +type UpdatePendingCountRequest struct { + SubNum string `json:"subNum"` // 艺人编号 + TelNum string `json:"telNum"` // 艺人手机号 + ArtistName string `json:"artistName"` // 艺人姓名 + PendingVideoCount int `json:"pendingVideoCount"` // 待发视频数量 + PendingPostCount int `json:"pendingPostCount"` // 待发图文数量 + PendingDataCount int `json:"pendingDataCount"` // 待发数据数量 + Operator string `json:"operator"` // 操作人 + OperatorNum string `json:"operatorNum"` // 操作人账号 +} + +// EmployeeTaskQueryRequest 员工任务查询请求参数 +type EmployeeTaskQueryRequest struct { + TaskAssigneeNum string `json:"taskAssigneeNum"` // 被指派人账号 + Keyword string `json:"keyword"` // 艺人姓名、编号、手机号搜索关键词 + Operator string `json:"operator"` // 操作人 + SortBy string `json:"sortBy"` // 排序字段 + StartTime string `json:"startTime"` // 指派开始时间 + EndTime string `json:"endTime"` // 指派结束时间 + StartCompleteTime string `json:"startCompleteTime"` // 开始完成时间 + EndCompleteTime string `json:"endCompleteTime"` // 结束完成时间 + Status int `json:"status"` // 反馈完成状态 + + Page int `json:"page"` // 页码 + PageSize int `json:"pageSize"` // 每页数量 +} + +// CompleteTaskRequest 完成任务请求参数 +type CompleteTaskRequest struct { + AssignRecordsUUID string `json:"assignRecordsUUID,omitempty"` // 指派记录UUID(可选) + EmployeeName string `json:"employeeName"` // 员工姓名(必要) + EmployeeNum string `json:"employeeNum"` // 员工工号(必要) + TaskType string `json:"taskType"` // 任务类型: video/post/data + CompleteCount int `json:"completeCount"` // 完成数量 +} + +// TaskAssignRecordsQueryRequest 多条件查询操作记录表请求参数 +type TaskAssignRecordsQueryRequest struct { + Keyword string `json:"keyword"` // 艺人姓名、编号、手机号搜索关键词 + TaskAssignee string `json:"taskAssignee"` // 指派人姓名 + Operator string `json:"operator"` // 操作人姓名 + OperatorNum string `json:"operatorNum"` // 操作人手机号 + StartTime string `json:"startTime"` // 操作开始时间 + EndTime string `json:"endTime"` // 操作结束时间 + Status int `json:"status"` // 反馈完成状态 0:全部 1:未完成 2:完成 + ActualStatus int `json:"actualStatus"` // 实际完成状态 0:全部 1:未完成 2:完成 + Page int `json:"page"` // 页码 + PageSize int `json:"pageSize"` // 每页数量 +} + +// 待指派任务 response +type TaskQueryResponse struct { + SubNum string `json:"subNum"` + TelNum string `json:"telNum"` + ArtistName string `json:"artistName"` + PendingVideoCount int `gorm:"column:pending_video_count;comment:待发视频数量" json:"pendingVideoCount"` + PendingPostCount int `gorm:"column:pending_post_count;comment:待发图文数量" json:"pendingPostCount"` + PendingDataCount int `gorm:"column:pending_data_count;comment:待发数据数量" json:"pendingDataCount"` + ProgressTaskCount int `gorm:"column:progress_task_count;comment:进行中的任务数量" json:"progressTaskCount"` + CompleteTaskCount int `gorm:"column:complete_task_count;comment:已完成任务数量" json:"completeTaskCount"` + LastTaskAssignee string `gorm:"column:last_task_assignee;comment:最后一次的任务指派人" json:"lastTaskAssignee"` + TaskAssigneeNum string `gorm:"column:task_assignee_num;comment:最后一次指派人账号" json:"taskAssigneeNum"` +} + +// 任务记录表返回结构体 +type TaskAssignRecordsResponse struct { + AssignRecordsUUID string `gorm:"column:assign_records_uuid;comment:指派记录UUID" json:"assignRecordsUUID"` + SubNum string `gorm:"column:sub_num;comment:艺人编号" json:"subNum"` + TelNum string `gorm:"column:tel_num;comment:艺人手机号" json:"telNum"` + ArtistName string `gorm:"column:artist_name;comment:艺人名称" json:"artistName"` + Status int `gorm:"column:status;comment:反馈完成状态 1:未完成 2:完成" json:"status"` + ActualStatus int `gorm:"column:actual_status;comment:实际完成状态 1:未完成 2:完成" json:"actualStatus"` + CompleteTime *time.Time `gorm:"column:complete_time;comment:反馈完成时间" json:"completeTime"` + OperatorType int `gorm:"column:operator_type;comment:操作类型 1:修改待发数量 2:指派" json:"operatorType"` + Operator string `gorm:"column:operator;comment:操作人" json:"operator"` + OperatorNum string `gorm:"column:operator_num;comment:操作人账号" json:"operatorNum"` + OperatorTime time.Time `gorm:"column:operator_time;comment:操作时间" json:"operatorTime"` + TaskAssignee string `gorm:"column:task_assignee;comment:任务指派人" json:"taskAssignee"` + TaskAssigneeNum string `gorm:"column:task_assignee_num;comment:任务指派人账号" json:"taskAssigneeNum"` + PendingVideoCount int `gorm:"column:pending_video_count;comment:待发视频数量" json:"pendingVideoCount"` + PendingPostCount int `gorm:"column:pending_post_count;comment:待发图文数量" json:"pendingPostCount"` + PendingDataCount int `gorm:"column:pending_data_count;comment:待发数据数量" json:"pendingDataCount"` + UpdatedAt time.Time `gorm:"column:updated_at;comment:更新时间" json:"updatedAt"` +} + +// 任务指派记录数量结构体 +type TaskAssignRecords struct { + TaskAssigneeNum string `json:"taskAssigneeNum"` // 任务指派人工号 + ProgressTaskCount int `json:"progressTaskCount"` // 进行中任务数量 + CompleteTaskCount int `json:"completeTaskCount"` // 已完成任务数量 +} + +// ValidArtistInfo 有效艺人信息结构体 +type ValidArtistInfo struct { + UserID int `json:"userId"` // 用户ID + CustomerNum string `json:"customerNum"` // 艺人编号 + UserName string `json:"userName"` // 艺人姓名 + UserPhoneNumber string `json:"userPhoneNumber"` // 艺人手机号 + BundleName string `json:"bundleName"` // 套餐名称 + ExpirationTime string `json:"expirationTime"` // 过期时间 + Status int `json:"status"` // 套餐状态 + OrderUUID string `json:"orderUUID"` // 订单UUID + AccountNumber int `json:"accountNumber"` // 账号数量 + AccountConsumptionNumber int `json:"accountConsumptionNumber"` // 账号消耗数量 + VideoNumber int `json:"videoNumber"` // 视频数量 + VideoConsumptionNumber int `json:"videoConsumptionNumber"` // 视频消耗数量 + ImageNumber int `json:"imageNumber"` // 图片数量 + ImageConsumptionNumber int `json:"imageConsumptionNumber"` // 图片消耗数量 + DataAnalysisNumber int `json:"dataAnalysisNumber"` // 数据分析数量 + DataAnalysisConsumptionNumber int `json:"dataAnalysisConsumptionNumber"` // 数据分析消耗数量 + ExpansionPacksNumber int `json:"expansionPacksNumber"` // 扩展套餐数量 +} + +// ArtistBundleBalanceRequest 查询艺人套餐剩余数量请求参数 +type ArtistBundleBalanceRequest struct { + CustomerNum string `json:"customerNum"` // 艺人编号(推荐使用) + TelNum string `json:"telNum"` // 艺人手机号(备选) +} + +// ArtistBundleBalanceResponse 艺人套餐剩余数量响应结构体 +type ArtistBundleBalanceResponse struct { + RemainingVideoCount int `json:"remainingVideoCount"` // 剩余视频数量 (video_number - video_consumption_number) + RemainingImageCount int `json:"remainingImageCount"` // 剩余图片数量 (image_number - image_consumption_number) + RemainingDataAnalysisCount int `json:"remainingDataAnalysisCount"` // 剩余数据分析数量 (data_analysis_number - data_analysis_consumption_number) +} + +// GetPendingTaskList 查询待指派任务记录 +// 根据套餐没有过期的艺人查询TaskManagement表中的记录,如果不存在则构建默认值 +func GetPendingTaskList(req *TaskQueryRequest, validArtist []ValidArtistInfo) ([]*model.TaskManagement, int64, error) { + // 构建有效艺人ID列表 + var validArtistIDs []string + for _, artist := range validArtist { + if artist.CustomerNum != "" { + validArtistIDs = append(validArtistIDs, artist.CustomerNum) + } + } + + // 如果没有有效艺人,直接返回空结果 + if len(validArtistIDs) == 0 { + return []*model.TaskManagement{}, 0, nil + } + + // 第一步:查询所有有效艺人在数据库中的存在情况(不应用关键词过滤) + var existingTasks []*model.TaskManagement + existQuery := app.ModuleClients.TaskBenchDB.Model(&model.TaskManagement{}).Where("sub_num IN (?)", validArtistIDs) + err := existQuery.Find(&existingTasks).Error + if err != nil { + return nil, 0, commonErr.ReturnError(err, msg.ErrorGetBundleList, "查询现有任务记录失败: ") + } + + // 创建已存在艺人编号的映射 + existingSubNums := make(map[string]bool) + for _, task := range existingTasks { + existingSubNums[task.SubNum] = true + } + + // 创建艺人编号到艺人信息的映射,便于快速查找 + artistMap := make(map[string]ValidArtistInfo) + for _, artist := range validArtist { + artistMap[artist.CustomerNum] = artist + } + + // 为不存在的艺人创建默认记录 + var newTasksToCreate []*model.TaskManagement + for _, subNum := range validArtistIDs { + if !existingSubNums[subNum] { + artist := artistMap[subNum] + // 构建默认任务记录 + defaultTask := &model.TaskManagement{ + SubNum: subNum, + TelNum: artist.UserPhoneNumber, + ArtistName: artist.UserName, + PendingVideoCount: artist.VideoNumber - artist.VideoConsumptionNumber, + PendingPostCount: artist.ImageNumber - artist.ImageConsumptionNumber, + PendingDataCount: artist.DataAnalysisNumber - artist.DataAnalysisConsumptionNumber, + ProgressCount: 0, + CompleteCount: 0, + CreatedAt: time.Now(), + UpdatedAt: time.Now(), + } + newTasksToCreate = append(newTasksToCreate, defaultTask) + } + } + + // 批量创建新的任务记录 + if len(newTasksToCreate) > 0 { + if err := app.ModuleClients.TaskBenchDB.Create(&newTasksToCreate).Error; err != nil { + return nil, 0, commonErr.ReturnError(err, msg.ErrorGetBundleList, "创建默认任务记录失败: ") + } + } + + // 第二步:应用完整的查询条件进行最终查询 + var tasks []*model.TaskManagement + var total int64 + + // 构建最终查询条件 + query := app.ModuleClients.TaskBenchDB.Model(&model.TaskManagement{}) + + // 限制在有效艺人范围内 + query = query.Where("sub_num IN (?)", validArtistIDs) + + // 关键词搜索(艺人姓名、编号、手机号) + if req.Keyword != "" { + query = query.Where("sub_num LIKE ? OR tel_num LIKE ? OR artist_name LIKE ?", + "%"+req.Keyword+"%", "%"+req.Keyword+"%", "%"+req.Keyword+"%") + } + + // 计算总数 + query.Count(&total) + + // 排序 + if req.SortBy != "" && req.SortType != "" { + orderClause := fmt.Sprintf("%s %s", req.SortBy, req.SortType) + query = query.Order(orderClause) + } else { + // 默认按待发视频降序 + query = query.Order("pending_video_count DESC") + } + + // 分页 + if req.PageSize > 0 && req.Page > 0 { + offset := (req.Page - 1) * req.PageSize + query = query.Limit(req.PageSize).Offset(offset) + } + + err = query.Find(&tasks).Error + if err != nil { + return nil, 0, commonErr.ReturnError(err, msg.ErrorGetBundleList, "查询待指派任务记录失败: ") + } + + return tasks, total, nil +} + +// AssignTask 指派某位员工完成某个艺人的任务 +func AssignTask(req *TaskAssignRequest, progressTaskCount int, completeTaskCount int) error { + // 开启事务 + tx := app.ModuleClients.TaskBenchDB.Begin() + defer func() { + if r := recover(); r != nil { + tx.Rollback() + } + }() + + // 1. 查询当前艺人的任务记录 + var taskManagement model.TaskManagement + err := tx.Where("sub_num = ? AND tel_num = ?", req.SubNum, req.TelNum).First(&taskManagement).Error + if err != nil { + if err == gorm.ErrRecordNotFound { + // 如果不存在,创建新记录 + taskManagement = model.TaskManagement{ + SubNum: req.SubNum, + TelNum: req.TelNum, + ArtistName: req.ArtistName, + PendingVideoCount: 0, + PendingPostCount: 0, + PendingDataCount: 0, + CreatedAt: time.Now(), + UpdatedAt: time.Now(), + } + if err = tx.Create(&taskManagement).Error; err != nil { + tx.Rollback() + return commonErr.ReturnError(err, "创建任务记录失败", "创建任务记录失败: ") + } + } else { + tx.Rollback() + return commonErr.ReturnError(err, "查询任务记录失败", "查询任务记录失败: ") + } + } + + // 2. 检查待发数量是否大于0 + if taskManagement.PendingVideoCount <= 0 && taskManagement.PendingPostCount <= 0 && taskManagement.PendingDataCount <= 0 { + tx.Rollback() + return commonErr.ReturnError(nil, "无可指派任务", "当前艺人待发视频数、图文数、数据数均为0,无法指派任务") + } + + // 3. 检查指派数量是否合理(增强验证) + if req.AssignVideoCount < 0 || req.AssignPostCount < 0 || req.AssignDataCount < 0 { + tx.Rollback() + return commonErr.ReturnError(nil, "指派数量不能为负数", "指派数量必须大于等于0") + } + + if req.AssignVideoCount > taskManagement.PendingVideoCount || + req.AssignPostCount > taskManagement.PendingPostCount || + req.AssignDataCount > taskManagement.PendingDataCount { + tx.Rollback() + return commonErr.ReturnError(nil, "指派数量超出限制", + fmt.Sprintf("指派数量不能超过待发数量。当前待发:视频%d,图文%d,数据%d", + taskManagement.PendingVideoCount, taskManagement.PendingPostCount, taskManagement.PendingDataCount)) + } + + if req.AssignVideoCount == 0 && req.AssignPostCount == 0 && req.AssignDataCount == 0 { + tx.Rollback() + return commonErr.ReturnError(nil, "指派数量不能全为0", "至少需要指派一种类型的任务") + } + + // 4. 更新TaskManagement表 + updateData := map[string]interface{}{ + "pending_video_count": taskManagement.PendingVideoCount - req.AssignVideoCount, + "pending_post_count": taskManagement.PendingPostCount - req.AssignPostCount, + "pending_data_count": taskManagement.PendingDataCount - req.AssignDataCount, + "last_task_assignee": req.TaskAssignee, + "task_assignee_num": req.TaskAssigneeNum, + "progress_count": progressTaskCount, + "complete_count": completeTaskCount, + "updated_at": time.Now(), + } + + if err = tx.Model(&taskManagement).Updates(updateData).Error; err != nil { + tx.Rollback() + return commonErr.ReturnError(err, "更新任务记录失败", "更新任务记录失败: ") + } + + // 5. 创建指派记录 + assignRecord := &model.TaskAssignRecords{ + AssignRecordsUUID: uuid.New().String(), // 使用Google UUID + SubNum: req.SubNum, + TelNum: req.TelNum, + ArtistName: req.ArtistName, + Status: 1, // 1:未完成 + ActualStatus: 1, // 1:未完成 + OperatorType: 2, // 2:指派 + Operator: req.Operator, // 当前操作人名字 + OperatorNum: req.OperatorNum, // 当前操作人账号 + OperatorTime: time.Now(), + TaskAssignee: req.TaskAssignee, // 指派员工姓名 + TaskAssigneeNum: req.TaskAssigneeNum, // 指派员工账号 + PendingVideoCount: taskManagement.PendingVideoCount, + PendingPostCount: taskManagement.PendingPostCount, + PendingDataCount: taskManagement.PendingDataCount, + AssignVideoCount: req.AssignVideoCount, + AssignPostCount: req.AssignPostCount, + AssignDataCount: req.AssignDataCount, + CompleteVideoCount: 0, + CompletePostCount: 0, + CompleteDataCount: 0, + CreatedAt: time.Now(), + UpdatedAt: time.Now(), + } + + if err = tx.Create(assignRecord).Error; err != nil { + tx.Rollback() + return commonErr.ReturnError(err, "创建指派记录失败", "创建指派记录失败: ") + } + + // 提交事务 + if err = tx.Commit().Error; err != nil { + return commonErr.ReturnError(err, "提交事务失败", "提交事务失败: ") + } + + return nil +} + +// UpdatePendingCount 修改待发数量 +func UpdatePendingCount(req *UpdatePendingCountRequest) error { + // 开启事务 + tx := app.ModuleClients.TaskBenchDB.Begin() + defer func() { + if r := recover(); r != nil { + tx.Rollback() + } + }() + + // 1. 查询或创建TaskManagement记录 + var taskManagement model.TaskManagement + err := tx.Where("sub_num = ? AND tel_num = ?", req.SubNum, req.TelNum).First(&taskManagement).Error + if err != nil { + if err == gorm.ErrRecordNotFound { + return commonErr.ReturnError(err, "无该艺人任务记录", "无该艺人任务记录") + } else { + tx.Rollback() + return commonErr.ReturnError(err, "查询任务记录失败", "查询任务记录失败: ") + } + } else { + // 更新现有记录 + updateData := map[string]interface{}{ + "pending_video_count": req.PendingVideoCount, + "pending_post_count": req.PendingPostCount, + "pending_data_count": req.PendingDataCount, + "updated_at": time.Now(), + } + if err = tx.Model(&taskManagement).Updates(updateData).Error; err != nil { + tx.Rollback() + return commonErr.ReturnError(err, "更新任务记录失败", "更新任务记录失败: ") + } + } + + // 提交事务 + if err = tx.Commit().Error; err != nil { + return commonErr.ReturnError(err, "提交事务失败", "提交事务失败: ") + } + + return nil +} + +// GetRecentAssignRecords 查询最近被指派记录 +// 查询操作类型为"指派"的最近n条不同员工的记录 +func GetRecentAssignRecords(limit int) ([]*model.TaskAssignRecords, error) { + var records []*model.TaskAssignRecords + + // 查询操作类型为指派(2)的记录,按操作时间倒序,去重员工 + err := app.ModuleClients.TaskBenchDB.Model(&model.TaskAssignRecords{}). + Where("operator_type = ?", 2). // 2:指派 + Group("task_assignee_num"). // 按指派人账号分组去重 + Order("operator_time DESC"). // 按操作时间倒序 + Limit(limit). + Find(&records).Error + + if err != nil { + return nil, commonErr.ReturnError(err, "查询最近指派记录失败", "查询最近指派记录失败: ") + } + + return records, nil +} + +// GetEmployeeAssignedTasks 根据登录人信息查询被指派给该员工的艺人任务 +func GetEmployeeAssignedTasks(req *EmployeeTaskQueryRequest) ([]*model.TaskAssignRecords, int64, error) { + var records []*model.TaskAssignRecords + var total int64 + + // 构建查询条件 + query := app.ModuleClients.TaskBenchDB.Model(&model.TaskAssignRecords{}). + Where("task_assignee_num = ?", req.TaskAssigneeNum) + + // 关键词搜索(艺人姓名、编号、手机号) + if req.Keyword != "" { + query = query.Where("sub_num LIKE ? OR tel_num LIKE ?", + "%"+req.Keyword+"%", "%"+req.Keyword+"%") + } + + // 被指派人姓名 + if req.Operator != "" { + query = query.Where("task_assignee LIKE ?", "%"+req.Operator+"%") + } + + // 指派时间区间 + if req.StartTime != "" { + query = query.Where("operator_time >= ?", req.StartTime) + } + if req.EndTime != "" { + query = query.Where("operator_time <= ?", req.EndTime) + } + + // 完成时间区间 + if req.StartCompleteTime != "" { + query = query.Where("complete_time >= ?", req.StartCompleteTime) + } + if req.EndCompleteTime != "" { + query = query.Where("complete_time <= ?", req.EndCompleteTime) + } + + // 反馈完成状态 + if req.Status != 0 { + query = query.Where("status = ?", req.Status) + } + + // 根据排序字段倒序 + if req.SortBy != "" { + query = query.Order(req.SortBy + " DESC") + } + + // 计算总数 + query.Count(&total) + + // 分页 + if req.PageSize > 0 && req.Page > 0 { + offset := (req.Page - 1) * req.PageSize + query = query.Limit(req.PageSize).Offset(offset) + } + + // 按操作时间倒序 + err := query.Order("operator_time DESC").Find(&records).Error + if err != nil { + return nil, 0, commonErr.ReturnError(err, "查询员工指派任务失败", "查询员工指派任务失败: ") + } + + return records, total, nil +} + +// CompleteTaskManually 员工手动点击完成任务 +func CompleteTaskManually(assignRecordsUUID string) error { + now := time.Now() + updateData := map[string]interface{}{ + "status": 2, // 2:完成 + "complete_time": &now, + "updated_at": now, + } + + err := app.ModuleClients.TaskBenchDB.Model(&model.TaskAssignRecords{}). + Where("assign_records_uuid = ?", assignRecordsUUID). + Updates(updateData).Error + + if err != nil { + return commonErr.ReturnError(err, "更新任务完成状态失败", "更新任务完成状态失败: ") + } + + return nil +} + +// UpdateTaskProgress 员工实际完成任务状态更新 +// 员工调用视频、图文、数据时,对应的待完成数据减一,已完成数据加一 +func UpdateTaskProgress(req *CompleteTaskRequest) error { + // 开启事务 + tx := app.ModuleClients.TaskBenchDB.Begin() + defer func() { + if r := recover(); r != nil { + tx.Rollback() + } + }() + + // 1. 查询指派记录 + var assignRecord model.TaskAssignRecords + var err error + + if req.AssignRecordsUUID != "" { + // 如果提供了UUID,直接根据UUID查询 + err = tx.Where("assign_records_uuid = ?", req.AssignRecordsUUID).First(&assignRecord).Error + if err != nil { + tx.Rollback() + return commonErr.ReturnError(err, "查询指派记录失败", "查询指派记录失败: ") + } + } else { + // 如果没有提供UUID,根据员工信息查询最早的未完成任务 + if req.EmployeeName == "" || req.EmployeeNum == "" { + tx.Rollback() + return commonErr.ReturnError(nil, "参数错误", "员工姓名和手机号不能为空") + } + + err = tx.Where("task_assignee = ? AND task_assignee_num = ? AND actual_status = 1", + req.EmployeeName, req.EmployeeNum). + Order("operator_time ASC"). + First(&assignRecord).Error + + if err != nil { + if err == gorm.ErrRecordNotFound { + tx.Rollback() + return commonErr.ReturnError(nil, "未找到任务记录", "该员工没有未完成的任务记录") + } + tx.Rollback() + return commonErr.ReturnError(err, "查询指派记录失败", "查询指派记录失败: ") + } + } + + // 2. 根据任务类型更新完成数量 + updateData := map[string]interface{}{ + "updated_at": time.Now(), + } + + switch req.TaskType { + case "video": + newCompleteCount := assignRecord.CompleteVideoCount + req.CompleteCount + if newCompleteCount > assignRecord.AssignVideoCount { + tx.Rollback() + return commonErr.ReturnError(nil, "完成数量超出限制", "视频完成数量不能超过指派数量") + } + updateData["complete_video_count"] = newCompleteCount + case "post": + newCompleteCount := assignRecord.CompletePostCount + req.CompleteCount + if newCompleteCount > assignRecord.AssignPostCount { + tx.Rollback() + return commonErr.ReturnError(nil, "完成数量超出限制", "图文完成数量不能超过指派数量") + } + updateData["complete_post_count"] = newCompleteCount + case "data": + newCompleteCount := assignRecord.CompleteDataCount + req.CompleteCount + if newCompleteCount > assignRecord.AssignDataCount { + tx.Rollback() + return commonErr.ReturnError(nil, "完成数量超出限制", "数据完成数量不能超过指派数量") + } + updateData["complete_data_count"] = newCompleteCount + default: + tx.Rollback() + return commonErr.ReturnError(nil, "无效的任务类型", "任务类型必须是video、post或data") + } + + // 3. 更新指派记录 + if err = tx.Model(&assignRecord).Updates(updateData).Error; err != nil { + tx.Rollback() + return commonErr.ReturnError(err, "更新完成数量失败", "更新完成数量失败: ") + } + + // 4. 重新查询更新后的记录,检查是否全部完成 + if err = tx.Where("assign_records_uuid = ?", assignRecord.AssignRecordsUUID).First(&assignRecord).Error; err != nil { + tx.Rollback() + return commonErr.ReturnError(err, "查询更新后记录失败", "查询更新后记录失败: ") + } + + // 5. 检查是否所有任务都已完成 + if assignRecord.CompleteVideoCount == assignRecord.AssignVideoCount && + assignRecord.CompletePostCount == assignRecord.AssignPostCount && + assignRecord.CompleteDataCount == assignRecord.AssignDataCount { + // 更新实际完成状态 + if err = tx.Model(&assignRecord).Update("actual_status", 2).Error; err != nil { + tx.Rollback() + return commonErr.ReturnError(err, "更新实际完成状态失败", "更新实际完成状态失败: ") + } + } + + // 提交事务 + if err = tx.Commit().Error; err != nil { + return commonErr.ReturnError(err, "提交事务失败", "提交事务失败: ") + } + + return nil +} + +// GetTaskManagementBySubNum 根据艺人编号查询任务管理记录 +func GetTaskManagementBySubNum(subNum string) (*model.TaskManagement, error) { + var task model.TaskManagement + err := app.ModuleClients.TaskBenchDB.Where("sub_num = ?", subNum).First(&task).Error + if err != nil { + if err == gorm.ErrRecordNotFound { + return nil, nil // 记录不存在 + } + return nil, commonErr.ReturnError(err, "查询任务管理记录失败", "查询任务管理记录失败: ") + } + return &task, nil +} + +// GetAssignRecordByUUID 根据UUID查询指派记录 +func GetAssignRecordByUUID(uuid string) (*model.TaskAssignRecords, error) { + var record model.TaskAssignRecords + err := app.ModuleClients.TaskBenchDB.Where("assign_records_uuid = ?", uuid).First(&record).Error + if err != nil { + if err == gorm.ErrRecordNotFound { + return nil, nil // 记录不存在 + } + return nil, commonErr.ReturnError(err, "查询指派记录失败", "查询指派记录失败: ") + } + return &record, nil +} + +// GetTaskAssignRecordsList 多条件查询操作记录表 +// 支持通过艺人信息、指派人、操作人、操作时间、完成状态等多条件查询TaskAssignRecords表 +func GetTaskAssignRecordsList(req *TaskAssignRecordsQueryRequest) ([]*model.TaskAssignRecords, int64, error) { + var records []*model.TaskAssignRecords + var total int64 + + // 构建查询条件 + query := app.ModuleClients.TaskBenchDB.Model(&model.TaskAssignRecords{}) + + // 关键词搜索(艺人姓名、编号、手机号) + if req.Keyword != "" { + query = query.Where("sub_num LIKE ? OR tel_num LIKE ? OR artist_name LIKE ?", + "%"+req.Keyword+"%", "%"+req.Keyword+"%", "%"+req.Keyword+"%") + } + + // 指派人姓名 + if req.TaskAssignee != "" { + query = query.Where("task_assignee LIKE ?", "%"+req.TaskAssignee+"%") + } + + // 操作人姓名 + if req.Operator != "" { + query = query.Where("operator LIKE ?", "%"+req.Operator+"%") + } + + // 操作人手机号 + if req.OperatorNum != "" { + query = query.Where("operator_num LIKE ?", "%"+req.OperatorNum+"%") + } + + // 操作时间区间 + if req.StartTime != "" { + query = query.Where("operator_time >= ?", req.StartTime) + } + if req.EndTime != "" { + query = query.Where("operator_time <= ?", req.EndTime) + } + + // 反馈完成状态 + if req.Status != 0 { + query = query.Where("status = ?", req.Status) + } + + // 实际完成状态 + if req.ActualStatus != 0 { + query = query.Where("actual_status = ?", req.ActualStatus) + } + + // 计算总数 + query.Count(&total) + + // 分页 + if req.PageSize > 0 && req.Page > 0 { + offset := (req.Page - 1) * req.PageSize + query = query.Limit(req.PageSize).Offset(offset) + } + + // 按更新时间倒序排序 + err := query.Order("updated_at DESC").Find(&records).Error + if err != nil { + return nil, 0, commonErr.ReturnError(err, "查询操作记录失败", "查询操作记录失败: ") + } + + return records, total, nil +} + +// GetValidArtistList 查询套餐状态为有效中的艺人数据列表 +// 根据BundleOrderRecords表查询过期时间大于当前时间且状态为已支付的艺人详细信息 +func GetValidArtistList() ([]ValidArtistInfo, error) { + // 构建子查询,获取每个用户的最新订单记录 + subQuery := app.ModuleClients.BundleDB.Table("bundle_order_records as bor1"). + Select("bor1.*"). + Joins(`INNER JOIN ( + SELECT customer_id, MAX(created_at) AS max_created_time + FROM bundle_order_records + GROUP BY customer_id + ) bor2 ON bor1.customer_id = bor2.customer_id AND bor1.created_at = bor2.max_created_time`) + + // 主查询,关联用户表和实名信息表 + session := app.ModuleClients.BundleDB.Table("`micro-account`.`user` AS u"). + Select(`u.id as user_id, bor.customer_num, rn.name as user_name, + u.tel_num as user_phone_number, bor.bundle_name, bor.expiration_time, + bor.status, bor.uuid as order_uuid, bb.account_number, bb.account_consumption_number, + bb.video_number, bb.video_consumption_number, bb.image_number, bb.image_consumption_number, + bb.data_analysis_number, bb.data_analysis_consumption_number, bb.expansion_packs_number`). + Joins("LEFT JOIN `micro-account`.real_name rn ON u.real_name_id = rn.id"). + Joins("LEFT JOIN (?) as bor ON bor.customer_id = u.id", subQuery). + Joins("LEFT JOIN bundle_balance bb ON u.id = bb.user_id AND bb.order_uuid = bor.uuid"). + Where("rn.name IS NOT NULL"). + Where("u.deleted_at = 0"). + Where("bor.expiration_time > ?", time.Now().Format("2006-01-02 15:04:05")). + Where("bor.status = ?", 2). // 2:已签已支付 + Order("bor.expiration_time desc") + + var data []ValidArtistInfo + err := session.Find(&data).Error + if err != nil { + return nil, commonErr.ReturnError(err, "查询有效艺人失败", "查询有效艺人失败: ") + } + + return data, nil +} + +// 根据员工的工号从指派任务记录表中查询这名员工,进行中任务数量和已经完成的任务数量 +func GetTaskAssigneeInfo(taskAssigneeNum string) (int, int, error) { + // 如果taskAssigneeNum为空,直接返回默认值 + if taskAssigneeNum == "" { + return 0, 0, nil + } + + var taskAssignRecords TaskAssignRecords + err := app.ModuleClients.TaskBenchDB.Table("task_assign_records"). + Select("task_assignee_num, count(*) as progress_task_count, sum(status = 2) as complete_task_count"). + Where("task_assignee_num = ?", taskAssigneeNum). + Group("task_assignee_num"). + First(&taskAssignRecords).Error + + // 如果查询不到记录,返回默认值而不是错误 + if err != nil { + if err == gorm.ErrRecordNotFound { + return 0, 0, nil + } + return 0, 0, commonErr.ReturnError(err, "查询任务指派记录失败", "查询任务指派记录失败: ") + } + return taskAssignRecords.ProgressTaskCount, taskAssignRecords.CompleteTaskCount, nil +} + +// 更新被指派员工为 taskAssigneeNum 的记录中的ProgressCount + 1 和CompleteCount - 1 +func UpdateTaskRecordsByAssigneeNum(taskAssigneeNum string) error { + err := app.ModuleClients.TaskBenchDB.Table("task_management"). + Where("task_assignee_num = ?", taskAssigneeNum). + Update("progress_count", gorm.Expr("progress_count + ?", 1)). + Update("complete_count", gorm.Expr("complete_count - ?", 1)).Error + if err != nil { + return commonErr.ReturnError(err, "更新员工任务进度失败", "更新员工任务进度失败: ") + } + return nil +} + +// GetArtistBundleBalance 根据艺人编号或手机号查询套餐剩余数量 +// 优先使用艺人编号查询,如果为空则使用手机号查询 +func GetArtistBundleBalance(req *ArtistBundleBalanceRequest) (*ArtistBundleBalanceResponse, error) { + // 构建子查询,获取用户的最新订单记录 + subQuery := app.ModuleClients.BundleDB.Table("bundle_order_records as bor1"). + Select("bor1.*"). + Joins(`INNER JOIN ( + SELECT customer_id, MAX(created_at) AS max_created_time + FROM bundle_order_records + GROUP BY customer_id + ) bor2 ON bor1.customer_id = bor2.customer_id AND bor1.created_at = bor2.max_created_time`) + + // 主查询,关联用户表和实名信息表 + session := app.ModuleClients.BundleDB.Table("`micro-account`.`user` AS u"). + Select(`u.id, bor.customer_num, rn.name as user_name, + u.tel_num as user_phone_number, bor.bundle_name, bor.expiration_time, + bor.status, bor.uuid as order_uuid, bb.account_number, bb.account_consumption_number, + bb.video_number, bb.video_consumption_number, bb.image_number, bb.image_consumption_number, + bb.data_analysis_number, bb.data_analysis_consumption_number, bb.expansion_packs_number`). + Joins("LEFT JOIN `micro-account`.real_name rn ON u.real_name_id = rn.id"). + Joins("LEFT JOIN (?) as bor ON bor.customer_id = u.id", subQuery). + Joins("LEFT JOIN bundle_balance bb ON u.id = bb.user_id AND bb.order_uuid = bor.uuid"). + Where("rn.name IS NOT NULL"). + Where("u.deleted_at = 0"). + Where("bor.expiration_time > ?", time.Now().Format("2006-01-02 15:04:05")). + Where("bor.status = ?", 2) // 2:已签已支付 + + // 根据查询条件添加WHERE子句 + if req.CustomerNum != "" { + session = session.Where("bor.customer_num = ?", req.CustomerNum) + } else if req.TelNum != "" { + session = session.Where("u.tel_num = ?", req.TelNum) + } else { + return nil, commonErr.ReturnError(nil, "查询参数错误", "艺人编号和手机号不能同时为空") + } + + var data ValidArtistInfo + err := session.Take(&data).Error // 使用Take()替代First(),避免自动排序 + if err != nil { + if err == gorm.ErrRecordNotFound { + return nil, commonErr.ReturnError(err, "艺人不存在或套餐已过期", "未找到有效的艺人套餐信息") + } + return nil, commonErr.ReturnError(err, "查询艺人套餐信息失败", "查询艺人套餐信息失败: ") + } + + // 计算剩余数量 + response := &ArtistBundleBalanceResponse{ + RemainingVideoCount: data.VideoNumber - data.VideoConsumptionNumber, + RemainingImageCount: data.ImageNumber - data.ImageConsumptionNumber, + RemainingDataAnalysisCount: data.DataAnalysisNumber - data.DataAnalysisConsumptionNumber, + } + + return response, nil +} + +// AdjustPendingCountRequest 调整待发数量请求参数 +type AdjustPendingCountRequest struct { + SubNum string `json:"subNum"` // 艺人编号 + TelNum string `json:"telNum"` // 艺人手机号 + ArtistName string `json:"artistName"` // 艺人姓名 + AdjustVideoCount int `json:"adjustVideoCount"` // 调整视频数量(正数为增加,负数为减少) + AdjustPostCount int `json:"adjustPostCount"` // 调整图文数量(正数为增加,负数为减少) + AdjustDataCount int `json:"adjustDataCount"` // 调整数据数量(正数为增加,负数为减少) + CreateIfNotExists bool `json:"createIfNotExists"` // 如果记录不存在是否创建 +} + +// AdjustPendingCount 调整待发数量(增加或减少) +// 支持正数增加和负数减少,可用于套餐扩展时同步增加待发任务数量 +func AdjustPendingCount(req *AdjustPendingCountRequest) error { + // 开启事务 + tx := app.ModuleClients.TaskBenchDB.Begin() + defer func() { + if r := recover(); r != nil { + tx.Rollback() + } + }() + + // 1. 查询现有任务记录 + var taskManagement model.TaskManagement + err := tx.Where("sub_num = ? AND tel_num = ?", req.SubNum, req.TelNum).First(&taskManagement).Error + if err != nil { + if err == gorm.ErrRecordNotFound { + if req.CreateIfNotExists { + // 创建新记录 + taskManagement = model.TaskManagement{ + SubNum: req.SubNum, + TelNum: req.TelNum, + ArtistName: req.ArtistName, + PendingVideoCount: req.AdjustVideoCount, + PendingPostCount: req.AdjustPostCount, + PendingDataCount: req.AdjustDataCount, + ProgressCount: 0, + CompleteCount: 0, + CreatedAt: time.Now(), + UpdatedAt: time.Now(), + } + // 确保数量不为负数 + if taskManagement.PendingVideoCount < 0 { + taskManagement.PendingVideoCount = 0 + } + if taskManagement.PendingPostCount < 0 { + taskManagement.PendingPostCount = 0 + } + if taskManagement.PendingDataCount < 0 { + taskManagement.PendingDataCount = 0 + } + if err = tx.Create(&taskManagement).Error; err != nil { + tx.Rollback() + return commonErr.ReturnError(err, "创建任务记录失败", "创建任务记录失败: ") + } + } else { + tx.Rollback() + return commonErr.ReturnError(err, "任务记录不存在", "找不到对应的任务记录") + } + } else { + tx.Rollback() + return commonErr.ReturnError(err, "查询任务记录失败", "查询任务记录失败: ") + } + } else { + // 2. 计算调整后的数量 + newVideoCount := taskManagement.PendingVideoCount + req.AdjustVideoCount + newPostCount := taskManagement.PendingPostCount + req.AdjustPostCount + newDataCount := taskManagement.PendingDataCount + req.AdjustDataCount + + // 3. 确保调整后的数量不为负数 + if newVideoCount < 0 { + newVideoCount = 0 + } + if newPostCount < 0 { + newPostCount = 0 + } + if newDataCount < 0 { + newDataCount = 0 + } + + // 4. 更新TaskManagement表 + updateData := map[string]interface{}{ + "pending_video_count": newVideoCount, + "pending_post_count": newPostCount, + "pending_data_count": newDataCount, + "updated_at": time.Now(), + } + + if err = tx.Model(&taskManagement).Updates(updateData).Error; err != nil { + tx.Rollback() + return commonErr.ReturnError(err, "更新任务记录失败", "更新任务记录失败: ") + } + } + + // 提交事务 + if err = tx.Commit().Error; err != nil { + return commonErr.ReturnError(err, "提交事务失败", "提交事务失败: ") + } + + return nil +} diff --git a/internal/logic/taskLogic.go b/internal/logic/taskLogic.go new file mode 100644 index 0000000..1773251 --- /dev/null +++ b/internal/logic/taskLogic.go @@ -0,0 +1,314 @@ +package logic + +import ( + "micro-bundle/internal/dao" + commonErr "micro-bundle/pkg/err" +) + +// GetValidArtistList 查询套餐状态为有效中的艺人列表 +// 调用dao层获取艺人详细信息 +func GetValidArtistList() ([]dao.ValidArtistInfo, error) { + return dao.GetValidArtistList() +} + +// GetValidArtistIDs 查询套餐没有过期的艺人ID列表(保持向后兼容) +// 根据BundleOrderRecords表查询过期时间大于当前时间且状态为已支付的艺人 +func GetValidArtistIDs() ([]string, error) { + artistList, err := GetValidArtistList() + if err != nil { + return nil, err + } + + var artistIDs []string + for _, artist := range artistList { + if artist.CustomerNum != "" { + artistIDs = append(artistIDs, artist.CustomerNum) + } + } + + return artistIDs, nil +} + +// todo 目前暂时不做检验,后续需要做判断 +// GetValidEmployeeIDs 查询可以被指派任务的员工ID列表 +// 这里可以根据实际业务需求实现,比如查询员工表、权限表等 +// 目前先返回一个示例实现,实际项目中需要根据具体的员工管理逻辑来实现 +func GetValidEmployeeIDs() ([]string, error) { + var employeeIDs []string + + return employeeIDs, nil +} + +// ValidateEmployee 验证员工是否可以被指派任务 +func ValidateEmployee(employeeNum string) (bool, error) { + validEmployees, err := GetValidEmployeeIDs() + if err != nil { + return false, err + } + + // 如果没有限制(返回空列表),则认为所有员工都可以被指派 + if len(validEmployees) == 0 { + return true, nil + } + + for _, validEmp := range validEmployees { + if validEmp == employeeNum { + return true, nil + } + } + + return false, nil +} + +// GetPendingTaskList 查询待指派任务记录 +func GetPendingTaskList(req *dao.TaskQueryRequest) ([]*dao.TaskQueryResponse, int64, error) { + // 1. 先查询套餐没有过期的艺人 + validArtist, err := GetValidArtistList() + if err != nil { + return nil, 0, err + } + + // 2. 调用DAO层查询待指派任务记录 + record, total, err := dao.GetPendingTaskList(req, validArtist) + if err != nil { + return nil, 0, err + } + + // 3. 转换为响应结构体 + var recordResponse []*dao.TaskQueryResponse + for _, record := range record { + // 根据 SubNum 和 TelNum 查询对应的员工正在进行中的任务和已完成任务数量 + progressTaskCount, completeTaskCount, err := dao.GetTaskAssigneeInfo(record.TaskAssigneeNum) + if err != nil { + recordResponse = append(recordResponse, &dao.TaskQueryResponse{ + SubNum: record.SubNum, + TelNum: record.TelNum, + ArtistName: record.ArtistName, + TaskAssigneeNum: record.TaskAssigneeNum, + PendingPostCount: record.PendingPostCount, + PendingVideoCount: record.PendingVideoCount, + PendingDataCount: record.PendingDataCount, + ProgressTaskCount: 0, + CompleteTaskCount: 0, + LastTaskAssignee: record.LastTaskAssignee, + }) + } else { + recordResponse = append(recordResponse, &dao.TaskQueryResponse{ + SubNum: record.SubNum, + TelNum: record.TelNum, + ArtistName: record.ArtistName, + TaskAssigneeNum: record.TaskAssigneeNum, + PendingPostCount: record.PendingPostCount, + PendingVideoCount: record.PendingVideoCount, + PendingDataCount: record.PendingDataCount, + ProgressTaskCount: progressTaskCount, + CompleteTaskCount: completeTaskCount, + LastTaskAssignee: record.LastTaskAssignee, + }) + } + } + + return recordResponse, total, nil +} + +// AssignTask 指派某位员工完成某个艺人的任务 +func AssignTask(req *dao.TaskAssignRequest) error { + // 1. 验证员工是否可以被指派任务 + isValid, err := ValidateEmployee(req.TaskAssigneeNum) + if err != nil { + return err + } + if !isValid { + return commonErr.ReturnError(nil, "员工不能被指派任务", "该员工不在可指派任务的员工列表中") + } + + progressTaskCount, completeTaskCount, err := dao.GetTaskAssigneeInfo(req.TaskAssigneeNum) + if err != nil { + // 查询不到的话,给一个默认值 + progressTaskCount, completeTaskCount = 1, 0 + } + + // 2. 调用DAO层执行指派任务 + // 待完成任务数量需要+1,因为这个任务暂时还没有指派,所以+1 + return dao.AssignTask(req, progressTaskCount+1, completeTaskCount) +} + +// UpdatePendingCount 修改待发数量 +func UpdatePendingCount(req *dao.UpdatePendingCountRequest) error { + // 1. 验证艺人是否有有效套餐 + validArtistIDs, err := GetValidArtistIDs() + if err != nil { + return err + } + + // 检查艺人是否在有效列表中 + isValidArtist := false + for _, artistID := range validArtistIDs { + if artistID == req.SubNum { + isValidArtist = true + break + } + } + + if !isValidArtist { + return commonErr.ReturnError(nil, "艺人套餐已过期", "该艺人没有有效的套餐,无法修改待发数量") + } + + // todo 需要调用套餐的接口,判断艺人是否有那么数量可以修改 + + // 2. 调用DAO层更新待发数量 + return dao.UpdatePendingCount(req) +} + +// GetRecentAssignRecords 查询最近被指派记录 +func GetRecentAssignRecords(limit int) ([]string, error) { + records, err := dao.GetRecentAssignRecords(limit) + if err != nil { + return nil, err + } + + var recordOperator []string + for _, record := range records { + recordOperator = append(recordOperator, record.TaskAssignee) + } + return recordOperator, nil +} + +// GetEmployeeAssignedTasks 根据登录人信息查询被指派给该员工的艺人任务 +func GetEmployeeAssignedTasks(req *dao.EmployeeTaskQueryRequest) ([]*dao.TaskAssignRecordsResponse, int64, error) { + // 1. 调用DAO层查询被指派给该员工的艺人任务 + record, total, err := dao.GetEmployeeAssignedTasks(req) + if err != nil { + return nil, 0, err + } + + // 2. 转换为响应结构体 + var recordResponse []*dao.TaskAssignRecordsResponse + for _, record := range record { + recordResponse = append(recordResponse, &dao.TaskAssignRecordsResponse{ + AssignRecordsUUID: record.AssignRecordsUUID, + SubNum: record.SubNum, + TelNum: record.TelNum, + ArtistName: record.ArtistName, + Status: record.Status, + ActualStatus: record.ActualStatus, + CompleteTime: record.CompleteTime, + OperatorType: record.OperatorType, + Operator: record.Operator, + OperatorNum: record.OperatorNum, + OperatorTime: record.OperatorTime, + TaskAssignee: record.TaskAssignee, + TaskAssigneeNum: record.TaskAssigneeNum, + PendingVideoCount: record.PendingVideoCount, + PendingPostCount: record.PendingPostCount, + PendingDataCount: record.PendingDataCount, + // todo: 将更新时间转换成人类可读的格式 + UpdatedAt: record.UpdatedAt, + }) + } + + return recordResponse, total, nil +} + +// CompleteTaskManually 员工手动点击完成任务 +func CompleteTaskManually(assignRecordsUUID string, taskAssigneeNum string) error { + // 第一步,批量更新记录被指派的员工为taskAssigneeNum的待完成任务数量和已经完成任务的数量 + err := dao.UpdateTaskRecordsByAssigneeNum(taskAssigneeNum) + if err != nil { + return err + } + return dao.CompleteTaskManually(assignRecordsUUID) +} + +// UpdateTaskProgress 员工实际完成任务状态更新 +func UpdateTaskProgress(req *dao.CompleteTaskRequest) error { + return dao.UpdateTaskProgress(req) +} + +// // GetArtistBundleInfo 获取艺人套餐信息(用于判断套餐多媒体数量) +// func GetArtistBundleInfo(customerNum string) ([]*model.BundleOrderRecords, error) { +// var orderRecords []*model.BundleOrderRecords +// currentTime := time.Now().Format("2006-01-02 15:04:05") + +// // 查询该艺人的有效套餐订单 +// err := app.ModuleClients.BundleDB.Model(&model.BundleOrderRecords{}). +// Where("customer_num = ? AND expiration_time > ? AND status = ?", +// customerNum, currentTime, 2). // 2:已签已支付 +// Preload("BundleOrderValueAdd"). +// Find(&orderRecords).Error + +// if err != nil { +// return nil, commonErr.ReturnError(err, "查询艺人套餐信息失败", "查询艺人套餐信息失败: ") +// } + +// return orderRecords, nil +// } + +// // CalculateArtistPendingCounts 计算艺人的待发数量 +// // 根据套餐信息计算艺人可以额外多发的多媒体内容数量 +// func CalculateArtistPendingCounts(customerNum string) (videoCount, postCount, dataCount int, err error) { +// // 获取艺人套餐信息 +// orderRecords, err := GetArtistBundleInfo(customerNum) +// if err != nil { +// return 0, 0, 0, err +// } + +// // 计算总的可用数量 +// for _, record := range orderRecords { +// // 从套餐基础数量计算 +// videoCount += int(record.Num) // 假设Num字段表示视频数量 + +// // 从增值服务计算 +// for _, valueAdd := range record.BundleOrderValueAdd { +// switch valueAdd.ServiceType { +// case 1: // 视频 +// videoCount += int(valueAdd.Num) +// case 2: // 图文 +// postCount += int(valueAdd.Num) +// case 3: // 数据报表 +// dataCount += int(valueAdd.Num) +// } +// } +// } + +// return videoCount, postCount, dataCount, nil +// } + +// GetTaskAssignRecordsList 多条件查询操作记录表 +func GetTaskAssignRecordsList(req *dao.TaskAssignRecordsQueryRequest) ([]*dao.TaskAssignRecordsResponse, int64, error) { + record, total, err := dao.GetTaskAssignRecordsList(req) + if err != nil { + return nil, 0, err + } + + // 2. 转换为响应结构体 + var recordResponse []*dao.TaskAssignRecordsResponse + for _, record := range record { + recordResponse = append(recordResponse, &dao.TaskAssignRecordsResponse{ + AssignRecordsUUID: record.AssignRecordsUUID, + SubNum: record.SubNum, + TelNum: record.TelNum, + ArtistName: record.ArtistName, + Status: record.Status, + ActualStatus: record.ActualStatus, + CompleteTime: record.CompleteTime, + OperatorType: record.OperatorType, + Operator: record.Operator, + OperatorNum: record.OperatorNum, + OperatorTime: record.OperatorTime, + TaskAssignee: record.TaskAssignee, + TaskAssigneeNum: record.TaskAssigneeNum, + PendingVideoCount: record.PendingVideoCount, + PendingPostCount: record.PendingPostCount, + PendingDataCount: record.PendingDataCount, + UpdatedAt: record.UpdatedAt, + }) + } + + return recordResponse, total, nil +} + +// GetArtistBundleBalance 查询艺人套餐剩余数量 +func GetArtistBundleBalance(req *dao.ArtistBundleBalanceRequest) (*dao.ArtistBundleBalanceResponse, error) { + return dao.GetArtistBundleBalance(req) +} diff --git a/internal/model/task.go b/internal/model/task.go new file mode 100644 index 0000000..0e17ae7 --- /dev/null +++ b/internal/model/task.go @@ -0,0 +1,62 @@ +package model + +import ( + "time" + + "gorm.io/plugin/soft_delete" +) + +type TaskManagement struct { + ID int64 `gorm:"primarykey"` + SubNum string `gorm:"column:sub_num;comment:用户编号;index:idx_sub_num;index:idx_sub_tel,priority:1" json:"subNum"` + TelNum string `gorm:"column:tel_num;comment:手机号;index:idx_tel_num;index:idx_sub_tel,priority:2" json:"telNum"` + ArtistName string `gorm:"column:artist_name;comment:艺人名称;index:idx_artist_name" json:"artistName"` + PendingVideoCount int `gorm:"column:pending_video_count;comment:待发视频数量;index:idx_pending_video" json:"pendingVideoCount"` + PendingPostCount int `gorm:"column:pending_post_count;comment:待发图文数量" json:"pendingPostCount"` + PendingDataCount int `gorm:"column:pending_data_count;comment:待发数据数量" json:"pendingDataCount"` + LastTaskAssignee string `gorm:"column:last_task_assignee;comment:最后一次的任务指派人" json:"lastTaskAssignee"` + TaskAssigneeNum string `gorm:"column:task_assignee_num;comment:任务指派人账号" json:"taskAssigneeNum"` + ProgressCount int `gorm:"column:progress_count;comment:进行中的任务数量" json:"progressCount"` + CompleteCount int `gorm:"column:complete_count;comment:已完成的任务数量" json:"completeCount"` + CreatedAt time.Time `gorm:"column:created_at;comment:创建时间" json:"createdAt"` + UpdatedAt time.Time `gorm:"column:updated_at;comment:更新时间" json:"updatedAt"` + DeletedAt soft_delete.DeletedAt `gorm:"column:deleted_at;type:int(11);index:idx_deleted_at" json:"deletedAt"` +} + +func (t *TaskManagement) TableName() string { + return "task_management" +} + +// 指派记录表 +type TaskAssignRecords struct { + ID int64 `gorm:"primarykey"` + AssignRecordsUUID string `gorm:"column:assign_records_uuid;comment:指派记录UUID;uniqueIndex:idx_assign_uuid" json:"assignRecordsUUID"` + SubNum string `gorm:"column:sub_num;comment:艺人编号;index:idx_assign_sub_num;index:idx_assign_sub_tel,priority:1" json:"subNum"` + TelNum string `gorm:"column:tel_num;comment:艺人手机号;index:idx_assign_tel_num;index:idx_assign_sub_tel,priority:2" json:"telNum"` + ArtistName string `gorm:"column:artist_name;comment:艺人名称;index:idx_assign_artist_name" json:"artistName"` + Status int `gorm:"column:status;comment:反馈完成状态 1:未完成 2:完成;index:idx_status;index:idx_status_assignee,priority:1" json:"status"` + ActualStatus int `gorm:"column:actual_status;comment:实际完成状态 1:未完成 2:完成;index:idx_actual_status;index:idx_actual_assignee,priority:1" json:"actualStatus"` + CompleteTime *time.Time `gorm:"column:complete_time;comment:反馈完成时间;index:idx_complete_time" json:"completeTime"` + OperatorType int `gorm:"column:operator_type;comment:操作类型 1:修改待发数量 2:指派;index:idx_operator_type;index:idx_operator_type_time,priority:1" json:"operatorType"` + Operator string `gorm:"column:operator;comment:操作人;index:idx_operator" json:"operator"` + OperatorNum string `gorm:"column:operator_num;comment:操作人账号;index:idx_operator_num" json:"operatorNum"` + OperatorTime time.Time `gorm:"column:operator_time;comment:操作时间;index:idx_operator_time;index:idx_operator_type_time,priority:2" json:"operatorTime"` + TaskAssignee string `gorm:"column:task_assignee;comment:任务指派人;index:idx_task_assignee;index:idx_status_assignee,priority:2;index:idx_actual_assignee,priority:2" json:"taskAssignee"` + TaskAssigneeNum string `gorm:"column:task_assignee_num;comment:任务指派人账号;index:idx_task_assignee_num" json:"taskAssigneeNum"` + PendingVideoCount int `gorm:"column:pending_video_count;comment:待发视频数量" json:"pendingVideoCount"` + PendingPostCount int `gorm:"column:pending_post_count;comment:待发图文数量" json:"pendingPostCount"` + PendingDataCount int `gorm:"column:pending_data_count;comment:待发数据数量" json:"pendingDataCount"` + AssignVideoCount int `gorm:"column:assign_video_count;comment:指派待发视频数" json:"assignVideoCount"` + AssignPostCount int `gorm:"column:assign_post_count;comment:指派待发图文数" json:"assignPostCount"` + AssignDataCount int `gorm:"column:assign_data_count;comment:指派待发数据数" json:"assignDataCount"` + CompleteVideoCount int `gorm:"column:complete_video_count;comment:已完成视频数" json:"completeVideoCount"` + CompletePostCount int `gorm:"column:complete_post_count;comment:已完成图文数" json:"completePostCount"` + CompleteDataCount int `gorm:"column:complete_data_count;comment:已完成数据数" json:"completeDataCount"` + CreatedAt time.Time `gorm:"column:created_at;comment:创建时间" json:"createdAt"` + UpdatedAt time.Time `gorm:"column:updated_at;comment:更新时间;index:idx_updated_at" json:"updatedAt"` + DeletedAt soft_delete.DeletedAt `gorm:"column:deleted_at;type:int(11);index:idx_assign_deleted_at" json:"deletedAt"` +} + +func (t *TaskAssignRecords) TableName() string { + return "task_assign_records" +} diff --git a/pb/bundle.proto b/pb/bundle.proto index a4ea133..4db7f1f 100644 --- a/pb/bundle.proto +++ b/pb/bundle.proto @@ -78,6 +78,17 @@ service Bundle { // 查出没处理的数据 rpc ListUnfinishedInfos(AutoCreateUserAndOrderRequest) returns (UnfinishedInfos) {} // 查出没处理的数据 rpc SoftDeleteUnfinishedInfo(SoftDeleteUnfinishedInfoRequest) returns (CommonResponse) {} // 软删除 + + // 任务台 + rpc GetPendingTaskList(TaskQueryRequest) returns (TaskQueryResponse) {} // 查询待指派任务记录 + rpc AssignTask(TaskAssignRequest) returns (CommonResponse) {} // 指派某位员工完成某个艺人的任务 + rpc UpdatePendingCount(UpdatePendingCountRequest) returns (CommonResponse) {} // 修改待发数量 + rpc GetRecentAssignRecords(RecentAssignRecordsRequest) returns (RecentAssignRecordsResponse) {} // 查询最近被指派记录 + rpc GetEmployeeAssignedTasks(EmployeeTaskQueryRequest) returns (EmployeeTaskQueryResponse) {} // 根据登录人信息查询被指派给该员工的任务 + rpc CompleteTaskManually(CompleteTaskManuallyRequest) returns (CommonResponse) {} // 员工手动点击完成任务 + rpc UpdateTaskProgress(UpdateTaskProgressRequest) returns (CommonResponse) {} // 员工实际完成任务状态更新 + rpc GetTaskAssignRecordsList(TaskAssignRecordsQueryRequest) returns (TaskAssignRecordsQueryResponse) {} // 多条件查询操作记录表 + rpc GetArtistBundleBalance(ArtistBundleBalanceRequest) returns (ArtistBundleBalanceResponse) {} // 查询艺人套餐剩余数量 } message DeleteValueAddServiceRequest{ string orderNo = 1; @@ -876,3 +887,162 @@ message UnfinishedInfo { message SoftDeleteUnfinishedInfoRequest { uint32 ID = 1; } + + +// 任务管理台相关消息定义 + +// 查询待指派任务记录 +message TaskQueryRequest { + string keyword = 1 [json_name = "keyword"]; // 艺人姓名、编号、手机号搜索关键词 + int32 page = 2 [json_name = "page"]; // 页码 + int32 pageSize = 3 [json_name = "pageSize"]; // 每页数量 + string sortBy = 4 [json_name = "sortBy"]; // 排序字段 + string sortType = 5 [json_name = "sortType"]; // 排序类型 asc/desc +} + +message TaskQueryResponse { + repeated TaskManagementInfo tasks = 1 [json_name = "tasks"]; + int64 total = 2 [json_name = "total"]; + int32 page = 3 [json_name = "page"]; + int32 pageSize = 4 [json_name = "pageSize"]; +} + +message TaskManagementInfo { + string subNum = 1 [json_name = "subNum"]; // 艺人编号 + string telNum = 2 [json_name = "telNum"]; // 手机号 + string artistName = 3 [json_name = "artistName"]; // 艺人姓名 + int32 pendingVideoCount = 4 [json_name = "pendingVideoCount"]; // 待发视频数量 + int32 pendingPostCount = 5 [json_name = "pendingPostCount"]; // 待发图文数量 + int32 pendingDataCount = 6 [json_name = "pendingDataCount"]; // 待发数据数量 + int32 progressTaskCount = 7 [json_name = "progressTaskCount"]; // 进行中任务数量 + int32 completeTaskCount = 8 [json_name = "completeTaskCount"]; // 已完成任务数量 + string lastTaskAssignee = 9 [json_name = "lastTaskAssignee"]; // 最后一次任务指派人 + string taskAssigneeNum = 10 [json_name = "taskAssigneeNum"]; // 任务指派人账号 +} + +// 指派任务 +message TaskAssignRequest { + string subNum = 1 [json_name = "subNum"]; // 艺人编号 + string telNum = 2 [json_name = "telNum"]; // 艺人手机号 + string artistName = 3 [json_name = "artistName"]; // 艺人姓名 + string taskAssignee = 4 [json_name = "taskAssignee"]; // 任务指派人 + string taskAssigneeNum = 5 [json_name = "taskAssigneeNum"]; // 任务指派人账号 + string operator = 6 [json_name = "operator"]; // 操作人 + string operatorNum = 7 [json_name = "operatorNum"]; // 操作人账号 + int32 assignVideoCount = 8 [json_name = "assignVideoCount"]; // 指派视频数 + int32 assignPostCount = 9 [json_name = "assignPostCount"]; // 指派图文数 + int32 assignDataCount = 10 [json_name = "assignDataCount"]; // 指派数据数 +} + +// 修改待发数量 +message UpdatePendingCountRequest { + string subNum = 1 [json_name = "subNum"]; // 艺人编号 + string telNum = 2 [json_name = "telNum"]; // 艺人手机号 + string artistName = 3 [json_name = "artistName"]; // 艺人姓名 + int32 pendingVideoCount = 4 [json_name = "pendingVideoCount"]; // 待发视频数量 + int32 pendingPostCount = 5 [json_name = "pendingPostCount"]; // 待发图文数量 + int32 pendingDataCount = 6 [json_name = "pendingDataCount"]; // 待发数据数量 + string operator = 7 [json_name = "operator"]; // 操作人 + string operatorNum = 8 [json_name = "operatorNum"]; // 操作人账号 +} + +// 查询最近被指派记录 +message RecentAssignRecordsRequest { + int32 limit = 1 [json_name = "limit"]; // 查询数量限制 +} + +message RecentAssignRecordsResponse { + repeated string operatorList = 1 [json_name = "operatorList"]; +} + +// 员工任务查询 +message EmployeeTaskQueryRequest { + string taskAssigneeNum = 1 [json_name = "taskAssigneeNum"]; // 被指派人账号 + string keyword = 2 [json_name = "keyword"]; // 艺人姓名、编号、手机号搜索关键词 + string operator = 3 [json_name = "operator"]; // 操作人 + string sortBy = 4 [json_name = "sortBy"]; // 排序字段 + string startTime = 5 [json_name = "startTime"]; // 指派开始时间 + string endTime = 6 [json_name = "endTime"]; // 指派结束时间 + string startCompleteTime = 7 [json_name = "startCompleteTime"]; // 开始完成时间 + string endCompleteTime = 8 [json_name = "endCompleteTime"]; // 结束完成时间 + int32 status = 9 [json_name = "status"]; // 反馈完成状态 + int32 page = 10 [json_name = "page"]; // 页码 + int32 pageSize = 11 [json_name = "pageSize"]; // 每页数量 +} + +message EmployeeTaskQueryResponse { + repeated TaskAssignRecordInfo records = 1 [json_name = "records"]; + int64 total = 2 [json_name = "total"]; + int32 page = 3 [json_name = "page"]; + int32 pageSize = 4 [json_name = "pageSize"]; +} + +// 任务指派记录信息 +message TaskAssignRecordInfo { + string assignRecordsUUID = 1 [json_name = "assignRecordsUUID"]; // 指派记录UUID + string subNum = 2 [json_name = "subNum"]; // 艺人编号 + string telNum = 3 [json_name = "telNum"]; // 艺人手机号 + string artistName = 4 [json_name = "artistName"]; // 艺人姓名 + int32 status = 5 [json_name = "status"]; // 反馈完成状态 + int32 actualStatus = 6 [json_name = "actualStatus"]; // 实际完成状态 + string completeTime = 7 [json_name = "completeTime"]; // 反馈完成时间 + int32 operatorType = 8 [json_name = "operatorType"]; // 操作类型 + string operator = 9 [json_name = "operator"]; // 操作人 + string operatorNum = 10 [json_name = "operatorNum"]; // 操作人账号 + string operatorTime = 11 [json_name = "operatorTime"]; // 操作时间 + string taskAssignee = 12 [json_name = "taskAssignee"]; // 任务指派人 + string taskAssigneeNum = 13 [json_name = "taskAssigneeNum"]; // 任务指派人账号 + int32 pendingVideoCount = 14 [json_name = "pendingVideoCount"]; // 待发视频数量 + int32 pendingPostCount = 15 [json_name = "pendingPostCount"]; // 待发图文数量 + int32 pendingDataCount = 16 [json_name = "pendingDataCount"]; // 待发数据数量 + string updatedAt = 24 [json_name = "updatedAt"]; // 更新时间 +} + +// 手动完成任务 +message CompleteTaskManuallyRequest { + string assignRecordsUUID = 1 [json_name = "assignRecordsUUID"]; // 指派记录UUID + string taskAssigneeNum = 2 [json_name = "taskAssigneeNum"]; // 被指派完成该任务人的账号 +} + +// 更新任务进度 +message UpdateTaskProgressRequest { + string assignRecordsUUID = 1 [json_name = "assignRecordsUUID"]; // 指派记录UUID(可选) + string employeeName = 2 [json_name = "employeeName"]; // 员工姓名(必要) + string employeeNum = 3 [json_name = "employeeNum"]; // 员工工号(必要) + string taskType = 4 [json_name = "taskType"]; // 任务类型: video/post/data + int32 completeCount = 5 [json_name = "completeCount"]; // 完成数量 +} + +// 多条件查询操作记录表 +message TaskAssignRecordsQueryRequest { + string keyword = 1 [json_name = "keyword"]; // 艺人姓名、编号、手机号搜索关键词 + string taskAssignee = 2 [json_name = "taskAssignee"]; // 指派人姓名 + string operator = 3 [json_name = "operator"]; // 操作人姓名 + string operatorNum = 4 [json_name = "operatorNum"]; // 操作人手机号 + string startTime = 5 [json_name = "startTime"]; // 操作开始时间 + string endTime = 6 [json_name = "endTime"]; // 操作结束时间 + int32 status = 7 [json_name = "status"]; // 反馈完成状态 + int32 actualStatus = 8 [json_name = "actualStatus"]; // 实际完成状态 + int32 page = 9 [json_name = "page"]; // 页码 + int32 pageSize = 10 [json_name = "pageSize"]; // 每页数量 +} + +message TaskAssignRecordsQueryResponse { + repeated TaskAssignRecordInfo records = 1 [json_name = "records"]; + int64 total = 2 [json_name = "total"]; + int32 page = 3 [json_name = "page"]; + int32 pageSize = 4 [json_name = "pageSize"]; +} + +// 查询艺人套餐剩余数量请求 +message ArtistBundleBalanceRequest { + string customerNum = 1 [json_name = "customerNum"]; // 艺人编号(推荐使用) + string telNum = 2 [json_name = "telNum"]; // 艺人手机号(备选) +} + +// 艺人套餐剩余数量响应 +message ArtistBundleBalanceResponse { + int32 remainingVideoCount = 1 [json_name = "remainingVideoCount"]; // 剩余视频数量 + int32 remainingImageCount = 2 [json_name = "remainingImageCount"]; // 剩余图片数量 + int32 remainingDataAnalysisCount = 3 [json_name = "remainingDataAnalysisCount"]; // 剩余数据分析数量 +} \ No newline at end of file diff --git a/pb/bundle/bundle.pb.go b/pb/bundle/bundle.pb.go index 12dad24..c0db905 100644 --- a/pb/bundle/bundle.pb.go +++ b/pb/bundle/bundle.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.7 -// protoc v6.32.0 +// protoc-gen-go v1.27.1 +// protoc v3.21.1 // source: pb/bundle.proto package bundle @@ -13,7 +13,6 @@ import ( _ "google.golang.org/protobuf/types/descriptorpb" reflect "reflect" sync "sync" - unsafe "unsafe" ) const ( @@ -24,18 +23,21 @@ const ( ) type DeleteValueAddServiceRequest struct { - state protoimpl.MessageState `protogen:"open.v1"` - OrderNo string `protobuf:"bytes,1,opt,name=orderNo,proto3" json:"orderNo"` - UserID uint64 `protobuf:"varint,2,opt,name=userID,proto3" json:"userID"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OrderNo string `protobuf:"bytes,1,opt,name=orderNo,proto3" json:"orderNo,omitempty"` + UserID uint64 `protobuf:"varint,2,opt,name=userID,proto3" json:"userID,omitempty"` } func (x *DeleteValueAddServiceRequest) Reset() { *x = DeleteValueAddServiceRequest{} - mi := &file_pb_bundle_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *DeleteValueAddServiceRequest) String() string { @@ -46,7 +48,7 @@ func (*DeleteValueAddServiceRequest) ProtoMessage() {} func (x *DeleteValueAddServiceRequest) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[0] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -76,30 +78,33 @@ func (x *DeleteValueAddServiceRequest) GetUserID() uint64 { } type GetReconciliationListReq struct { - state protoimpl.MessageState `protogen:"open.v1"` - UserName string `protobuf:"bytes,1,opt,name=userName,proto3" json:"userName"` - BundleName string `protobuf:"bytes,2,opt,name=bundleName,proto3" json:"bundleName"` - PayStatus int32 `protobuf:"varint,3,opt,name=payStatus,proto3" json:"payStatus"` - PayChannel int32 `protobuf:"varint,4,opt,name=payChannel,proto3" json:"payChannel"` - BundleOrderOn string `protobuf:"bytes,5,opt,name=bundleOrderOn,proto3" json:"bundleOrderOn"` - CreatedStart string `protobuf:"bytes,6,opt,name=createdStart,proto3" json:"createdStart"` - CreatedEnd string `protobuf:"bytes,7,opt,name=createdEnd,proto3" json:"createdEnd"` - PayTimeStart string `protobuf:"bytes,8,opt,name=payTimeStart,proto3" json:"payTimeStart"` - PayTimeEnd string `protobuf:"bytes,9,opt,name=payTimeEnd,proto3" json:"payTimeEnd"` - SerialNumber string `protobuf:"bytes,10,opt,name=serialNumber,proto3" json:"serialNumber"` - Page int32 `protobuf:"varint,11,opt,name=page,proto3" json:"page"` - PageSize int32 `protobuf:"varint,12,opt,name=pageSize,proto3" json:"pageSize"` - UserIDS []uint64 `protobuf:"varint,13,rep,packed,name=userIDS,proto3" json:"userIDS"` - BundleAddOrderOn string `protobuf:"bytes,14,opt,name=bundleAddOrderOn,proto3" json:"bundleAddOrderOn"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserName string `protobuf:"bytes,1,opt,name=userName,proto3" json:"userName,omitempty"` + BundleName string `protobuf:"bytes,2,opt,name=bundleName,proto3" json:"bundleName,omitempty"` + PayStatus int32 `protobuf:"varint,3,opt,name=payStatus,proto3" json:"payStatus,omitempty"` + PayChannel int32 `protobuf:"varint,4,opt,name=payChannel,proto3" json:"payChannel,omitempty"` + BundleOrderOn string `protobuf:"bytes,5,opt,name=bundleOrderOn,proto3" json:"bundleOrderOn,omitempty"` + CreatedStart string `protobuf:"bytes,6,opt,name=createdStart,proto3" json:"createdStart,omitempty"` + CreatedEnd string `protobuf:"bytes,7,opt,name=createdEnd,proto3" json:"createdEnd,omitempty"` + PayTimeStart string `protobuf:"bytes,8,opt,name=payTimeStart,proto3" json:"payTimeStart,omitempty"` + PayTimeEnd string `protobuf:"bytes,9,opt,name=payTimeEnd,proto3" json:"payTimeEnd,omitempty"` + SerialNumber string `protobuf:"bytes,10,opt,name=serialNumber,proto3" json:"serialNumber,omitempty"` + Page int32 `protobuf:"varint,11,opt,name=page,proto3" json:"page,omitempty"` + PageSize int32 `protobuf:"varint,12,opt,name=pageSize,proto3" json:"pageSize,omitempty"` + UserIDS []uint64 `protobuf:"varint,13,rep,packed,name=userIDS,proto3" json:"userIDS,omitempty"` + BundleAddOrderOn string `protobuf:"bytes,14,opt,name=bundleAddOrderOn,proto3" json:"bundleAddOrderOn,omitempty"` } func (x *GetReconciliationListReq) Reset() { *x = GetReconciliationListReq{} - mi := &file_pb_bundle_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *GetReconciliationListReq) String() string { @@ -110,7 +115,7 @@ func (*GetReconciliationListReq) ProtoMessage() {} func (x *GetReconciliationListReq) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[1] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -224,20 +229,23 @@ func (x *GetReconciliationListReq) GetBundleAddOrderOn() string { } type GetReconciliationListResp struct { - state protoimpl.MessageState `protogen:"open.v1"` - List []*ReconciliationInfo `protobuf:"bytes,1,rep,name=list,proto3" json:"list"` - Total int64 `protobuf:"varint,2,opt,name=total,proto3" json:"total"` - Page int32 `protobuf:"varint,3,opt,name=page,proto3" json:"page"` - PageSize int32 `protobuf:"varint,4,opt,name=pageSize,proto3" json:"pageSize"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + List []*ReconciliationInfo `protobuf:"bytes,1,rep,name=list,proto3" json:"list,omitempty"` + Total int64 `protobuf:"varint,2,opt,name=total,proto3" json:"total,omitempty"` + Page int32 `protobuf:"varint,3,opt,name=page,proto3" json:"page,omitempty"` + PageSize int32 `protobuf:"varint,4,opt,name=pageSize,proto3" json:"pageSize,omitempty"` } func (x *GetReconciliationListResp) Reset() { *x = GetReconciliationListResp{} - mi := &file_pb_bundle_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *GetReconciliationListResp) String() string { @@ -248,7 +256,7 @@ func (*GetReconciliationListResp) ProtoMessage() {} func (x *GetReconciliationListResp) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[2] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -292,32 +300,35 @@ func (x *GetReconciliationListResp) GetPageSize() int32 { } type ReconciliationInfo struct { - state protoimpl.MessageState `protogen:"open.v1"` - ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID"` - BundleOrderOn string `protobuf:"bytes,2,opt,name=bundleOrderOn,proto3" json:"bundleOrderOn"` - BundleAddOrderOn string `protobuf:"bytes,3,opt,name=bundleAddOrderOn,proto3" json:"bundleAddOrderOn"` - CreationTime string `protobuf:"bytes,4,opt,name=CreationTime,proto3" json:"CreationTime"` - UserName string `protobuf:"bytes,5,opt,name=userName,proto3" json:"userName"` - UserTel string `protobuf:"bytes,6,opt,name=userTel,proto3" json:"userTel"` - BundleName string `protobuf:"bytes,7,opt,name=bundleName,proto3" json:"bundleName"` - PayAmount float32 `protobuf:"fixed32,8,opt,name=payAmount,proto3" json:"payAmount"` - CurrencyType int32 `protobuf:"varint,9,opt,name=currencyType,proto3" json:"currencyType"` - PayChannel int32 `protobuf:"varint,10,opt,name=payChannel,proto3" json:"payChannel"` - PayTime string `protobuf:"bytes,11,opt,name=payTime,proto3" json:"payTime"` - PayStatus int32 `protobuf:"varint,12,opt,name=payStatus,proto3" json:"payStatus"` - SerialNumber string `protobuf:"bytes,13,opt,name=serialNumber,proto3" json:"serialNumber"` - UserID uint64 `protobuf:"varint,14,opt,name=userID,proto3" json:"userID"` - HandlingFee string `protobuf:"bytes,15,opt,name=handlingFee,proto3" json:"handlingFee"` - SubNum string `protobuf:"bytes,16,opt,name=subNum,proto3" json:"subNum"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` + BundleOrderOn string `protobuf:"bytes,2,opt,name=bundleOrderOn,proto3" json:"bundleOrderOn,omitempty"` + BundleAddOrderOn string `protobuf:"bytes,3,opt,name=bundleAddOrderOn,proto3" json:"bundleAddOrderOn,omitempty"` + CreationTime string `protobuf:"bytes,4,opt,name=CreationTime,proto3" json:"CreationTime,omitempty"` + UserName string `protobuf:"bytes,5,opt,name=userName,proto3" json:"userName,omitempty"` + UserTel string `protobuf:"bytes,6,opt,name=userTel,proto3" json:"userTel,omitempty"` + BundleName string `protobuf:"bytes,7,opt,name=bundleName,proto3" json:"bundleName,omitempty"` + PayAmount float32 `protobuf:"fixed32,8,opt,name=payAmount,proto3" json:"payAmount,omitempty"` + CurrencyType int32 `protobuf:"varint,9,opt,name=currencyType,proto3" json:"currencyType,omitempty"` + PayChannel int32 `protobuf:"varint,10,opt,name=payChannel,proto3" json:"payChannel,omitempty"` + PayTime string `protobuf:"bytes,11,opt,name=payTime,proto3" json:"payTime,omitempty"` + PayStatus int32 `protobuf:"varint,12,opt,name=payStatus,proto3" json:"payStatus,omitempty"` + SerialNumber string `protobuf:"bytes,13,opt,name=serialNumber,proto3" json:"serialNumber,omitempty"` + UserID uint64 `protobuf:"varint,14,opt,name=userID,proto3" json:"userID,omitempty"` + HandlingFee string `protobuf:"bytes,15,opt,name=handlingFee,proto3" json:"handlingFee,omitempty"` + SubNum string `protobuf:"bytes,16,opt,name=subNum,proto3" json:"subNum,omitempty"` } func (x *ReconciliationInfo) Reset() { *x = ReconciliationInfo{} - mi := &file_pb_bundle_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *ReconciliationInfo) String() string { @@ -328,7 +339,7 @@ func (*ReconciliationInfo) ProtoMessage() {} func (x *ReconciliationInfo) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[3] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -456,17 +467,20 @@ func (x *ReconciliationInfo) GetSubNum() string { } type OrderInfoByOrderNoRequest struct { - state protoimpl.MessageState `protogen:"open.v1"` - OrderNo string `protobuf:"bytes,1,opt,name=orderNo,proto3" json:"orderNo"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OrderNo string `protobuf:"bytes,1,opt,name=orderNo,proto3" json:"orderNo,omitempty"` } func (x *OrderInfoByOrderNoRequest) Reset() { *x = OrderInfoByOrderNoRequest{} - mi := &file_pb_bundle_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *OrderInfoByOrderNoRequest) String() string { @@ -477,7 +491,7 @@ func (*OrderInfoByOrderNoRequest) ProtoMessage() {} func (x *OrderInfoByOrderNoRequest) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[4] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -500,26 +514,29 @@ func (x *OrderInfoByOrderNoRequest) GetOrderNo() string { } type OrderInfoByOrderNoResp struct { - state protoimpl.MessageState `protogen:"open.v1"` - Type int32 `protobuf:"varint,1,opt,name=type,proto3" json:"type"` - UserId uint64 `protobuf:"varint,2,opt,name=userId,proto3" json:"userId"` - OrderUUID string `protobuf:"bytes,3,opt,name=orderUUID,proto3" json:"orderUUID"` - AccountNumber int32 `protobuf:"varint,4,opt,name=accountNumber,proto3" json:"accountNumber"` - VideoNumber int32 `protobuf:"varint,5,opt,name=videoNumber,proto3" json:"videoNumber"` - ImageNumber int32 `protobuf:"varint,6,opt,name=imageNumber,proto3" json:"imageNumber"` - DataNumber int32 `protobuf:"varint,7,opt,name=dataNumber,proto3" json:"dataNumber"` - Duration int32 `protobuf:"varint,8,opt,name=duration,proto3" json:"duration"` - Unit string `protobuf:"bytes,9,opt,name=unit,proto3" json:"unit"` - UserName string `protobuf:"bytes,10,opt,name=userName,proto3" json:"userName"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type int32 `protobuf:"varint,1,opt,name=type,proto3" json:"type,omitempty"` + UserId uint64 `protobuf:"varint,2,opt,name=userId,proto3" json:"userId,omitempty"` + OrderUUID string `protobuf:"bytes,3,opt,name=orderUUID,proto3" json:"orderUUID,omitempty"` + AccountNumber int32 `protobuf:"varint,4,opt,name=accountNumber,proto3" json:"accountNumber,omitempty"` + VideoNumber int32 `protobuf:"varint,5,opt,name=videoNumber,proto3" json:"videoNumber,omitempty"` + ImageNumber int32 `protobuf:"varint,6,opt,name=imageNumber,proto3" json:"imageNumber,omitempty"` + DataNumber int32 `protobuf:"varint,7,opt,name=dataNumber,proto3" json:"dataNumber,omitempty"` + Duration int32 `protobuf:"varint,8,opt,name=duration,proto3" json:"duration,omitempty"` + Unit string `protobuf:"bytes,9,opt,name=unit,proto3" json:"unit,omitempty"` + UserName string `protobuf:"bytes,10,opt,name=userName,proto3" json:"userName,omitempty"` } func (x *OrderInfoByOrderNoResp) Reset() { *x = OrderInfoByOrderNoResp{} - mi := &file_pb_bundle_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *OrderInfoByOrderNoResp) String() string { @@ -530,7 +547,7 @@ func (*OrderInfoByOrderNoResp) ProtoMessage() {} func (x *OrderInfoByOrderNoResp) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[5] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -616,37 +633,40 @@ func (x *OrderInfoByOrderNoResp) GetUserName() string { } type OrderCreateRecord struct { - state protoimpl.MessageState `protogen:"open.v1"` - BundleUuid string `protobuf:"bytes,1,opt,name=bundleUuid,proto3" json:"bundleUuid"` - Language string `protobuf:"bytes,2,opt,name=language,proto3" json:"language"` - ExpirationTime string `protobuf:"bytes,3,opt,name=expirationTime,proto3" json:"expirationTime"` - BundleName string `protobuf:"bytes,4,opt,name=bundleName,proto3" json:"bundleName"` - CustomerID string `protobuf:"bytes,5,opt,name=customerID,proto3" json:"customerID"` - CustomerNum string `protobuf:"bytes,6,opt,name=customerNum,proto3" json:"customerNum"` - CustomerName string `protobuf:"bytes,7,opt,name=customerName,proto3" json:"customerName"` - Amount float32 `protobuf:"fixed32,8,opt,name=amount,proto3" json:"amount"` - AmountType int64 `protobuf:"varint,9,opt,name=amountType,proto3" json:"amountType"` - SignContract string `protobuf:"bytes,10,opt,name=signContract,proto3" json:"signContract"` - Signature string `protobuf:"bytes,11,opt,name=signature,proto3" json:"signature"` - SignedTime string `protobuf:"bytes,12,opt,name=signedTime,proto3" json:"signedTime"` - Status int64 `protobuf:"varint,13,opt,name=status,proto3" json:"status"` - PayTime string `protobuf:"bytes,14,opt,name=payTime,proto3" json:"payTime"` - ContractNo string `protobuf:"bytes,15,opt,name=contractNo,proto3" json:"contractNo"` - TotalAmount float32 `protobuf:"fixed32,16,opt,name=totalAmount,proto3" json:"totalAmount"` //总金额 - BundleCommonUid string `protobuf:"bytes,17,opt,name=bundleCommonUid,proto3" json:"bundleCommonUid"` - Snapshot string `protobuf:"bytes,18,opt,name=snapshot,proto3" json:"snapshot"` - PayType int32 `protobuf:"varint,19,opt,name=payType,proto3" json:"payType"` - AddRecords []*OrderCreateAddRecord `protobuf:"bytes,20,rep,name=addRecords,proto3" json:"addRecords"` //增值服务 - OrderNo string `protobuf:"bytes,21,opt,name=orderNo,proto3" json:"orderNo"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + BundleUuid string `protobuf:"bytes,1,opt,name=bundleUuid,proto3" json:"bundleUuid,omitempty"` + Language string `protobuf:"bytes,2,opt,name=language,proto3" json:"language,omitempty"` + ExpirationTime string `protobuf:"bytes,3,opt,name=expirationTime,proto3" json:"expirationTime,omitempty"` + BundleName string `protobuf:"bytes,4,opt,name=bundleName,proto3" json:"bundleName,omitempty"` + CustomerID string `protobuf:"bytes,5,opt,name=customerID,proto3" json:"customerID,omitempty"` + CustomerNum string `protobuf:"bytes,6,opt,name=customerNum,proto3" json:"customerNum,omitempty"` + CustomerName string `protobuf:"bytes,7,opt,name=customerName,proto3" json:"customerName,omitempty"` + Amount float32 `protobuf:"fixed32,8,opt,name=amount,proto3" json:"amount,omitempty"` + AmountType int64 `protobuf:"varint,9,opt,name=amountType,proto3" json:"amountType,omitempty"` + SignContract string `protobuf:"bytes,10,opt,name=signContract,proto3" json:"signContract,omitempty"` + Signature string `protobuf:"bytes,11,opt,name=signature,proto3" json:"signature,omitempty"` + SignedTime string `protobuf:"bytes,12,opt,name=signedTime,proto3" json:"signedTime,omitempty"` + Status int64 `protobuf:"varint,13,opt,name=status,proto3" json:"status,omitempty"` + PayTime string `protobuf:"bytes,14,opt,name=payTime,proto3" json:"payTime,omitempty"` + ContractNo string `protobuf:"bytes,15,opt,name=contractNo,proto3" json:"contractNo,omitempty"` + TotalAmount float32 `protobuf:"fixed32,16,opt,name=totalAmount,proto3" json:"totalAmount,omitempty"` //总金额 + BundleCommonUid string `protobuf:"bytes,17,opt,name=bundleCommonUid,proto3" json:"bundleCommonUid,omitempty"` + Snapshot string `protobuf:"bytes,18,opt,name=snapshot,proto3" json:"snapshot,omitempty"` + PayType int32 `protobuf:"varint,19,opt,name=payType,proto3" json:"payType,omitempty"` + AddRecords []*OrderCreateAddRecord `protobuf:"bytes,20,rep,name=addRecords,proto3" json:"addRecords,omitempty"` //增值服务 + OrderNo string `protobuf:"bytes,21,opt,name=orderNo,proto3" json:"orderNo,omitempty"` } func (x *OrderCreateRecord) Reset() { *x = OrderCreateRecord{} - mi := &file_pb_bundle_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *OrderCreateRecord) String() string { @@ -657,7 +677,7 @@ func (*OrderCreateRecord) ProtoMessage() {} func (x *OrderCreateRecord) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[6] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -820,25 +840,28 @@ func (x *OrderCreateRecord) GetOrderNo() string { } type OrderCreateAddRecord struct { - state protoimpl.MessageState `protogen:"open.v1"` - ServiceType int32 `protobuf:"varint,1,opt,name=serviceType,proto3" json:"serviceType"` - ValueUid string `protobuf:"bytes,2,opt,name=valueUid,proto3" json:"valueUid"` - CurrencyType int64 `protobuf:"varint,3,opt,name=currencyType,proto3" json:"currencyType"` - Amount float32 `protobuf:"fixed32,4,opt,name=amount,proto3" json:"amount"` - Num int32 `protobuf:"varint,5,opt,name=num,proto3" json:"num"` - Unit string `protobuf:"bytes,6,opt,name=unit,proto3" json:"unit"` - Source int32 `protobuf:"varint,7,opt,name=source,proto3" json:"source"` - PaymentStatus int32 `protobuf:"varint,8,opt,name=paymentStatus,proto3" json:"paymentStatus"` - HandlingFee string `protobuf:"bytes,9,opt,name=handlingFee,proto3" json:"handlingFee"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ServiceType int32 `protobuf:"varint,1,opt,name=serviceType,proto3" json:"serviceType,omitempty"` + ValueUid string `protobuf:"bytes,2,opt,name=valueUid,proto3" json:"valueUid,omitempty"` + CurrencyType int64 `protobuf:"varint,3,opt,name=currencyType,proto3" json:"currencyType,omitempty"` + Amount float32 `protobuf:"fixed32,4,opt,name=amount,proto3" json:"amount,omitempty"` + Num int32 `protobuf:"varint,5,opt,name=num,proto3" json:"num,omitempty"` + Unit string `protobuf:"bytes,6,opt,name=unit,proto3" json:"unit,omitempty"` + Source int32 `protobuf:"varint,7,opt,name=source,proto3" json:"source,omitempty"` + PaymentStatus int32 `protobuf:"varint,8,opt,name=paymentStatus,proto3" json:"paymentStatus,omitempty"` + HandlingFee string `protobuf:"bytes,9,opt,name=handlingFee,proto3" json:"handlingFee,omitempty"` } func (x *OrderCreateAddRecord) Reset() { *x = OrderCreateAddRecord{} - mi := &file_pb_bundle_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *OrderCreateAddRecord) String() string { @@ -849,7 +872,7 @@ func (*OrderCreateAddRecord) ProtoMessage() {} func (x *OrderCreateAddRecord) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[7] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -928,32 +951,35 @@ func (x *OrderCreateAddRecord) GetHandlingFee() string { } type OrderRecordsRequestV2 struct { - state protoimpl.MessageState `protogen:"open.v1"` - CustomerName string `protobuf:"bytes,1,opt,name=customerName,proto3" json:"customerName"` - TelNum string `protobuf:"bytes,2,opt,name=telNum,proto3" json:"telNum"` - BundleName string `protobuf:"bytes,3,opt,name=bundleName,proto3" json:"bundleName"` - PayStatus int32 `protobuf:"varint,4,opt,name=payStatus,proto3" json:"payStatus"` - AddPayStatus int32 `protobuf:"varint,5,opt,name=addPayStatus,proto3" json:"addPayStatus"` - OrderNo string `protobuf:"bytes,6,opt,name=orderNo,proto3" json:"orderNo"` - OrderAddNo string `protobuf:"bytes,7,opt,name=orderAddNo,proto3" json:"orderAddNo"` - BundleCreateAtStart string `protobuf:"bytes,8,opt,name=bundleCreateAtStart,proto3" json:"bundleCreateAtStart"` - BundleCreateAtEnd string `protobuf:"bytes,9,opt,name=bundleCreateAtEnd,proto3" json:"bundleCreateAtEnd"` - OrderAddCreateAtStart string `protobuf:"bytes,10,opt,name=orderAddCreateAtStart,proto3" json:"orderAddCreateAtStart"` - OrderAddCreateAtEnd string `protobuf:"bytes,11,opt,name=orderAddCreateAtEnd,proto3" json:"orderAddCreateAtEnd"` - Page int32 `protobuf:"varint,12,opt,name=page,proto3" json:"page"` - PageSize int32 `protobuf:"varint,13,opt,name=pageSize,proto3" json:"pageSize"` - UserIds []int64 `protobuf:"varint,14,rep,packed,name=userIds,proto3" json:"userIds"` - BundlePayStart string `protobuf:"bytes,15,opt,name=bundlePayStart,proto3" json:"bundlePayStart"` - BundlePayEnd string `protobuf:"bytes,16,opt,name=bundlePayEnd,proto3" json:"bundlePayEnd"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CustomerName string `protobuf:"bytes,1,opt,name=customerName,proto3" json:"customerName,omitempty"` + TelNum string `protobuf:"bytes,2,opt,name=telNum,proto3" json:"telNum,omitempty"` + BundleName string `protobuf:"bytes,3,opt,name=bundleName,proto3" json:"bundleName,omitempty"` + PayStatus int32 `protobuf:"varint,4,opt,name=payStatus,proto3" json:"payStatus,omitempty"` + AddPayStatus int32 `protobuf:"varint,5,opt,name=addPayStatus,proto3" json:"addPayStatus,omitempty"` + OrderNo string `protobuf:"bytes,6,opt,name=orderNo,proto3" json:"orderNo,omitempty"` + OrderAddNo string `protobuf:"bytes,7,opt,name=orderAddNo,proto3" json:"orderAddNo,omitempty"` + BundleCreateAtStart string `protobuf:"bytes,8,opt,name=bundleCreateAtStart,proto3" json:"bundleCreateAtStart,omitempty"` + BundleCreateAtEnd string `protobuf:"bytes,9,opt,name=bundleCreateAtEnd,proto3" json:"bundleCreateAtEnd,omitempty"` + OrderAddCreateAtStart string `protobuf:"bytes,10,opt,name=orderAddCreateAtStart,proto3" json:"orderAddCreateAtStart,omitempty"` + OrderAddCreateAtEnd string `protobuf:"bytes,11,opt,name=orderAddCreateAtEnd,proto3" json:"orderAddCreateAtEnd,omitempty"` + Page int32 `protobuf:"varint,12,opt,name=page,proto3" json:"page,omitempty"` + PageSize int32 `protobuf:"varint,13,opt,name=pageSize,proto3" json:"pageSize,omitempty"` + UserIds []int64 `protobuf:"varint,14,rep,packed,name=userIds,proto3" json:"userIds,omitempty"` + BundlePayStart string `protobuf:"bytes,15,opt,name=bundlePayStart,proto3" json:"bundlePayStart,omitempty"` + BundlePayEnd string `protobuf:"bytes,16,opt,name=bundlePayEnd,proto3" json:"bundlePayEnd,omitempty"` } func (x *OrderRecordsRequestV2) Reset() { *x = OrderRecordsRequestV2{} - mi := &file_pb_bundle_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *OrderRecordsRequestV2) String() string { @@ -964,7 +990,7 @@ func (*OrderRecordsRequestV2) ProtoMessage() {} func (x *OrderRecordsRequestV2) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[8] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1092,20 +1118,23 @@ func (x *OrderRecordsRequestV2) GetBundlePayEnd() string { } type OrderRecordsResponseV2 struct { - state protoimpl.MessageState `protogen:"open.v1"` - BundleInfo []*OrderBundleRecordInfo `protobuf:"bytes,1,rep,name=bundleInfo,proto3" json:"bundleInfo"` - Page int32 `protobuf:"varint,2,opt,name=page,proto3" json:"page"` - PageSize int32 `protobuf:"varint,3,opt,name=pageSize,proto3" json:"pageSize"` - Total int32 `protobuf:"varint,4,opt,name=total,proto3" json:"total"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + BundleInfo []*OrderBundleRecordInfo `protobuf:"bytes,1,rep,name=bundleInfo,proto3" json:"bundleInfo,omitempty"` + Page int32 `protobuf:"varint,2,opt,name=page,proto3" json:"page,omitempty"` + PageSize int32 `protobuf:"varint,3,opt,name=pageSize,proto3" json:"pageSize,omitempty"` + Total int32 `protobuf:"varint,4,opt,name=total,proto3" json:"total,omitempty"` } func (x *OrderRecordsResponseV2) Reset() { *x = OrderRecordsResponseV2{} - mi := &file_pb_bundle_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *OrderRecordsResponseV2) String() string { @@ -1116,7 +1145,7 @@ func (*OrderRecordsResponseV2) ProtoMessage() {} func (x *OrderRecordsResponseV2) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[9] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1160,27 +1189,30 @@ func (x *OrderRecordsResponseV2) GetTotal() int32 { } type OrderBundleRecordInfo struct { - state protoimpl.MessageState `protogen:"open.v1"` - OrderNo string `protobuf:"bytes,1,opt,name=orderNo,proto3" json:"orderNo"` - BundleName string `protobuf:"bytes,2,opt,name=bundleName,proto3" json:"bundleName"` - PayStatus int32 `protobuf:"varint,3,opt,name=payStatus,proto3" json:"payStatus"` - TelNum string `protobuf:"bytes,4,opt,name=telNum,proto3" json:"telNum"` - CustomerName string `protobuf:"bytes,5,opt,name=customerName,proto3" json:"customerName"` - BundleCreateAt string `protobuf:"bytes,6,opt,name=bundleCreateAt,proto3" json:"bundleCreateAt"` - Amount float32 `protobuf:"fixed32,7,opt,name=amount,proto3" json:"amount"` - AddBundleInfo []*OrderAddBundleRecordInfo `protobuf:"bytes,8,rep,name=addBundleInfo,proto3" json:"addBundleInfo"` - CustomerId int64 `protobuf:"varint,9,opt,name=customerId,proto3" json:"customerId"` - PayTime string `protobuf:"bytes,10,opt,name=payTime,proto3" json:"payTime"` - SubNum string `protobuf:"bytes,11,opt,name=subNum,proto3" json:"subNum"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OrderNo string `protobuf:"bytes,1,opt,name=orderNo,proto3" json:"orderNo,omitempty"` + BundleName string `protobuf:"bytes,2,opt,name=bundleName,proto3" json:"bundleName,omitempty"` + PayStatus int32 `protobuf:"varint,3,opt,name=payStatus,proto3" json:"payStatus,omitempty"` + TelNum string `protobuf:"bytes,4,opt,name=telNum,proto3" json:"telNum,omitempty"` + CustomerName string `protobuf:"bytes,5,opt,name=customerName,proto3" json:"customerName,omitempty"` + BundleCreateAt string `protobuf:"bytes,6,opt,name=bundleCreateAt,proto3" json:"bundleCreateAt,omitempty"` + Amount float32 `protobuf:"fixed32,7,opt,name=amount,proto3" json:"amount,omitempty"` + AddBundleInfo []*OrderAddBundleRecordInfo `protobuf:"bytes,8,rep,name=addBundleInfo,proto3" json:"addBundleInfo,omitempty"` + CustomerId int64 `protobuf:"varint,9,opt,name=customerId,proto3" json:"customerId,omitempty"` + PayTime string `protobuf:"bytes,10,opt,name=payTime,proto3" json:"payTime,omitempty"` + SubNum string `protobuf:"bytes,11,opt,name=subNum,proto3" json:"subNum,omitempty"` } func (x *OrderBundleRecordInfo) Reset() { *x = OrderBundleRecordInfo{} - mi := &file_pb_bundle_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *OrderBundleRecordInfo) String() string { @@ -1191,7 +1223,7 @@ func (*OrderBundleRecordInfo) ProtoMessage() {} func (x *OrderBundleRecordInfo) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[10] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1284,29 +1316,32 @@ func (x *OrderBundleRecordInfo) GetSubNum() string { } type OrderAddBundleRecordInfo struct { - state protoimpl.MessageState `protogen:"open.v1"` - OrderAddNo string `protobuf:"bytes,1,opt,name=orderAddNo,proto3" json:"orderAddNo"` - Amount float32 `protobuf:"fixed32,2,opt,name=amount,proto3" json:"amount"` - SettlementAmount float32 `protobuf:"fixed32,3,opt,name=settlementAmount,proto3" json:"settlementAmount"` - CurrencyType int32 `protobuf:"varint,4,opt,name=currencyType,proto3" json:"currencyType"` - HandlingFee string `protobuf:"bytes,5,opt,name=handlingFee,proto3" json:"handlingFee"` - ExchangeRate float32 `protobuf:"fixed32,6,opt,name=exchangeRate,proto3" json:"exchangeRate"` - OrderAddCreateAt string `protobuf:"bytes,7,opt,name=orderAddCreateAt,proto3" json:"orderAddCreateAt"` - AddPayStatus int32 `protobuf:"varint,8,opt,name=addPayStatus,proto3" json:"addPayStatus"` - Contract string `protobuf:"bytes,9,opt,name=contract,proto3" json:"contract"` - Snapshot string `protobuf:"bytes,10,opt,name=snapshot,proto3" json:"snapshot"` - CheckoutSessionId string `protobuf:"bytes,11,opt,name=CheckoutSessionId,proto3" json:"CheckoutSessionId"` - CustomerID string `protobuf:"bytes,12,opt,name=CustomerID,proto3" json:"CustomerID"` - VideoNum int32 `protobuf:"varint,13,opt,name=videoNum,proto3" json:"videoNum"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OrderAddNo string `protobuf:"bytes,1,opt,name=orderAddNo,proto3" json:"orderAddNo,omitempty"` + Amount float32 `protobuf:"fixed32,2,opt,name=amount,proto3" json:"amount,omitempty"` + SettlementAmount float32 `protobuf:"fixed32,3,opt,name=settlementAmount,proto3" json:"settlementAmount,omitempty"` + CurrencyType int32 `protobuf:"varint,4,opt,name=currencyType,proto3" json:"currencyType,omitempty"` + HandlingFee string `protobuf:"bytes,5,opt,name=handlingFee,proto3" json:"handlingFee,omitempty"` + ExchangeRate float32 `protobuf:"fixed32,6,opt,name=exchangeRate,proto3" json:"exchangeRate,omitempty"` + OrderAddCreateAt string `protobuf:"bytes,7,opt,name=orderAddCreateAt,proto3" json:"orderAddCreateAt,omitempty"` + AddPayStatus int32 `protobuf:"varint,8,opt,name=addPayStatus,proto3" json:"addPayStatus,omitempty"` + Contract string `protobuf:"bytes,9,opt,name=contract,proto3" json:"contract,omitempty"` + Snapshot string `protobuf:"bytes,10,opt,name=snapshot,proto3" json:"snapshot,omitempty"` + CheckoutSessionId string `protobuf:"bytes,11,opt,name=CheckoutSessionId,proto3" json:"CheckoutSessionId,omitempty"` + CustomerID string `protobuf:"bytes,12,opt,name=CustomerID,proto3" json:"CustomerID,omitempty"` + VideoNum int32 `protobuf:"varint,13,opt,name=videoNum,proto3" json:"videoNum,omitempty"` } func (x *OrderAddBundleRecordInfo) Reset() { *x = OrderAddBundleRecordInfo{} - mi := &file_pb_bundle_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *OrderAddBundleRecordInfo) String() string { @@ -1317,7 +1352,7 @@ func (*OrderAddBundleRecordInfo) ProtoMessage() {} func (x *OrderAddBundleRecordInfo) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[11] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1424,18 +1459,21 @@ func (x *OrderAddBundleRecordInfo) GetVideoNum() int32 { } type PackagePriceAndTimeResponse struct { - state protoimpl.MessageState `protogen:"open.v1"` - Price float32 `protobuf:"fixed32,1,opt,name=price,proto3" json:"price"` - Time string `protobuf:"bytes,2,opt,name=time,proto3" json:"time"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Price float32 `protobuf:"fixed32,1,opt,name=price,proto3" json:"price,omitempty"` + Time string `protobuf:"bytes,2,opt,name=time,proto3" json:"time,omitempty"` } func (x *PackagePriceAndTimeResponse) Reset() { *x = PackagePriceAndTimeResponse{} - mi := &file_pb_bundle_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *PackagePriceAndTimeResponse) String() string { @@ -1446,7 +1484,7 @@ func (*PackagePriceAndTimeResponse) ProtoMessage() {} func (x *PackagePriceAndTimeResponse) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[12] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1476,19 +1514,22 @@ func (x *PackagePriceAndTimeResponse) GetTime() string { } type CommonResponse struct { - state protoimpl.MessageState `protogen:"open.v1"` - Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg"` - Uuid string `protobuf:"bytes,2,opt,name=uuid,proto3" json:"uuid"` - OrderNo string `protobuf:"bytes,3,opt,name=orderNo,proto3" json:"orderNo"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"` + Uuid string `protobuf:"bytes,2,opt,name=uuid,proto3" json:"uuid,omitempty"` + OrderNo string `protobuf:"bytes,3,opt,name=orderNo,proto3" json:"orderNo,omitempty"` } func (x *CommonResponse) Reset() { *x = CommonResponse{} - mi := &file_pb_bundle_proto_msgTypes[13] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *CommonResponse) String() string { @@ -1499,7 +1540,7 @@ func (*CommonResponse) ProtoMessage() {} func (x *CommonResponse) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[13] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1536,36 +1577,39 @@ func (x *CommonResponse) GetOrderNo() string { } type BundleProfile struct { - state protoimpl.MessageState `protogen:"open.v1"` - Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name"` - Price float32 `protobuf:"fixed32,3,opt,name=price,proto3" json:"price"` - PriceType int64 `protobuf:"varint,4,opt,name=priceType,proto3" json:"priceType"` - Content string `protobuf:"bytes,5,opt,name=content,proto3" json:"content"` - Contract string `protobuf:"bytes,6,opt,name=contract,proto3" json:"contract"` - Language string `protobuf:"bytes,7,opt,name=language,proto3" json:"language"` - CreatedAt string `protobuf:"bytes,8,opt,name=createdAt,proto3" json:"createdAt"` - UpdatedAt string `protobuf:"bytes,9,opt,name=updatedAt,proto3" json:"updatedAt"` - CompanySign string `protobuf:"bytes,10,opt,name=companySign,proto3" json:"companySign"` - ContractDuration int64 `protobuf:"varint,11,opt,name=contractDuration,proto3" json:"contractDuration"` - BundleCommonUid string `protobuf:"bytes,12,opt,name=bundleCommonUid,proto3" json:"bundleCommonUid"` - Sort int64 `protobuf:"varint,13,opt,name=sort,proto3" json:"sort"` - BgImg1 string `protobuf:"bytes,14,opt,name=bgImg1,proto3" json:"bgImg1"` - BgImg2 string `protobuf:"bytes,15,opt,name=bgImg2,proto3" json:"bgImg2"` - ShelfStatus int64 `protobuf:"varint,16,opt,name=shelfStatus,proto3" json:"shelfStatus"` // 1 上架 2 下架 - SelectValueAddService []*SelectValueAddService `protobuf:"bytes,17,rep,name=selectValueAddService,json=SelectValueAddService,proto3" json:"selectValueAddService"` - BundleProfileLang []*BundleProfileLang `protobuf:"bytes,18,rep,name=bundleProfileLang,proto3" json:"bundleProfileLang"` - ImgOption int32 `protobuf:"varint,19,opt,name=imgOption,proto3" json:"imgOption"` - FontColor string `protobuf:"bytes,20,opt,name=fontColor,proto3" json:"fontColor"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Price float32 `protobuf:"fixed32,3,opt,name=price,proto3" json:"price,omitempty"` + PriceType int64 `protobuf:"varint,4,opt,name=priceType,proto3" json:"priceType,omitempty"` + Content string `protobuf:"bytes,5,opt,name=content,proto3" json:"content,omitempty"` + Contract string `protobuf:"bytes,6,opt,name=contract,proto3" json:"contract,omitempty"` + Language string `protobuf:"bytes,7,opt,name=language,proto3" json:"language,omitempty"` + CreatedAt string `protobuf:"bytes,8,opt,name=createdAt,proto3" json:"createdAt,omitempty"` + UpdatedAt string `protobuf:"bytes,9,opt,name=updatedAt,proto3" json:"updatedAt,omitempty"` + CompanySign string `protobuf:"bytes,10,opt,name=companySign,proto3" json:"companySign,omitempty"` + ContractDuration int64 `protobuf:"varint,11,opt,name=contractDuration,proto3" json:"contractDuration,omitempty"` + BundleCommonUid string `protobuf:"bytes,12,opt,name=bundleCommonUid,proto3" json:"bundleCommonUid,omitempty"` + Sort int64 `protobuf:"varint,13,opt,name=sort,proto3" json:"sort,omitempty"` + BgImg1 string `protobuf:"bytes,14,opt,name=bgImg1,proto3" json:"bgImg1,omitempty"` + BgImg2 string `protobuf:"bytes,15,opt,name=bgImg2,proto3" json:"bgImg2,omitempty"` + ShelfStatus int64 `protobuf:"varint,16,opt,name=shelfStatus,proto3" json:"shelfStatus,omitempty"` // 1 上架 2 下架 + SelectValueAddService []*SelectValueAddService `protobuf:"bytes,17,rep,name=selectValueAddService,json=SelectValueAddService,proto3" json:"selectValueAddService,omitempty"` + BundleProfileLang []*BundleProfileLang `protobuf:"bytes,18,rep,name=bundleProfileLang,proto3" json:"bundleProfileLang,omitempty"` + ImgOption int32 `protobuf:"varint,19,opt,name=imgOption,proto3" json:"imgOption,omitempty"` + FontColor string `protobuf:"bytes,20,opt,name=fontColor,proto3" json:"fontColor,omitempty"` } func (x *BundleProfile) Reset() { *x = BundleProfile{} - mi := &file_pb_bundle_proto_msgTypes[14] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *BundleProfile) String() string { @@ -1576,7 +1620,7 @@ func (*BundleProfile) ProtoMessage() {} func (x *BundleProfile) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[14] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1732,33 +1776,36 @@ func (x *BundleProfile) GetFontColor() string { } type BundleProfileLang struct { - state protoimpl.MessageState `protogen:"open.v1"` - Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name"` - Price float32 `protobuf:"fixed32,3,opt,name=price,proto3" json:"price"` - PriceType int64 `protobuf:"varint,4,opt,name=priceType,proto3" json:"priceType"` - Content string `protobuf:"bytes,5,opt,name=content,proto3" json:"content"` - Language string `protobuf:"bytes,6,opt,name=language,proto3" json:"language"` - CreatedAt string `protobuf:"bytes,7,opt,name=createdAt,proto3" json:"createdAt"` - UpdatedAt string `protobuf:"bytes,8,opt,name=updatedAt,proto3" json:"updatedAt"` - Contract string `protobuf:"bytes,9,opt,name=contract,proto3" json:"contract"` - CompanySign string `protobuf:"bytes,10,opt,name=companySign,proto3" json:"companySign"` - ContractDuration int64 `protobuf:"varint,11,opt,name=contractDuration,proto3" json:"contractDuration"` - FontColor string `protobuf:"bytes,12,opt,name=fontColor,proto3" json:"fontColor"` - Sort int64 `protobuf:"varint,13,opt,name=sort,proto3" json:"sort"` - BgImg1 string `protobuf:"bytes,14,opt,name=bgImg1,proto3" json:"bgImg1"` - BgImg2 string `protobuf:"bytes,15,opt,name=bgImg2,proto3" json:"bgImg2"` - ShelfStatus int64 `protobuf:"varint,16,opt,name=shelfStatus,proto3" json:"shelfStatus"` // 1 上架 2 下架 - ImgOption int32 `protobuf:"varint,17,opt,name=imgOption,proto3" json:"imgOption"` //repeated ValueAddServiceLang valueAddServiceLang = 12 [json_name = "ValueAddServiceLang"]; - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Price float32 `protobuf:"fixed32,3,opt,name=price,proto3" json:"price,omitempty"` + PriceType int64 `protobuf:"varint,4,opt,name=priceType,proto3" json:"priceType,omitempty"` + Content string `protobuf:"bytes,5,opt,name=content,proto3" json:"content,omitempty"` + Language string `protobuf:"bytes,6,opt,name=language,proto3" json:"language,omitempty"` + CreatedAt string `protobuf:"bytes,7,opt,name=createdAt,proto3" json:"createdAt,omitempty"` + UpdatedAt string `protobuf:"bytes,8,opt,name=updatedAt,proto3" json:"updatedAt,omitempty"` + Contract string `protobuf:"bytes,9,opt,name=contract,proto3" json:"contract,omitempty"` + CompanySign string `protobuf:"bytes,10,opt,name=companySign,proto3" json:"companySign,omitempty"` + ContractDuration int64 `protobuf:"varint,11,opt,name=contractDuration,proto3" json:"contractDuration,omitempty"` + FontColor string `protobuf:"bytes,12,opt,name=fontColor,proto3" json:"fontColor,omitempty"` + Sort int64 `protobuf:"varint,13,opt,name=sort,proto3" json:"sort,omitempty"` + BgImg1 string `protobuf:"bytes,14,opt,name=bgImg1,proto3" json:"bgImg1,omitempty"` + BgImg2 string `protobuf:"bytes,15,opt,name=bgImg2,proto3" json:"bgImg2,omitempty"` + ShelfStatus int64 `protobuf:"varint,16,opt,name=shelfStatus,proto3" json:"shelfStatus,omitempty"` // 1 上架 2 下架 + ImgOption int32 `protobuf:"varint,17,opt,name=imgOption,proto3" json:"imgOption,omitempty"` //repeated ValueAddServiceLang valueAddServiceLang = 12 [json_name = "ValueAddServiceLang"]; } func (x *BundleProfileLang) Reset() { *x = BundleProfileLang{} - mi := &file_pb_bundle_proto_msgTypes[15] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *BundleProfileLang) String() string { @@ -1769,7 +1816,7 @@ func (*BundleProfileLang) ProtoMessage() {} func (x *BundleProfileLang) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[15] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1904,19 +1951,22 @@ func (x *BundleProfileLang) GetImgOption() int32 { } type SaveResponse struct { - state protoimpl.MessageState `protogen:"open.v1"` - Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg"` - Uuid string `protobuf:"bytes,2,opt,name=uuid,proto3" json:"uuid"` - CancelNum int64 `protobuf:"varint,3,opt,name=cancelNum,proto3" json:"cancelNum"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"` + Uuid string `protobuf:"bytes,2,opt,name=uuid,proto3" json:"uuid,omitempty"` + CancelNum int64 `protobuf:"varint,3,opt,name=cancelNum,proto3" json:"cancelNum,omitempty"` } func (x *SaveResponse) Reset() { *x = SaveResponse{} - mi := &file_pb_bundle_proto_msgTypes[16] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *SaveResponse) String() string { @@ -1927,7 +1977,7 @@ func (*SaveResponse) ProtoMessage() {} func (x *SaveResponse) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[16] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1964,20 +2014,23 @@ func (x *SaveResponse) GetCancelNum() int64 { } type SelectValueAddService struct { - state protoimpl.MessageState `protogen:"open.v1"` - ValueAddUuid string `protobuf:"bytes,1,opt,name=valueAddUuid,proto3" json:"valueAddUuid"` - ServiceName string `protobuf:"bytes,2,opt,name=serviceName,proto3" json:"serviceName"` - IsDisplay bool `protobuf:"varint,3,opt,name=isDisplay,proto3" json:"isDisplay"` - ServiceType int32 `protobuf:"varint,4,opt,name=serviceType,proto3" json:"serviceType"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ValueAddUuid string `protobuf:"bytes,1,opt,name=valueAddUuid,proto3" json:"valueAddUuid,omitempty"` + ServiceName string `protobuf:"bytes,2,opt,name=serviceName,proto3" json:"serviceName,omitempty"` + IsDisplay bool `protobuf:"varint,3,opt,name=isDisplay,proto3" json:"isDisplay,omitempty"` + ServiceType int32 `protobuf:"varint,4,opt,name=serviceType,proto3" json:"serviceType,omitempty"` } func (x *SelectValueAddService) Reset() { *x = SelectValueAddService{} - mi := &file_pb_bundle_proto_msgTypes[17] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *SelectValueAddService) String() string { @@ -1988,7 +2041,7 @@ func (*SelectValueAddService) ProtoMessage() {} func (x *SelectValueAddService) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[17] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2032,17 +2085,20 @@ func (x *SelectValueAddService) GetServiceType() int32 { } type DelBundleRequest struct { - state protoimpl.MessageState `protogen:"open.v1"` - Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` } func (x *DelBundleRequest) Reset() { *x = DelBundleRequest{} - mi := &file_pb_bundle_proto_msgTypes[18] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *DelBundleRequest) String() string { @@ -2053,7 +2109,7 @@ func (*DelBundleRequest) ProtoMessage() {} func (x *DelBundleRequest) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[18] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2076,21 +2132,24 @@ func (x *DelBundleRequest) GetUuid() string { } type BundleListRequest struct { - state protoimpl.MessageState `protogen:"open.v1"` - Page int32 `protobuf:"varint,1,opt,name=page,proto3" json:"page"` - PageSize int32 `protobuf:"varint,2,opt,name=pageSize,proto3" json:"pageSize"` - Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name"` - Content string `protobuf:"bytes,4,opt,name=content,proto3" json:"content"` - Language string `protobuf:"bytes,5,opt,name=language,proto3" json:"language"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Page int32 `protobuf:"varint,1,opt,name=page,proto3" json:"page,omitempty"` + PageSize int32 `protobuf:"varint,2,opt,name=pageSize,proto3" json:"pageSize,omitempty"` + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` + Content string `protobuf:"bytes,4,opt,name=content,proto3" json:"content,omitempty"` + Language string `protobuf:"bytes,5,opt,name=language,proto3" json:"language,omitempty"` } func (x *BundleListRequest) Reset() { *x = BundleListRequest{} - mi := &file_pb_bundle_proto_msgTypes[19] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *BundleListRequest) String() string { @@ -2101,7 +2160,7 @@ func (*BundleListRequest) ProtoMessage() {} func (x *BundleListRequest) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[19] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2152,18 +2211,21 @@ func (x *BundleListRequest) GetLanguage() string { } type BundleListResponse struct { - state protoimpl.MessageState `protogen:"open.v1"` - Bundles []*BundleProfile `protobuf:"bytes,1,rep,name=bundles,proto3" json:"bundles"` - Total int32 `protobuf:"varint,2,opt,name=total,proto3" json:"total"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Bundles []*BundleProfile `protobuf:"bytes,1,rep,name=bundles,proto3" json:"bundles,omitempty"` + Total int32 `protobuf:"varint,2,opt,name=total,proto3" json:"total,omitempty"` } func (x *BundleListResponse) Reset() { *x = BundleListResponse{} - mi := &file_pb_bundle_proto_msgTypes[20] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *BundleListResponse) String() string { @@ -2174,7 +2236,7 @@ func (*BundleListResponse) ProtoMessage() {} func (x *BundleListResponse) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[20] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2204,18 +2266,21 @@ func (x *BundleListResponse) GetTotal() int32 { } type BundleDetailRequest struct { - state protoimpl.MessageState `protogen:"open.v1"` - Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` - Language string `protobuf:"bytes,2,opt,name=language,proto3" json:"language"` //语言 默认zh-CN, zh-CN zh-TW EN de-DE js-JP - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` + Language string `protobuf:"bytes,2,opt,name=language,proto3" json:"language,omitempty"` //语言 默认zh-CN, zh-CN zh-TW EN de-DE js-JP } func (x *BundleDetailRequest) Reset() { *x = BundleDetailRequest{} - mi := &file_pb_bundle_proto_msgTypes[21] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *BundleDetailRequest) String() string { @@ -2226,7 +2291,7 @@ func (*BundleDetailRequest) ProtoMessage() {} func (x *BundleDetailRequest) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[21] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2256,18 +2321,21 @@ func (x *BundleDetailRequest) GetLanguage() string { } type HandShelfRequest struct { - state protoimpl.MessageState `protogen:"open.v1"` - Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` - ShelfStatus int64 `protobuf:"varint,2,opt,name=shelfStatus,proto3" json:"shelfStatus"` // 1 上架 2 下架 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` + ShelfStatus int64 `protobuf:"varint,2,opt,name=shelfStatus,proto3" json:"shelfStatus,omitempty"` // 1 上架 2 下架 } func (x *HandShelfRequest) Reset() { *x = HandShelfRequest{} - mi := &file_pb_bundle_proto_msgTypes[22] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *HandShelfRequest) String() string { @@ -2278,7 +2346,7 @@ func (*HandShelfRequest) ProtoMessage() {} func (x *HandShelfRequest) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[22] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2308,18 +2376,21 @@ func (x *HandShelfRequest) GetShelfStatus() int64 { } type BundleDetailResponse struct { - state protoimpl.MessageState `protogen:"open.v1"` - Bundle *BundleProfile `protobuf:"bytes,1,opt,name=bundle,proto3" json:"bundle"` - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Bundle *BundleProfile `protobuf:"bytes,1,opt,name=bundle,proto3" json:"bundle,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` } func (x *BundleDetailResponse) Reset() { *x = BundleDetailResponse{} - mi := &file_pb_bundle_proto_msgTypes[23] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *BundleDetailResponse) String() string { @@ -2330,7 +2401,7 @@ func (*BundleDetailResponse) ProtoMessage() {} func (x *BundleDetailResponse) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[23] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2360,18 +2431,21 @@ func (x *BundleDetailResponse) GetMsg() string { } type BundleDetailResponseV2 struct { - state protoimpl.MessageState `protogen:"open.v1"` - Bundle *BundleProfile `protobuf:"bytes,1,opt,name=bundle,proto3" json:"bundle"` - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Bundle *BundleProfile `protobuf:"bytes,1,opt,name=bundle,proto3" json:"bundle,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` } func (x *BundleDetailResponseV2) Reset() { *x = BundleDetailResponseV2{} - mi := &file_pb_bundle_proto_msgTypes[24] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *BundleDetailResponseV2) String() string { @@ -2382,7 +2456,7 @@ func (*BundleDetailResponseV2) ProtoMessage() {} func (x *BundleDetailResponseV2) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[24] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2412,55 +2486,58 @@ func (x *BundleDetailResponseV2) GetMsg() string { } type OrderRecord struct { - state protoimpl.MessageState `protogen:"open.v1"` - Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` - BundleUuid string `protobuf:"bytes,2,opt,name=bundleUuid,proto3" json:"bundleUuid"` - CustomerID string `protobuf:"bytes,3,opt,name=customerID,proto3" json:"customerID"` - CustomerNum string `protobuf:"bytes,4,opt,name=customerNum,proto3" json:"customerNum"` - CustomerName string `protobuf:"bytes,5,opt,name=customerName,proto3" json:"customerName"` - Amount float32 `protobuf:"fixed32,6,opt,name=amount,proto3" json:"amount"` - AmountType int64 `protobuf:"varint,7,opt,name=amountType,proto3" json:"amountType"` - SignContract string `protobuf:"bytes,8,opt,name=signContract,proto3" json:"signContract"` - Signature string `protobuf:"bytes,9,opt,name=signature,proto3" json:"signature"` - SignedTime string `protobuf:"bytes,10,opt,name=signedTime,proto3" json:"signedTime"` - PayType int64 `protobuf:"varint,11,opt,name=payType,proto3" json:"payType"` - PayTime string `protobuf:"bytes,12,opt,name=payTime,proto3" json:"payTime"` - CheckoutSessionId string `protobuf:"bytes,13,opt,name=checkoutSessionId,proto3" json:"checkoutSessionId"` - CheckoutSessionUrl string `protobuf:"bytes,14,opt,name=checkoutSessionUrl,proto3" json:"checkoutSessionUrl"` - Status int64 `protobuf:"varint,15,opt,name=status,proto3" json:"status"` - OrderNo string `protobuf:"bytes,16,opt,name=orderNo,proto3" json:"orderNo"` - BundleName string `protobuf:"bytes,17,opt,name=bundleName,proto3" json:"bundleName"` - ContractNo string `protobuf:"bytes,18,opt,name=contractNo,proto3" json:"contractNo"` - ValueAddBundleUuid string `protobuf:"bytes,19,opt,name=valueAddBundleUuid,proto3" json:"valueAddBundleUuid"` //增值套餐UUID - ValueAddBundleAmount float32 `protobuf:"fixed32,20,opt,name=valueAddBundleAmount,proto3" json:"valueAddBundleAmount"` //增值套餐金额 - ValueAddOriginalPrice float32 `protobuf:"fixed32,21,opt,name=valueAddOriginalPrice,proto3" json:"valueAddOriginalPrice"` //原单价 - ValueAddDiscountPrice float32 `protobuf:"fixed32,22,opt,name=valueAddDiscountPrice,proto3" json:"valueAddDiscountPrice"` //优惠单价 - ValueAddSavedAmount float32 `protobuf:"fixed32,23,opt,name=valueAddSavedAmount,proto3" json:"valueAddSavedAmount"` //节省金额 - Num int32 `protobuf:"varint,24,opt,name=num,proto3" json:"num"` - TotalAmount float32 `protobuf:"fixed32,25,opt,name=totalAmount,proto3" json:"totalAmount"` //总金额 - Sex string `protobuf:"bytes,26,opt,name=sex,proto3" json:"sex"` - Nationality string `protobuf:"bytes,27,opt,name=nationality,proto3" json:"nationality"` - CertificatePicture string `protobuf:"bytes,28,opt,name=certificatePicture,proto3" json:"certificatePicture"` - PlaceOfResidence string `protobuf:"bytes,29,opt,name=placeOfResidence,proto3" json:"placeOfResidence"` - GroupPhoto string `protobuf:"bytes,30,opt,name=groupPhoto,proto3" json:"groupPhoto"` - BundleCommonUid string `protobuf:"bytes,31,opt,name=bundleCommonUid,proto3" json:"bundleCommonUid"` - AddBundleCommonUid string `protobuf:"bytes,32,opt,name=addBundleCommonUid,proto3" json:"addBundleCommonUid"` - FinancialConfirmation int32 `protobuf:"varint,33,opt,name=financialConfirmation,proto3" json:"financialConfirmation"` - TelNum string `protobuf:"bytes,34,opt,name=telNum,proto3" json:"telNum"` - Language string `protobuf:"bytes,35,opt,name=language,proto3" json:"language"` - PriceOptionsInfo []*PriceOptionsInfo `protobuf:"bytes,36,rep,name=priceOptionsInfo,proto3" json:"priceOptionsInfo"` - ExpirationTime string `protobuf:"bytes,37,opt,name=expirationTime,proto3" json:"expirationTime"` - Snapshot string `protobuf:"bytes,38,opt,name=snapshot,proto3" json:"snapshot"` - AddInfos []*AddInfo `protobuf:"bytes,39,rep,name=addInfos,proto3" json:"addInfos"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` + BundleUuid string `protobuf:"bytes,2,opt,name=bundleUuid,proto3" json:"bundleUuid,omitempty"` + CustomerID string `protobuf:"bytes,3,opt,name=customerID,proto3" json:"customerID,omitempty"` + CustomerNum string `protobuf:"bytes,4,opt,name=customerNum,proto3" json:"customerNum,omitempty"` + CustomerName string `protobuf:"bytes,5,opt,name=customerName,proto3" json:"customerName,omitempty"` + Amount float32 `protobuf:"fixed32,6,opt,name=amount,proto3" json:"amount,omitempty"` + AmountType int64 `protobuf:"varint,7,opt,name=amountType,proto3" json:"amountType,omitempty"` + SignContract string `protobuf:"bytes,8,opt,name=signContract,proto3" json:"signContract,omitempty"` + Signature string `protobuf:"bytes,9,opt,name=signature,proto3" json:"signature,omitempty"` + SignedTime string `protobuf:"bytes,10,opt,name=signedTime,proto3" json:"signedTime,omitempty"` + PayType int64 `protobuf:"varint,11,opt,name=payType,proto3" json:"payType,omitempty"` + PayTime string `protobuf:"bytes,12,opt,name=payTime,proto3" json:"payTime,omitempty"` + CheckoutSessionId string `protobuf:"bytes,13,opt,name=checkoutSessionId,proto3" json:"checkoutSessionId,omitempty"` + CheckoutSessionUrl string `protobuf:"bytes,14,opt,name=checkoutSessionUrl,proto3" json:"checkoutSessionUrl,omitempty"` + Status int64 `protobuf:"varint,15,opt,name=status,proto3" json:"status,omitempty"` + OrderNo string `protobuf:"bytes,16,opt,name=orderNo,proto3" json:"orderNo,omitempty"` + BundleName string `protobuf:"bytes,17,opt,name=bundleName,proto3" json:"bundleName,omitempty"` + ContractNo string `protobuf:"bytes,18,opt,name=contractNo,proto3" json:"contractNo,omitempty"` + ValueAddBundleUuid string `protobuf:"bytes,19,opt,name=valueAddBundleUuid,proto3" json:"valueAddBundleUuid,omitempty"` //增值套餐UUID + ValueAddBundleAmount float32 `protobuf:"fixed32,20,opt,name=valueAddBundleAmount,proto3" json:"valueAddBundleAmount,omitempty"` //增值套餐金额 + ValueAddOriginalPrice float32 `protobuf:"fixed32,21,opt,name=valueAddOriginalPrice,proto3" json:"valueAddOriginalPrice,omitempty"` //原单价 + ValueAddDiscountPrice float32 `protobuf:"fixed32,22,opt,name=valueAddDiscountPrice,proto3" json:"valueAddDiscountPrice,omitempty"` //优惠单价 + ValueAddSavedAmount float32 `protobuf:"fixed32,23,opt,name=valueAddSavedAmount,proto3" json:"valueAddSavedAmount,omitempty"` //节省金额 + Num int32 `protobuf:"varint,24,opt,name=num,proto3" json:"num,omitempty"` + TotalAmount float32 `protobuf:"fixed32,25,opt,name=totalAmount,proto3" json:"totalAmount,omitempty"` //总金额 + Sex string `protobuf:"bytes,26,opt,name=sex,proto3" json:"sex,omitempty"` + Nationality string `protobuf:"bytes,27,opt,name=nationality,proto3" json:"nationality,omitempty"` + CertificatePicture string `protobuf:"bytes,28,opt,name=certificatePicture,proto3" json:"certificatePicture,omitempty"` + PlaceOfResidence string `protobuf:"bytes,29,opt,name=placeOfResidence,proto3" json:"placeOfResidence,omitempty"` + GroupPhoto string `protobuf:"bytes,30,opt,name=groupPhoto,proto3" json:"groupPhoto,omitempty"` + BundleCommonUid string `protobuf:"bytes,31,opt,name=bundleCommonUid,proto3" json:"bundleCommonUid,omitempty"` + AddBundleCommonUid string `protobuf:"bytes,32,opt,name=addBundleCommonUid,proto3" json:"addBundleCommonUid,omitempty"` + FinancialConfirmation int32 `protobuf:"varint,33,opt,name=financialConfirmation,proto3" json:"financialConfirmation,omitempty"` + TelNum string `protobuf:"bytes,34,opt,name=telNum,proto3" json:"telNum,omitempty"` + Language string `protobuf:"bytes,35,opt,name=language,proto3" json:"language,omitempty"` + PriceOptionsInfo []*PriceOptionsInfo `protobuf:"bytes,36,rep,name=priceOptionsInfo,proto3" json:"priceOptionsInfo,omitempty"` + ExpirationTime string `protobuf:"bytes,37,opt,name=expirationTime,proto3" json:"expirationTime,omitempty"` + Snapshot string `protobuf:"bytes,38,opt,name=snapshot,proto3" json:"snapshot,omitempty"` + AddInfos []*AddInfo `protobuf:"bytes,39,rep,name=addInfos,proto3" json:"addInfos,omitempty"` } func (x *OrderRecord) Reset() { *x = OrderRecord{} - mi := &file_pb_bundle_proto_msgTypes[25] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *OrderRecord) String() string { @@ -2471,7 +2548,7 @@ func (*OrderRecord) ProtoMessage() {} func (x *OrderRecord) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[25] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2760,19 +2837,22 @@ func (x *OrderRecord) GetAddInfos() []*AddInfo { } type AddInfo struct { - state protoimpl.MessageState `protogen:"open.v1"` - OrderNo string `protobuf:"bytes,1,opt,name=orderNo,proto3" json:"orderNo"` - Num int32 `protobuf:"varint,2,opt,name=num,proto3" json:"num"` - ValueAddUUID string `protobuf:"bytes,3,opt,name=valueAddUUID,proto3" json:"valueAddUUID"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OrderNo string `protobuf:"bytes,1,opt,name=orderNo,proto3" json:"orderNo,omitempty"` + Num int32 `protobuf:"varint,2,opt,name=num,proto3" json:"num,omitempty"` + ValueAddUUID string `protobuf:"bytes,3,opt,name=valueAddUUID,proto3" json:"valueAddUUID,omitempty"` } func (x *AddInfo) Reset() { *x = AddInfo{} - mi := &file_pb_bundle_proto_msgTypes[26] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *AddInfo) String() string { @@ -2783,7 +2863,7 @@ func (*AddInfo) ProtoMessage() {} func (x *AddInfo) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[26] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2820,30 +2900,33 @@ func (x *AddInfo) GetValueAddUUID() string { } type OrderAddRecord struct { - state protoimpl.MessageState `protogen:"open.v1"` - BundleUuid string `protobuf:"bytes,1,opt,name=bundleUuid,proto3" json:"bundleUuid"` - AddPriceOptionsList []*AddPriceOptionsInfo `protobuf:"bytes,2,rep,name=addPriceOptionsList,proto3" json:"addPriceOptionsList"` - Language string `protobuf:"bytes,3,opt,name=language,proto3" json:"language"` - CustomerID string `protobuf:"bytes,4,opt,name=customerID,proto3" json:"customerID"` - CustomerNum string `protobuf:"bytes,5,opt,name=customerNum,proto3" json:"customerNum"` - CustomerName string `protobuf:"bytes,6,opt,name=customerName,proto3" json:"customerName"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + BundleUuid string `protobuf:"bytes,1,opt,name=bundleUuid,proto3" json:"bundleUuid,omitempty"` + AddPriceOptionsList []*AddPriceOptionsInfo `protobuf:"bytes,2,rep,name=addPriceOptionsList,proto3" json:"addPriceOptionsList,omitempty"` + Language string `protobuf:"bytes,3,opt,name=language,proto3" json:"language,omitempty"` + CustomerID string `protobuf:"bytes,4,opt,name=customerID,proto3" json:"customerID,omitempty"` + CustomerNum string `protobuf:"bytes,5,opt,name=customerNum,proto3" json:"customerNum,omitempty"` + CustomerName string `protobuf:"bytes,6,opt,name=customerName,proto3" json:"customerName,omitempty"` // string valueAddUUID = 12 [json_name = "valueAddUUID"]; - Source int32 `protobuf:"varint,7,opt,name=source,proto3" json:"source"` - SignContract string `protobuf:"bytes,8,opt,name=signContract,proto3" json:"signContract"` - Signature string `protobuf:"bytes,9,opt,name=signature,proto3" json:"signature"` - SignedTime string `protobuf:"bytes,10,opt,name=signedTime,proto3" json:"signedTime"` - ExpirationDate string `protobuf:"bytes,11,opt,name=expirationDate,proto3" json:"expirationDate"` - Snapshot string `protobuf:"bytes,38,opt,name=snapshot,proto3" json:"snapshot"` - OrderUUID string `protobuf:"bytes,39,opt,name=orderUUID,proto3" json:"orderUUID"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + Source int32 `protobuf:"varint,7,opt,name=source,proto3" json:"source,omitempty"` + SignContract string `protobuf:"bytes,8,opt,name=signContract,proto3" json:"signContract,omitempty"` + Signature string `protobuf:"bytes,9,opt,name=signature,proto3" json:"signature,omitempty"` + SignedTime string `protobuf:"bytes,10,opt,name=signedTime,proto3" json:"signedTime,omitempty"` + ExpirationDate string `protobuf:"bytes,11,opt,name=expirationDate,proto3" json:"expirationDate,omitempty"` + Snapshot string `protobuf:"bytes,38,opt,name=snapshot,proto3" json:"snapshot,omitempty"` + OrderUUID string `protobuf:"bytes,39,opt,name=orderUUID,proto3" json:"orderUUID,omitempty"` } func (x *OrderAddRecord) Reset() { *x = OrderAddRecord{} - mi := &file_pb_bundle_proto_msgTypes[27] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *OrderAddRecord) String() string { @@ -2854,7 +2937,7 @@ func (*OrderAddRecord) ProtoMessage() {} func (x *OrderAddRecord) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[27] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2961,23 +3044,26 @@ func (x *OrderAddRecord) GetOrderUUID() string { } type AddPriceOptionsInfo struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id"` - ValueUid string `protobuf:"bytes,2,opt,name=valueUid,proto3" json:"valueUid"` - ServiceType int32 `protobuf:"varint,3,opt,name=serviceType,proto3" json:"serviceType"` - CurrencyType int64 `protobuf:"varint,4,opt,name=currencyType,proto3" json:"currencyType"` - Amount float32 `protobuf:"fixed32,5,opt,name=amount,proto3" json:"amount"` - Num int32 `protobuf:"varint,6,opt,name=num,proto3" json:"num"` - Unit string `protobuf:"bytes,7,opt,name=unit,proto3" json:"unit"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + ValueUid string `protobuf:"bytes,2,opt,name=valueUid,proto3" json:"valueUid,omitempty"` + ServiceType int32 `protobuf:"varint,3,opt,name=serviceType,proto3" json:"serviceType,omitempty"` + CurrencyType int64 `protobuf:"varint,4,opt,name=currencyType,proto3" json:"currencyType,omitempty"` + Amount float32 `protobuf:"fixed32,5,opt,name=amount,proto3" json:"amount,omitempty"` + Num int32 `protobuf:"varint,6,opt,name=num,proto3" json:"num,omitempty"` + Unit string `protobuf:"bytes,7,opt,name=unit,proto3" json:"unit,omitempty"` } func (x *AddPriceOptionsInfo) Reset() { *x = AddPriceOptionsInfo{} - mi := &file_pb_bundle_proto_msgTypes[28] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *AddPriceOptionsInfo) String() string { @@ -2988,7 +3074,7 @@ func (*AddPriceOptionsInfo) ProtoMessage() {} func (x *AddPriceOptionsInfo) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[28] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3053,19 +3139,22 @@ func (x *AddPriceOptionsInfo) GetUnit() string { } type PriceOptionsInfo struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id"` - ValueUid string `protobuf:"bytes,2,opt,name=valueUid,proto3" json:"valueUid"` - Num int32 `protobuf:"varint,3,opt,name=num,proto3" json:"num"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + ValueUid string `protobuf:"bytes,2,opt,name=valueUid,proto3" json:"valueUid,omitempty"` + Num int32 `protobuf:"varint,3,opt,name=num,proto3" json:"num,omitempty"` } func (x *PriceOptionsInfo) Reset() { *x = PriceOptionsInfo{} - mi := &file_pb_bundle_proto_msgTypes[29] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *PriceOptionsInfo) String() string { @@ -3076,7 +3165,7 @@ func (*PriceOptionsInfo) ProtoMessage() {} func (x *PriceOptionsInfo) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[29] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3113,32 +3202,35 @@ func (x *PriceOptionsInfo) GetNum() int32 { } type OrderRecordsRequest struct { - state protoimpl.MessageState `protogen:"open.v1"` - Page int32 `protobuf:"varint,1,opt,name=page,proto3" json:"page"` - PageSize int32 `protobuf:"varint,2,opt,name=pageSize,proto3" json:"pageSize"` - CustomerNum string `protobuf:"bytes,3,opt,name=customerNum,proto3" json:"customerNum"` - CustomerName string `protobuf:"bytes,4,opt,name=customerName,proto3" json:"customerName"` - BundleUUID string `protobuf:"bytes,5,opt,name=bundleUUID,proto3" json:"bundleUUID"` - OrderNo string `protobuf:"bytes,6,opt,name=orderNo,proto3" json:"orderNo"` - Status int64 `protobuf:"varint,7,opt,name=status,proto3" json:"status"` - BundleName string `protobuf:"bytes,8,opt,name=bundleName,proto3" json:"bundleName"` - StartSignedTime string `protobuf:"bytes,9,opt,name=startSignedTime,proto3" json:"startSignedTime"` - EndSignedTime string `protobuf:"bytes,10,opt,name=endSignedTime,proto3" json:"endSignedTime"` - StartPayTime string `protobuf:"bytes,11,opt,name=startPayTime,proto3" json:"startPayTime"` - EndPayTime string `protobuf:"bytes,12,opt,name=endPayTime,proto3" json:"endPayTime"` - CustomerID string `protobuf:"bytes,13,opt,name=customerID,proto3" json:"customerID"` - IsHaveValueAdd int64 `protobuf:"varint,14,opt,name=isHaveValueAdd,proto3" json:"isHaveValueAdd"` //有无增值选项 - FinancialConfirmation int32 `protobuf:"varint,15,opt,name=financialConfirmation,proto3" json:"financialConfirmation"` - TelNum string `protobuf:"bytes,16,opt,name=telNum,proto3" json:"telNum"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Page int32 `protobuf:"varint,1,opt,name=page,proto3" json:"page,omitempty"` + PageSize int32 `protobuf:"varint,2,opt,name=pageSize,proto3" json:"pageSize,omitempty"` + CustomerNum string `protobuf:"bytes,3,opt,name=customerNum,proto3" json:"customerNum,omitempty"` + CustomerName string `protobuf:"bytes,4,opt,name=customerName,proto3" json:"customerName,omitempty"` + BundleUUID string `protobuf:"bytes,5,opt,name=bundleUUID,proto3" json:"bundleUUID,omitempty"` + OrderNo string `protobuf:"bytes,6,opt,name=orderNo,proto3" json:"orderNo,omitempty"` + Status int64 `protobuf:"varint,7,opt,name=status,proto3" json:"status,omitempty"` + BundleName string `protobuf:"bytes,8,opt,name=bundleName,proto3" json:"bundleName,omitempty"` + StartSignedTime string `protobuf:"bytes,9,opt,name=startSignedTime,proto3" json:"startSignedTime,omitempty"` + EndSignedTime string `protobuf:"bytes,10,opt,name=endSignedTime,proto3" json:"endSignedTime,omitempty"` + StartPayTime string `protobuf:"bytes,11,opt,name=startPayTime,proto3" json:"startPayTime,omitempty"` + EndPayTime string `protobuf:"bytes,12,opt,name=endPayTime,proto3" json:"endPayTime,omitempty"` + CustomerID string `protobuf:"bytes,13,opt,name=customerID,proto3" json:"customerID,omitempty"` + IsHaveValueAdd int64 `protobuf:"varint,14,opt,name=isHaveValueAdd,proto3" json:"isHaveValueAdd,omitempty"` //有无增值选项 + FinancialConfirmation int32 `protobuf:"varint,15,opt,name=financialConfirmation,proto3" json:"financialConfirmation,omitempty"` + TelNum string `protobuf:"bytes,16,opt,name=telNum,proto3" json:"telNum,omitempty"` } func (x *OrderRecordsRequest) Reset() { *x = OrderRecordsRequest{} - mi := &file_pb_bundle_proto_msgTypes[30] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *OrderRecordsRequest) String() string { @@ -3149,7 +3241,7 @@ func (*OrderRecordsRequest) ProtoMessage() {} func (x *OrderRecordsRequest) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[30] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3277,18 +3369,21 @@ func (x *OrderRecordsRequest) GetTelNum() string { } type OrderRecordsResponse struct { - state protoimpl.MessageState `protogen:"open.v1"` - OrderRecords []*OrderRecord `protobuf:"bytes,1,rep,name=orderRecords,proto3" json:"orderRecords"` - Total int32 `protobuf:"varint,2,opt,name=total,proto3" json:"total"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OrderRecords []*OrderRecord `protobuf:"bytes,1,rep,name=orderRecords,proto3" json:"orderRecords,omitempty"` + Total int32 `protobuf:"varint,2,opt,name=total,proto3" json:"total,omitempty"` } func (x *OrderRecordsResponse) Reset() { *x = OrderRecordsResponse{} - mi := &file_pb_bundle_proto_msgTypes[31] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *OrderRecordsResponse) String() string { @@ -3299,7 +3394,7 @@ func (*OrderRecordsResponse) ProtoMessage() {} func (x *OrderRecordsResponse) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[31] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3329,21 +3424,24 @@ func (x *OrderRecordsResponse) GetTotal() int32 { } type OrderRecordsDetailRequest struct { - state protoimpl.MessageState `protogen:"open.v1"` - Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` - OrderNo string `protobuf:"bytes,2,opt,name=orderNo,proto3" json:"orderNo"` - CustomerID string `protobuf:"bytes,3,opt,name=customerID,proto3" json:"customerID"` - BundleUUID string `protobuf:"bytes,4,opt,name=bundleUUID,proto3" json:"bundleUUID"` - Status uint64 `protobuf:"varint,5,opt,name=status,proto3" json:"status"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` + OrderNo string `protobuf:"bytes,2,opt,name=orderNo,proto3" json:"orderNo,omitempty"` + CustomerID string `protobuf:"bytes,3,opt,name=customerID,proto3" json:"customerID,omitempty"` + BundleUUID string `protobuf:"bytes,4,opt,name=bundleUUID,proto3" json:"bundleUUID,omitempty"` + Status uint64 `protobuf:"varint,5,opt,name=status,proto3" json:"status,omitempty"` } func (x *OrderRecordsDetailRequest) Reset() { *x = OrderRecordsDetailRequest{} - mi := &file_pb_bundle_proto_msgTypes[32] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *OrderRecordsDetailRequest) String() string { @@ -3354,7 +3452,7 @@ func (*OrderRecordsDetailRequest) ProtoMessage() {} func (x *OrderRecordsDetailRequest) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[32] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3405,18 +3503,21 @@ func (x *OrderRecordsDetailRequest) GetStatus() uint64 { } type OrderRecordsDetailResponse struct { - state protoimpl.MessageState `protogen:"open.v1"` - OrderRecord *OrderRecord `protobuf:"bytes,1,opt,name=orderRecord,proto3" json:"orderRecord"` - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OrderRecord *OrderRecord `protobuf:"bytes,1,opt,name=orderRecord,proto3" json:"orderRecord,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` } func (x *OrderRecordsDetailResponse) Reset() { *x = OrderRecordsDetailResponse{} - mi := &file_pb_bundle_proto_msgTypes[33] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *OrderRecordsDetailResponse) String() string { @@ -3427,7 +3528,7 @@ func (*OrderRecordsDetailResponse) ProtoMessage() {} func (x *OrderRecordsDetailResponse) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[33] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3458,26 +3559,29 @@ func (x *OrderRecordsDetailResponse) GetMsg() string { // 增值套餐 type ValueAddBundleProfile struct { - state protoimpl.MessageState `protogen:"open.v1"` - Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` - Num int32 `protobuf:"varint,2,opt,name=num,proto3" json:"num"` - OriginalPrice float32 `protobuf:"fixed32,3,opt,name=originalPrice,proto3" json:"originalPrice"` - DiscountPrice float32 `protobuf:"fixed32,4,opt,name=discountPrice,proto3" json:"discountPrice"` - TotalPrice float32 `protobuf:"fixed32,6,opt,name=totalPrice,proto3" json:"totalPrice"` - SavedAmount float32 `protobuf:"fixed32,7,opt,name=savedAmount,proto3" json:"savedAmount"` - DiscountPriceStatus bool `protobuf:"varint,8,opt,name=discountPriceStatus,proto3" json:"discountPriceStatus"` - Choose bool `protobuf:"varint,9,opt,name=choose,proto3" json:"choose"` - Status bool `protobuf:"varint,10,opt,name=status,proto3" json:"status"` - AddBundleCommonUid string `protobuf:"bytes,11,opt,name=addBundleCommonUid,proto3" json:"addBundleCommonUid"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` + Num int32 `protobuf:"varint,2,opt,name=num,proto3" json:"num,omitempty"` + OriginalPrice float32 `protobuf:"fixed32,3,opt,name=originalPrice,proto3" json:"originalPrice,omitempty"` + DiscountPrice float32 `protobuf:"fixed32,4,opt,name=discountPrice,proto3" json:"discountPrice,omitempty"` + TotalPrice float32 `protobuf:"fixed32,6,opt,name=totalPrice,proto3" json:"totalPrice,omitempty"` + SavedAmount float32 `protobuf:"fixed32,7,opt,name=savedAmount,proto3" json:"savedAmount,omitempty"` + DiscountPriceStatus bool `protobuf:"varint,8,opt,name=discountPriceStatus,proto3" json:"discountPriceStatus,omitempty"` + Choose bool `protobuf:"varint,9,opt,name=choose,proto3" json:"choose,omitempty"` + Status bool `protobuf:"varint,10,opt,name=status,proto3" json:"status,omitempty"` + AddBundleCommonUid string `protobuf:"bytes,11,opt,name=addBundleCommonUid,proto3" json:"addBundleCommonUid,omitempty"` } func (x *ValueAddBundleProfile) Reset() { *x = ValueAddBundleProfile{} - mi := &file_pb_bundle_proto_msgTypes[34] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *ValueAddBundleProfile) String() string { @@ -3488,7 +3592,7 @@ func (*ValueAddBundleProfile) ProtoMessage() {} func (x *ValueAddBundleProfile) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[34] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3574,17 +3678,20 @@ func (x *ValueAddBundleProfile) GetAddBundleCommonUid() string { } type CreateValueAddBundleRequest struct { - state protoimpl.MessageState `protogen:"open.v1"` - Num int32 `protobuf:"varint,1,opt,name=num,proto3" json:"num"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Num int32 `protobuf:"varint,1,opt,name=num,proto3" json:"num,omitempty"` } func (x *CreateValueAddBundleRequest) Reset() { *x = CreateValueAddBundleRequest{} - mi := &file_pb_bundle_proto_msgTypes[35] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *CreateValueAddBundleRequest) String() string { @@ -3595,7 +3702,7 @@ func (*CreateValueAddBundleRequest) ProtoMessage() {} func (x *CreateValueAddBundleRequest) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[35] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3618,20 +3725,23 @@ func (x *CreateValueAddBundleRequest) GetNum() int32 { } type CreateValueAddBundleResponse struct { - state protoimpl.MessageState `protogen:"open.v1"` - Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` - TotalPrice float32 `protobuf:"fixed32,2,opt,name=totalPrice,proto3" json:"totalPrice"` - SavedAmount float32 `protobuf:"fixed32,3,opt,name=savedAmount,proto3" json:"savedAmount"` - Msg string `protobuf:"bytes,4,opt,name=msg,proto3" json:"msg"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` + TotalPrice float32 `protobuf:"fixed32,2,opt,name=totalPrice,proto3" json:"totalPrice,omitempty"` + SavedAmount float32 `protobuf:"fixed32,3,opt,name=savedAmount,proto3" json:"savedAmount,omitempty"` + Msg string `protobuf:"bytes,4,opt,name=msg,proto3" json:"msg,omitempty"` } func (x *CreateValueAddBundleResponse) Reset() { *x = CreateValueAddBundleResponse{} - mi := &file_pb_bundle_proto_msgTypes[36] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *CreateValueAddBundleResponse) String() string { @@ -3642,7 +3752,7 @@ func (*CreateValueAddBundleResponse) ProtoMessage() {} func (x *CreateValueAddBundleResponse) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[36] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3687,19 +3797,22 @@ func (x *CreateValueAddBundleResponse) GetMsg() string { // 增值套餐列表请求 type ValueAddBundleListRequest struct { - state protoimpl.MessageState `protogen:"open.v1"` - UserId int32 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId"` - BundleUuid string `protobuf:"bytes,2,opt,name=bundleUuid,proto3" json:"bundleUuid"` - PriceType int32 `protobuf:"varint,3,opt,name=priceType,proto3" json:"priceType"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId int32 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` + BundleUuid string `protobuf:"bytes,2,opt,name=bundleUuid,proto3" json:"bundleUuid,omitempty"` + PriceType int32 `protobuf:"varint,3,opt,name=priceType,proto3" json:"priceType,omitempty"` } func (x *ValueAddBundleListRequest) Reset() { *x = ValueAddBundleListRequest{} - mi := &file_pb_bundle_proto_msgTypes[37] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *ValueAddBundleListRequest) String() string { @@ -3710,7 +3823,7 @@ func (*ValueAddBundleListRequest) ProtoMessage() {} func (x *ValueAddBundleListRequest) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[37] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3747,24 +3860,27 @@ func (x *ValueAddBundleListRequest) GetPriceType() int32 { } type ValueAddBundleListResponse struct { - state protoimpl.MessageState `protogen:"open.v1"` - OriginalPrice float32 `protobuf:"fixed32,1,opt,name=originalPrice,proto3" json:"originalPrice"` - Total int32 `protobuf:"varint,2,opt,name=total,proto3" json:"total"` - Data []*ValueAddBundleProfile `protobuf:"bytes,3,rep,name=data,proto3" json:"data"` - Status bool `protobuf:"varint,4,opt,name=status,proto3" json:"status"` - Num int32 `protobuf:"varint,5,opt,name=num,proto3" json:"num"` - Price float32 `protobuf:"fixed32,6,opt,name=price,proto3" json:"price"` - OrderNo bool `protobuf:"varint,7,opt,name=orderNo,proto3" json:"orderNo"` - Msg string `protobuf:"bytes,8,opt,name=msg,proto3" json:"msg"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OriginalPrice float32 `protobuf:"fixed32,1,opt,name=originalPrice,proto3" json:"originalPrice,omitempty"` + Total int32 `protobuf:"varint,2,opt,name=total,proto3" json:"total,omitempty"` + Data []*ValueAddBundleProfile `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty"` + Status bool `protobuf:"varint,4,opt,name=status,proto3" json:"status,omitempty"` + Num int32 `protobuf:"varint,5,opt,name=num,proto3" json:"num,omitempty"` + Price float32 `protobuf:"fixed32,6,opt,name=price,proto3" json:"price,omitempty"` + OrderNo bool `protobuf:"varint,7,opt,name=orderNo,proto3" json:"orderNo,omitempty"` + Msg string `protobuf:"bytes,8,opt,name=msg,proto3" json:"msg,omitempty"` } func (x *ValueAddBundleListResponse) Reset() { *x = ValueAddBundleListResponse{} - mi := &file_pb_bundle_proto_msgTypes[38] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *ValueAddBundleListResponse) String() string { @@ -3775,7 +3891,7 @@ func (*ValueAddBundleListResponse) ProtoMessage() {} func (x *ValueAddBundleListResponse) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[38] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3847,17 +3963,20 @@ func (x *ValueAddBundleListResponse) GetMsg() string { } type ValueAddBundleDetailRequest struct { - state protoimpl.MessageState `protogen:"open.v1"` - Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` } func (x *ValueAddBundleDetailRequest) Reset() { *x = ValueAddBundleDetailRequest{} - mi := &file_pb_bundle_proto_msgTypes[39] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *ValueAddBundleDetailRequest) String() string { @@ -3868,7 +3987,7 @@ func (*ValueAddBundleDetailRequest) ProtoMessage() {} func (x *ValueAddBundleDetailRequest) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[39] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3891,19 +4010,22 @@ func (x *ValueAddBundleDetailRequest) GetUuid() string { } type ValueAddBundleDetailResponse struct { - state protoimpl.MessageState `protogen:"open.v1"` - Data *ValueAddBundleProfile `protobuf:"bytes,1,opt,name=data,proto3" json:"data"` - PayTime string `protobuf:"bytes,2,opt,name=payTime,proto3" json:"payTime"` - Msg string `protobuf:"bytes,3,opt,name=msg,proto3" json:"msg"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Data *ValueAddBundleProfile `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` + PayTime string `protobuf:"bytes,2,opt,name=payTime,proto3" json:"payTime,omitempty"` + Msg string `protobuf:"bytes,3,opt,name=msg,proto3" json:"msg,omitempty"` } func (x *ValueAddBundleDetailResponse) Reset() { *x = ValueAddBundleDetailResponse{} - mi := &file_pb_bundle_proto_msgTypes[40] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *ValueAddBundleDetailResponse) String() string { @@ -3914,7 +4036,7 @@ func (*ValueAddBundleDetailResponse) ProtoMessage() {} func (x *ValueAddBundleDetailResponse) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[40] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3951,17 +4073,20 @@ func (x *ValueAddBundleDetailResponse) GetMsg() string { } type FinancialConfirmationRequest struct { - state protoimpl.MessageState `protogen:"open.v1"` - OrderNo string `protobuf:"bytes,1,opt,name=orderNo,proto3" json:"orderNo"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OrderNo string `protobuf:"bytes,1,opt,name=orderNo,proto3" json:"orderNo,omitempty"` } func (x *FinancialConfirmationRequest) Reset() { *x = FinancialConfirmationRequest{} - mi := &file_pb_bundle_proto_msgTypes[41] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *FinancialConfirmationRequest) String() string { @@ -3972,7 +4097,7 @@ func (*FinancialConfirmationRequest) ProtoMessage() {} func (x *FinancialConfirmationRequest) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[41] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3997,20 +4122,23 @@ func (x *FinancialConfirmationRequest) GetOrderNo() string { // ****************************************************新增值服务*********************** // 增值服务 type ValueAddService struct { - state protoimpl.MessageState `protogen:"open.v1"` - Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` - ServiceName string `protobuf:"bytes,2,opt,name=serviceName,proto3" json:"serviceName"` //服务名称 - ServiceType int32 `protobuf:"varint,3,opt,name=serviceType,proto3" json:"serviceType"` - ServiceLang []*ValueAddServiceLang `protobuf:"bytes,4,rep,name=serviceLang,proto3" json:"serviceLang"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` + ServiceName string `protobuf:"bytes,2,opt,name=serviceName,proto3" json:"serviceName,omitempty"` //服务名称 + ServiceType int32 `protobuf:"varint,3,opt,name=serviceType,proto3" json:"serviceType,omitempty"` + ServiceLang []*ValueAddServiceLang `protobuf:"bytes,4,rep,name=serviceLang,proto3" json:"serviceLang,omitempty"` } func (x *ValueAddService) Reset() { *x = ValueAddService{} - mi := &file_pb_bundle_proto_msgTypes[42] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *ValueAddService) String() string { @@ -4021,7 +4149,7 @@ func (*ValueAddService) ProtoMessage() {} func (x *ValueAddService) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[42] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4065,27 +4193,30 @@ func (x *ValueAddService) GetServiceLang() []*ValueAddServiceLang { } type ValueAddServiceLang struct { - state protoimpl.MessageState `protogen:"open.v1"` - Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` - ServiceName string `protobuf:"bytes,2,opt,name=serviceName,proto3" json:"serviceName"` //服务名称 - ServiceType int32 `protobuf:"varint,3,opt,name=serviceType,proto3" json:"serviceType"` - PriceMode int32 `protobuf:"varint,4,opt,name=priceMode,proto3" json:"priceMode"` - OriginalPrice string `protobuf:"bytes,5,opt,name=originalPrice,proto3" json:"originalPrice"` - Unit string `protobuf:"bytes,6,opt,name=unit,proto3" json:"unit"` - PriceType int64 `protobuf:"varint,7,opt,name=priceType,proto3" json:"priceType"` - Language string `protobuf:"bytes,8,opt,name=language,proto3" json:"language"` - CreatedAt string `protobuf:"bytes,9,opt,name=createdAt,proto3" json:"createdAt"` - UpdatedAt string `protobuf:"bytes,10,opt,name=updatedAt,proto3" json:"updatedAt"` - Options []*ValueAddPriceOptions `protobuf:"bytes,12,rep,name=options,proto3" json:"options"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` + ServiceName string `protobuf:"bytes,2,opt,name=serviceName,proto3" json:"serviceName,omitempty"` //服务名称 + ServiceType int32 `protobuf:"varint,3,opt,name=serviceType,proto3" json:"serviceType,omitempty"` + PriceMode int32 `protobuf:"varint,4,opt,name=priceMode,proto3" json:"priceMode,omitempty"` + OriginalPrice string `protobuf:"bytes,5,opt,name=originalPrice,proto3" json:"originalPrice,omitempty"` + Unit string `protobuf:"bytes,6,opt,name=unit,proto3" json:"unit,omitempty"` + PriceType int64 `protobuf:"varint,7,opt,name=priceType,proto3" json:"priceType,omitempty"` + Language string `protobuf:"bytes,8,opt,name=language,proto3" json:"language,omitempty"` + CreatedAt string `protobuf:"bytes,9,opt,name=createdAt,proto3" json:"createdAt,omitempty"` + UpdatedAt string `protobuf:"bytes,10,opt,name=updatedAt,proto3" json:"updatedAt,omitempty"` + Options []*ValueAddPriceOptions `protobuf:"bytes,12,rep,name=options,proto3" json:"options,omitempty"` } func (x *ValueAddServiceLang) Reset() { *x = ValueAddServiceLang{} - mi := &file_pb_bundle_proto_msgTypes[43] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *ValueAddServiceLang) String() string { @@ -4096,7 +4227,7 @@ func (*ValueAddServiceLang) ProtoMessage() {} func (x *ValueAddServiceLang) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[43] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4190,21 +4321,24 @@ func (x *ValueAddServiceLang) GetOptions() []*ValueAddPriceOptions { // 增值服务价格选项 type ValueAddPriceOptions struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id"` - Num int32 `protobuf:"varint,2,opt,name=num,proto3" json:"num"` - Symbol string `protobuf:"bytes,3,opt,name=symbol,proto3" json:"symbol"` - Price string `protobuf:"bytes,4,opt,name=price,proto3" json:"price"` - SaveAmount string `protobuf:"bytes,5,opt,name=saveAmount,proto3" json:"saveAmount"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Num int32 `protobuf:"varint,2,opt,name=num,proto3" json:"num,omitempty"` + Symbol string `protobuf:"bytes,3,opt,name=symbol,proto3" json:"symbol,omitempty"` + Price string `protobuf:"bytes,4,opt,name=price,proto3" json:"price,omitempty"` + SaveAmount string `protobuf:"bytes,5,opt,name=saveAmount,proto3" json:"saveAmount,omitempty"` } func (x *ValueAddPriceOptions) Reset() { *x = ValueAddPriceOptions{} - mi := &file_pb_bundle_proto_msgTypes[44] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *ValueAddPriceOptions) String() string { @@ -4215,7 +4349,7 @@ func (*ValueAddPriceOptions) ProtoMessage() {} func (x *ValueAddPriceOptions) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[44] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4267,20 +4401,23 @@ func (x *ValueAddPriceOptions) GetSaveAmount() string { // 增值服务列表 type ValueAddServiceListRequest struct { - state protoimpl.MessageState `protogen:"open.v1"` - Page int32 `protobuf:"varint,1,opt,name=page,proto3" json:"page"` - PageSize int32 `protobuf:"varint,2,opt,name=pageSize,proto3" json:"pageSize"` - Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name"` - Language string `protobuf:"bytes,4,opt,name=language,proto3" json:"language"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Page int32 `protobuf:"varint,1,opt,name=page,proto3" json:"page,omitempty"` + PageSize int32 `protobuf:"varint,2,opt,name=pageSize,proto3" json:"pageSize,omitempty"` + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` + Language string `protobuf:"bytes,4,opt,name=language,proto3" json:"language,omitempty"` } func (x *ValueAddServiceListRequest) Reset() { *x = ValueAddServiceListRequest{} - mi := &file_pb_bundle_proto_msgTypes[45] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *ValueAddServiceListRequest) String() string { @@ -4291,7 +4428,7 @@ func (*ValueAddServiceListRequest) ProtoMessage() {} func (x *ValueAddServiceListRequest) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[45] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4335,19 +4472,22 @@ func (x *ValueAddServiceListRequest) GetLanguage() string { } type ValueAddServiceListResponse struct { - state protoimpl.MessageState `protogen:"open.v1"` - Total int32 `protobuf:"varint,1,opt,name=total,proto3" json:"total"` - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg"` - ValueAddServiceList []*ValueAddService `protobuf:"bytes,3,rep,name=valueAddServiceList,proto3" json:"valueAddServiceList"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Total int32 `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + ValueAddServiceList []*ValueAddService `protobuf:"bytes,3,rep,name=valueAddServiceList,proto3" json:"valueAddServiceList,omitempty"` } func (x *ValueAddServiceListResponse) Reset() { *x = ValueAddServiceListResponse{} - mi := &file_pb_bundle_proto_msgTypes[46] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[46] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *ValueAddServiceListResponse) String() string { @@ -4358,7 +4498,7 @@ func (*ValueAddServiceListResponse) ProtoMessage() {} func (x *ValueAddServiceListResponse) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[46] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4396,18 +4536,21 @@ func (x *ValueAddServiceListResponse) GetValueAddServiceList() []*ValueAddServic // 增值服务详情 type ValueAddServiceDetailRequest struct { - state protoimpl.MessageState `protogen:"open.v1"` - Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` - Language string `protobuf:"bytes,2,opt,name=language,proto3" json:"language"` //语言 默认zh-CN, zh-CN zh-TW EN de-DE js-JP - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` + Language string `protobuf:"bytes,2,opt,name=language,proto3" json:"language,omitempty"` //语言 默认zh-CN, zh-CN zh-TW EN de-DE js-JP } func (x *ValueAddServiceDetailRequest) Reset() { *x = ValueAddServiceDetailRequest{} - mi := &file_pb_bundle_proto_msgTypes[47] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[47] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *ValueAddServiceDetailRequest) String() string { @@ -4418,7 +4561,7 @@ func (*ValueAddServiceDetailRequest) ProtoMessage() {} func (x *ValueAddServiceDetailRequest) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[47] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4448,18 +4591,21 @@ func (x *ValueAddServiceDetailRequest) GetLanguage() string { } type ValueAddServiceDetailResponse struct { - state protoimpl.MessageState `protogen:"open.v1"` - Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg"` - ValueAddService *ValueAddService `protobuf:"bytes,2,opt,name=valueAddService,proto3" json:"valueAddService"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"` + ValueAddService *ValueAddService `protobuf:"bytes,2,opt,name=valueAddService,proto3" json:"valueAddService,omitempty"` } func (x *ValueAddServiceDetailResponse) Reset() { *x = ValueAddServiceDetailResponse{} - mi := &file_pb_bundle_proto_msgTypes[48] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[48] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *ValueAddServiceDetailResponse) String() string { @@ -4470,7 +4616,7 @@ func (*ValueAddServiceDetailResponse) ProtoMessage() {} func (x *ValueAddServiceDetailResponse) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[48] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4500,19 +4646,22 @@ func (x *ValueAddServiceDetailResponse) GetValueAddService() *ValueAddService { } type CalculatePriceRequest struct { - state protoimpl.MessageState `protogen:"open.v1"` - Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` - Num int32 `protobuf:"varint,2,opt,name=num,proto3" json:"num"` - Language string `protobuf:"bytes,3,opt,name=language,proto3" json:"language"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` + Num int32 `protobuf:"varint,2,opt,name=num,proto3" json:"num,omitempty"` + Language string `protobuf:"bytes,3,opt,name=language,proto3" json:"language,omitempty"` } func (x *CalculatePriceRequest) Reset() { *x = CalculatePriceRequest{} - mi := &file_pb_bundle_proto_msgTypes[49] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[49] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *CalculatePriceRequest) String() string { @@ -4523,7 +4672,7 @@ func (*CalculatePriceRequest) ProtoMessage() {} func (x *CalculatePriceRequest) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[49] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4560,18 +4709,21 @@ func (x *CalculatePriceRequest) GetLanguage() string { } type CalculatePriceResponse struct { - state protoimpl.MessageState `protogen:"open.v1"` - Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg"` - Price float32 `protobuf:"fixed32,2,opt,name=price,proto3" json:"price"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"` + Price float32 `protobuf:"fixed32,2,opt,name=price,proto3" json:"price,omitempty"` } func (x *CalculatePriceResponse) Reset() { *x = CalculatePriceResponse{} - mi := &file_pb_bundle_proto_msgTypes[50] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[50] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *CalculatePriceResponse) String() string { @@ -4582,7 +4734,7 @@ func (*CalculatePriceResponse) ProtoMessage() {} func (x *CalculatePriceResponse) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[50] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4612,18 +4764,21 @@ func (x *CalculatePriceResponse) GetPrice() float32 { } type BatchGetValueAddServiceLangRequest struct { - state protoimpl.MessageState `protogen:"open.v1"` - Uuids []string `protobuf:"bytes,1,rep,name=uuids,proto3" json:"uuids"` - Language string `protobuf:"bytes,2,opt,name=language,proto3" json:"language"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uuids []string `protobuf:"bytes,1,rep,name=uuids,proto3" json:"uuids,omitempty"` + Language string `protobuf:"bytes,2,opt,name=language,proto3" json:"language,omitempty"` } func (x *BatchGetValueAddServiceLangRequest) Reset() { *x = BatchGetValueAddServiceLangRequest{} - mi := &file_pb_bundle_proto_msgTypes[51] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[51] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *BatchGetValueAddServiceLangRequest) String() string { @@ -4634,7 +4789,7 @@ func (*BatchGetValueAddServiceLangRequest) ProtoMessage() {} func (x *BatchGetValueAddServiceLangRequest) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[51] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4664,18 +4819,21 @@ func (x *BatchGetValueAddServiceLangRequest) GetLanguage() string { } type BatchGetValueAddServiceLangResponse struct { - state protoimpl.MessageState `protogen:"open.v1"` - Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg"` - ValueAddServiceLangList []*ValueAddServiceLang `protobuf:"bytes,2,rep,name=valueAddServiceLangList,proto3" json:"valueAddServiceLangList"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"` + ValueAddServiceLangList []*ValueAddServiceLang `protobuf:"bytes,2,rep,name=valueAddServiceLangList,proto3" json:"valueAddServiceLangList,omitempty"` } func (x *BatchGetValueAddServiceLangResponse) Reset() { *x = BatchGetValueAddServiceLangResponse{} - mi := &file_pb_bundle_proto_msgTypes[52] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[52] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *BatchGetValueAddServiceLangResponse) String() string { @@ -4686,7 +4844,7 @@ func (*BatchGetValueAddServiceLangResponse) ProtoMessage() {} func (x *BatchGetValueAddServiceLangResponse) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[52] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4716,29 +4874,32 @@ func (x *BatchGetValueAddServiceLangResponse) GetValueAddServiceLangList() []*Va } type BundleExtendRequest struct { - state protoimpl.MessageState `protogen:"open.v1"` - UserId int64 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId"` - AccountAdditional uint32 `protobuf:"varint,2,opt,name=accountAdditional,proto3" json:"accountAdditional"` - VideoAdditional uint32 `protobuf:"varint,3,opt,name=videoAdditional,proto3" json:"videoAdditional"` - ImagesAdditional uint32 `protobuf:"varint,4,opt,name=imagesAdditional,proto3" json:"imagesAdditional"` - DataAdditional uint32 `protobuf:"varint,5,opt,name=dataAdditional,proto3" json:"dataAdditional"` - AvailableDurationAdditional uint32 `protobuf:"varint,6,opt,name=availableDurationAdditional,proto3" json:"availableDurationAdditional"` - TimeUnit uint32 `protobuf:"varint,7,opt,name=timeUnit,proto3" json:"timeUnit"` // 1 日 2 月 3年 - Remark string `protobuf:"bytes,8,opt,name=remark,proto3" json:"remark"` - AssociatedorderNumber string `protobuf:"bytes,9,opt,name=associatedorderNumber,proto3" json:"associatedorderNumber"` - OperatorId uint64 `protobuf:"varint,10,opt,name=operatorId,proto3" json:"operatorId"` - OperatorName string `protobuf:"bytes,11,opt,name=operatorName,proto3" json:"operatorName"` - OperatorPhoneNumber string `protobuf:"bytes,12,opt,name=operatorPhoneNumber,proto3" json:"operatorPhoneNumber"` - Type int32 `protobuf:"varint,13,opt,name=type,proto3" json:"type"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId int64 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` + AccountAdditional uint32 `protobuf:"varint,2,opt,name=accountAdditional,proto3" json:"accountAdditional,omitempty"` + VideoAdditional uint32 `protobuf:"varint,3,opt,name=videoAdditional,proto3" json:"videoAdditional,omitempty"` + ImagesAdditional uint32 `protobuf:"varint,4,opt,name=imagesAdditional,proto3" json:"imagesAdditional,omitempty"` + DataAdditional uint32 `protobuf:"varint,5,opt,name=dataAdditional,proto3" json:"dataAdditional,omitempty"` + AvailableDurationAdditional uint32 `protobuf:"varint,6,opt,name=availableDurationAdditional,proto3" json:"availableDurationAdditional,omitempty"` + TimeUnit uint32 `protobuf:"varint,7,opt,name=timeUnit,proto3" json:"timeUnit,omitempty"` // 1 日 2 月 3年 + Remark string `protobuf:"bytes,8,opt,name=remark,proto3" json:"remark,omitempty"` + AssociatedorderNumber string `protobuf:"bytes,9,opt,name=associatedorderNumber,proto3" json:"associatedorderNumber,omitempty"` + OperatorId uint64 `protobuf:"varint,10,opt,name=operatorId,proto3" json:"operatorId,omitempty"` + OperatorName string `protobuf:"bytes,11,opt,name=operatorName,proto3" json:"operatorName,omitempty"` + OperatorPhoneNumber string `protobuf:"bytes,12,opt,name=operatorPhoneNumber,proto3" json:"operatorPhoneNumber,omitempty"` + Type int32 `protobuf:"varint,13,opt,name=type,proto3" json:"type,omitempty"` } func (x *BundleExtendRequest) Reset() { *x = BundleExtendRequest{} - mi := &file_pb_bundle_proto_msgTypes[53] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[53] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *BundleExtendRequest) String() string { @@ -4749,7 +4910,7 @@ func (*BundleExtendRequest) ProtoMessage() {} func (x *BundleExtendRequest) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[53] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4856,16 +5017,18 @@ func (x *BundleExtendRequest) GetType() int32 { } type BundleExtendResponse struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } func (x *BundleExtendResponse) Reset() { *x = BundleExtendResponse{} - mi := &file_pb_bundle_proto_msgTypes[54] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[54] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *BundleExtendResponse) String() string { @@ -4876,7 +5039,7 @@ func (*BundleExtendResponse) ProtoMessage() {} func (x *BundleExtendResponse) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[54] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4892,24 +5055,27 @@ func (*BundleExtendResponse) Descriptor() ([]byte, []int) { } type BundleExtendRecordsListRequest struct { - state protoimpl.MessageState `protogen:"open.v1"` - Page int32 `protobuf:"varint,1,opt,name=page,proto3" json:"page"` - PageSize int32 `protobuf:"varint,2,opt,name=pageSize,proto3" json:"pageSize"` - User string `protobuf:"bytes,3,opt,name=user,proto3" json:"user"` - Operator string `protobuf:"bytes,4,opt,name=operator,proto3" json:"operator"` - StartTime uint64 `protobuf:"varint,5,opt,name=startTime,proto3" json:"startTime"` - EndTime uint64 `protobuf:"varint,6,opt,name=endTime,proto3" json:"endTime"` - Type uint32 `protobuf:"varint,7,opt,name=type,proto3" json:"type"` - AssociatedOrderNumber string `protobuf:"bytes,8,opt,name=associatedOrderNumber,proto3" json:"associatedOrderNumber"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Page int32 `protobuf:"varint,1,opt,name=page,proto3" json:"page,omitempty"` + PageSize int32 `protobuf:"varint,2,opt,name=pageSize,proto3" json:"pageSize,omitempty"` + User string `protobuf:"bytes,3,opt,name=user,proto3" json:"user,omitempty"` + Operator string `protobuf:"bytes,4,opt,name=operator,proto3" json:"operator,omitempty"` + StartTime uint64 `protobuf:"varint,5,opt,name=startTime,proto3" json:"startTime,omitempty"` + EndTime uint64 `protobuf:"varint,6,opt,name=endTime,proto3" json:"endTime,omitempty"` + Type uint32 `protobuf:"varint,7,opt,name=type,proto3" json:"type,omitempty"` + AssociatedOrderNumber string `protobuf:"bytes,8,opt,name=associatedOrderNumber,proto3" json:"associatedOrderNumber,omitempty"` } func (x *BundleExtendRecordsListRequest) Reset() { *x = BundleExtendRecordsListRequest{} - mi := &file_pb_bundle_proto_msgTypes[55] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[55] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *BundleExtendRecordsListRequest) String() string { @@ -4920,7 +5086,7 @@ func (*BundleExtendRecordsListRequest) ProtoMessage() {} func (x *BundleExtendRecordsListRequest) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[55] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4992,18 +5158,21 @@ func (x *BundleExtendRecordsListRequest) GetAssociatedOrderNumber() string { } type BundleExtendRecordsListResponse struct { - state protoimpl.MessageState `protogen:"open.v1"` - Total int64 `protobuf:"varint,1,opt,name=total,proto3" json:"total"` - Data []*BundleExtendRecordItem `protobuf:"bytes,2,rep,name=data,proto3" json:"data"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Total int64 `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"` + Data []*BundleExtendRecordItem `protobuf:"bytes,2,rep,name=data,proto3" json:"data,omitempty"` } func (x *BundleExtendRecordsListResponse) Reset() { *x = BundleExtendRecordsListResponse{} - mi := &file_pb_bundle_proto_msgTypes[56] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[56] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *BundleExtendRecordsListResponse) String() string { @@ -5014,7 +5183,7 @@ func (*BundleExtendRecordsListResponse) ProtoMessage() {} func (x *BundleExtendRecordsListResponse) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[56] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5044,30 +5213,33 @@ func (x *BundleExtendRecordsListResponse) GetData() []*BundleExtendRecordItem { } type BundleExtendRecordItem struct { - state protoimpl.MessageState `protogen:"open.v1"` - UserName string `protobuf:"bytes,1,opt,name=userName,proto3" json:"userName"` - UserPhoneNumber string `protobuf:"bytes,2,opt,name=userPhoneNumber,proto3" json:"userPhoneNumber"` - AccountAdditional uint32 `protobuf:"varint,3,opt,name=accountAdditional,proto3" json:"accountAdditional"` - VideoAdditional uint32 `protobuf:"varint,4,opt,name=videoAdditional,proto3" json:"videoAdditional"` - ImagesAdditional uint32 `protobuf:"varint,5,opt,name=imagesAdditional,proto3" json:"imagesAdditional"` - DataAdditional uint32 `protobuf:"varint,6,opt,name=dataAdditional,proto3" json:"dataAdditional"` - AvailableDurationAdditional uint32 `protobuf:"varint,7,opt,name=availableDurationAdditional,proto3" json:"availableDurationAdditional"` - Type int32 `protobuf:"varint,8,opt,name=type,proto3" json:"type"` - CreatedAt uint64 `protobuf:"varint,9,opt,name=createdAt,proto3" json:"createdAt"` - Remark string `protobuf:"bytes,10,opt,name=remark,proto3" json:"remark"` - AssociatedOrderNumber string `protobuf:"bytes,11,opt,name=associatedOrderNumber,proto3" json:"associatedOrderNumber"` - TimeUnit uint32 `protobuf:"varint,12,opt,name=timeUnit,proto3" json:"timeUnit"` - OperatorName string `protobuf:"bytes,13,opt,name=operatorName,proto3" json:"operatorName"` - OperatorPhoneNumber string `protobuf:"bytes,14,opt,name=operatorPhoneNumber,proto3" json:"operatorPhoneNumber"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserName string `protobuf:"bytes,1,opt,name=userName,proto3" json:"userName,omitempty"` + UserPhoneNumber string `protobuf:"bytes,2,opt,name=userPhoneNumber,proto3" json:"userPhoneNumber,omitempty"` + AccountAdditional uint32 `protobuf:"varint,3,opt,name=accountAdditional,proto3" json:"accountAdditional,omitempty"` + VideoAdditional uint32 `protobuf:"varint,4,opt,name=videoAdditional,proto3" json:"videoAdditional,omitempty"` + ImagesAdditional uint32 `protobuf:"varint,5,opt,name=imagesAdditional,proto3" json:"imagesAdditional,omitempty"` + DataAdditional uint32 `protobuf:"varint,6,opt,name=dataAdditional,proto3" json:"dataAdditional,omitempty"` + AvailableDurationAdditional uint32 `protobuf:"varint,7,opt,name=availableDurationAdditional,proto3" json:"availableDurationAdditional,omitempty"` + Type int32 `protobuf:"varint,8,opt,name=type,proto3" json:"type,omitempty"` + CreatedAt uint64 `protobuf:"varint,9,opt,name=createdAt,proto3" json:"createdAt,omitempty"` + Remark string `protobuf:"bytes,10,opt,name=remark,proto3" json:"remark,omitempty"` + AssociatedOrderNumber string `protobuf:"bytes,11,opt,name=associatedOrderNumber,proto3" json:"associatedOrderNumber,omitempty"` + TimeUnit uint32 `protobuf:"varint,12,opt,name=timeUnit,proto3" json:"timeUnit,omitempty"` + OperatorName string `protobuf:"bytes,13,opt,name=operatorName,proto3" json:"operatorName,omitempty"` + OperatorPhoneNumber string `protobuf:"bytes,14,opt,name=operatorPhoneNumber,proto3" json:"operatorPhoneNumber,omitempty"` } func (x *BundleExtendRecordItem) Reset() { *x = BundleExtendRecordItem{} - mi := &file_pb_bundle_proto_msgTypes[57] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[57] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *BundleExtendRecordItem) String() string { @@ -5078,7 +5250,7 @@ func (*BundleExtendRecordItem) ProtoMessage() {} func (x *BundleExtendRecordItem) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[57] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5192,24 +5364,27 @@ func (x *BundleExtendRecordItem) GetOperatorPhoneNumber() string { } type GetBundleBalanceListReq struct { - state protoimpl.MessageState `protogen:"open.v1"` - UserName string `protobuf:"bytes,1,opt,name=userName,proto3" json:"userName"` - Status int32 `protobuf:"varint,2,opt,name=status,proto3" json:"status"` - BundleName string `protobuf:"bytes,3,opt,name=bundleName,proto3" json:"bundleName"` - Bought int32 `protobuf:"varint,4,opt,name=bought,proto3" json:"bought"` - ExpiredTimeStart int64 `protobuf:"varint,5,opt,name=expiredTimeStart,proto3" json:"expiredTimeStart"` - ExpiredTimeEnd int64 `protobuf:"varint,6,opt,name=expiredTimeEnd,proto3" json:"expiredTimeEnd"` - Page int32 `protobuf:"varint,7,opt,name=page,proto3" json:"page"` - PageSize int32 `protobuf:"varint,8,opt,name=pageSize,proto3" json:"pageSize"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserName string `protobuf:"bytes,1,opt,name=userName,proto3" json:"userName,omitempty"` + Status int32 `protobuf:"varint,2,opt,name=status,proto3" json:"status,omitempty"` + BundleName string `protobuf:"bytes,3,opt,name=bundleName,proto3" json:"bundleName,omitempty"` + Bought int32 `protobuf:"varint,4,opt,name=bought,proto3" json:"bought,omitempty"` + ExpiredTimeStart int64 `protobuf:"varint,5,opt,name=expiredTimeStart,proto3" json:"expiredTimeStart,omitempty"` + ExpiredTimeEnd int64 `protobuf:"varint,6,opt,name=expiredTimeEnd,proto3" json:"expiredTimeEnd,omitempty"` + Page int32 `protobuf:"varint,7,opt,name=page,proto3" json:"page,omitempty"` + PageSize int32 `protobuf:"varint,8,opt,name=pageSize,proto3" json:"pageSize,omitempty"` } func (x *GetBundleBalanceListReq) Reset() { *x = GetBundleBalanceListReq{} - mi := &file_pb_bundle_proto_msgTypes[58] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[58] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *GetBundleBalanceListReq) String() string { @@ -5220,7 +5395,7 @@ func (*GetBundleBalanceListReq) ProtoMessage() {} func (x *GetBundleBalanceListReq) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[58] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5292,23 +5467,26 @@ func (x *GetBundleBalanceListReq) GetPageSize() int32 { } type GetBundleBalanceReq struct { - state protoimpl.MessageState `protogen:"open.v1"` - UserName string `protobuf:"bytes,1,opt,name=userName,proto3" json:"userName"` - Status int32 `protobuf:"varint,2,opt,name=status,proto3" json:"status"` - BundleName string `protobuf:"bytes,3,opt,name=bundleName,proto3" json:"bundleName"` - ExpiredTimeStart int64 `protobuf:"varint,4,opt,name=expiredTimeStart,proto3" json:"expiredTimeStart"` - ExpiredTimeEnd int64 `protobuf:"varint,5,opt,name=expiredTimeEnd,proto3" json:"expiredTimeEnd"` - Page int32 `protobuf:"varint,6,opt,name=page,proto3" json:"page"` - PageSize int32 `protobuf:"varint,7,opt,name=pageSize,proto3" json:"pageSize"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserName string `protobuf:"bytes,1,opt,name=userName,proto3" json:"userName,omitempty"` + Status int32 `protobuf:"varint,2,opt,name=status,proto3" json:"status,omitempty"` + BundleName string `protobuf:"bytes,3,opt,name=bundleName,proto3" json:"bundleName,omitempty"` + ExpiredTimeStart int64 `protobuf:"varint,4,opt,name=expiredTimeStart,proto3" json:"expiredTimeStart,omitempty"` + ExpiredTimeEnd int64 `protobuf:"varint,5,opt,name=expiredTimeEnd,proto3" json:"expiredTimeEnd,omitempty"` + Page int32 `protobuf:"varint,6,opt,name=page,proto3" json:"page,omitempty"` + PageSize int32 `protobuf:"varint,7,opt,name=pageSize,proto3" json:"pageSize,omitempty"` } func (x *GetBundleBalanceReq) Reset() { *x = GetBundleBalanceReq{} - mi := &file_pb_bundle_proto_msgTypes[59] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[59] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *GetBundleBalanceReq) String() string { @@ -5319,7 +5497,7 @@ func (*GetBundleBalanceReq) ProtoMessage() {} func (x *GetBundleBalanceReq) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[59] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5384,32 +5562,35 @@ func (x *GetBundleBalanceReq) GetPageSize() int32 { } type BundleBalanceItem struct { - state protoimpl.MessageState `protogen:"open.v1"` - UserId int32 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId"` - UserName string `protobuf:"bytes,2,opt,name=userName,proto3" json:"userName"` - UserPhoneNumber string `protobuf:"bytes,3,opt,name=userPhoneNumber,proto3" json:"userPhoneNumber"` - Status int32 `protobuf:"varint,4,opt,name=status,proto3" json:"status"` - BundleName string `protobuf:"bytes,5,opt,name=bundleName,proto3" json:"bundleName"` - ExpiredTime int64 `protobuf:"varint,6,opt,name=expiredTime,proto3" json:"expiredTime"` - AccountNumber int32 `protobuf:"varint,7,opt,name=accountNumber,proto3" json:"accountNumber"` - AccountConsumptionNumber int32 `protobuf:"varint,8,opt,name=accountConsumptionNumber,proto3" json:"accountConsumptionNumber"` - VideoNumber int32 `protobuf:"varint,9,opt,name=videoNumber,proto3" json:"videoNumber"` - VideoConsumptionNumber int32 `protobuf:"varint,10,opt,name=videoConsumptionNumber,proto3" json:"videoConsumptionNumber"` - ImageNumber int32 `protobuf:"varint,11,opt,name=imageNumber,proto3" json:"imageNumber"` - ImageConsumptionNumber int32 `protobuf:"varint,12,opt,name=imageConsumptionNumber,proto3" json:"imageConsumptionNumber"` - DataAnalysisNumber int32 `protobuf:"varint,13,opt,name=dataAnalysisNumber,proto3" json:"dataAnalysisNumber"` - DataAnalysisConsumptionNumber int32 `protobuf:"varint,14,opt,name=dataAnalysisConsumptionNumber,proto3" json:"dataAnalysisConsumptionNumber"` - ExpansionPacksNumber int32 `protobuf:"varint,15,opt,name=expansionPacksNumber,proto3" json:"expansionPacksNumber"` - Bought int32 `protobuf:"varint,16,opt,name=bought,proto3" json:"bought"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId int32 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` + UserName string `protobuf:"bytes,2,opt,name=userName,proto3" json:"userName,omitempty"` + UserPhoneNumber string `protobuf:"bytes,3,opt,name=userPhoneNumber,proto3" json:"userPhoneNumber,omitempty"` + Status int32 `protobuf:"varint,4,opt,name=status,proto3" json:"status,omitempty"` + BundleName string `protobuf:"bytes,5,opt,name=bundleName,proto3" json:"bundleName,omitempty"` + ExpiredTime int64 `protobuf:"varint,6,opt,name=expiredTime,proto3" json:"expiredTime,omitempty"` + AccountNumber int32 `protobuf:"varint,7,opt,name=accountNumber,proto3" json:"accountNumber,omitempty"` + AccountConsumptionNumber int32 `protobuf:"varint,8,opt,name=accountConsumptionNumber,proto3" json:"accountConsumptionNumber,omitempty"` + VideoNumber int32 `protobuf:"varint,9,opt,name=videoNumber,proto3" json:"videoNumber,omitempty"` + VideoConsumptionNumber int32 `protobuf:"varint,10,opt,name=videoConsumptionNumber,proto3" json:"videoConsumptionNumber,omitempty"` + ImageNumber int32 `protobuf:"varint,11,opt,name=imageNumber,proto3" json:"imageNumber,omitempty"` + ImageConsumptionNumber int32 `protobuf:"varint,12,opt,name=imageConsumptionNumber,proto3" json:"imageConsumptionNumber,omitempty"` + DataAnalysisNumber int32 `protobuf:"varint,13,opt,name=dataAnalysisNumber,proto3" json:"dataAnalysisNumber,omitempty"` + DataAnalysisConsumptionNumber int32 `protobuf:"varint,14,opt,name=dataAnalysisConsumptionNumber,proto3" json:"dataAnalysisConsumptionNumber,omitempty"` + ExpansionPacksNumber int32 `protobuf:"varint,15,opt,name=expansionPacksNumber,proto3" json:"expansionPacksNumber,omitempty"` + Bought int32 `protobuf:"varint,16,opt,name=bought,proto3" json:"bought,omitempty"` } func (x *BundleBalanceItem) Reset() { *x = BundleBalanceItem{} - mi := &file_pb_bundle_proto_msgTypes[60] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[60] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *BundleBalanceItem) String() string { @@ -5420,7 +5601,7 @@ func (*BundleBalanceItem) ProtoMessage() {} func (x *BundleBalanceItem) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[60] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5548,18 +5729,21 @@ func (x *BundleBalanceItem) GetBought() int32 { } type GetBundleBalanceListResp struct { - state protoimpl.MessageState `protogen:"open.v1"` - Total int64 `protobuf:"varint,1,opt,name=total,proto3" json:"total"` - Data []*BundleBalanceItem `protobuf:"bytes,2,rep,name=data,proto3" json:"data"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Total int64 `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"` + Data []*BundleBalanceItem `protobuf:"bytes,2,rep,name=data,proto3" json:"data,omitempty"` } func (x *GetBundleBalanceListResp) Reset() { *x = GetBundleBalanceListResp{} - mi := &file_pb_bundle_proto_msgTypes[61] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[61] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *GetBundleBalanceListResp) String() string { @@ -5570,7 +5754,7 @@ func (*GetBundleBalanceListResp) ProtoMessage() {} func (x *GetBundleBalanceListResp) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[61] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5600,27 +5784,30 @@ func (x *GetBundleBalanceListResp) GetData() []*BundleBalanceItem { } type CreateBundleBalanceReq struct { - state protoimpl.MessageState `protogen:"open.v1"` - UserId int32 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId"` - OrderUUID string `protobuf:"bytes,2,opt,name=orderUUID,proto3" json:"orderUUID"` - AccountNumber int32 `protobuf:"varint,3,opt,name=accountNumber,proto3" json:"accountNumber"` - AccountConsumptionNumber int32 `protobuf:"varint,4,opt,name=accountConsumptionNumber,proto3" json:"accountConsumptionNumber"` - VideoNumber int32 `protobuf:"varint,5,opt,name=videoNumber,proto3" json:"videoNumber"` - VideoConsumptionNumber int32 `protobuf:"varint,6,opt,name=videoConsumptionNumber,proto3" json:"videoConsumptionNumber"` - ImageNumber int32 `protobuf:"varint,7,opt,name=imageNumber,proto3" json:"imageNumber"` - ImageConsumptionNumber int32 `protobuf:"varint,8,opt,name=imageConsumptionNumber,proto3" json:"imageConsumptionNumber"` - DataAnalysisNumber int32 `protobuf:"varint,9,opt,name=dataAnalysisNumber,proto3" json:"dataAnalysisNumber"` - DataAnalysisConsumptionNumber int32 `protobuf:"varint,10,opt,name=dataAnalysisConsumptionNumber,proto3" json:"dataAnalysisConsumptionNumber"` - ExpansionPacksNumber int32 `protobuf:"varint,11,opt,name=expansionPacksNumber,proto3" json:"expansionPacksNumber"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId int32 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` + OrderUUID string `protobuf:"bytes,2,opt,name=orderUUID,proto3" json:"orderUUID,omitempty"` + AccountNumber int32 `protobuf:"varint,3,opt,name=accountNumber,proto3" json:"accountNumber,omitempty"` + AccountConsumptionNumber int32 `protobuf:"varint,4,opt,name=accountConsumptionNumber,proto3" json:"accountConsumptionNumber,omitempty"` + VideoNumber int32 `protobuf:"varint,5,opt,name=videoNumber,proto3" json:"videoNumber,omitempty"` + VideoConsumptionNumber int32 `protobuf:"varint,6,opt,name=videoConsumptionNumber,proto3" json:"videoConsumptionNumber,omitempty"` + ImageNumber int32 `protobuf:"varint,7,opt,name=imageNumber,proto3" json:"imageNumber,omitempty"` + ImageConsumptionNumber int32 `protobuf:"varint,8,opt,name=imageConsumptionNumber,proto3" json:"imageConsumptionNumber,omitempty"` + DataAnalysisNumber int32 `protobuf:"varint,9,opt,name=dataAnalysisNumber,proto3" json:"dataAnalysisNumber,omitempty"` + DataAnalysisConsumptionNumber int32 `protobuf:"varint,10,opt,name=dataAnalysisConsumptionNumber,proto3" json:"dataAnalysisConsumptionNumber,omitempty"` + ExpansionPacksNumber int32 `protobuf:"varint,11,opt,name=expansionPacksNumber,proto3" json:"expansionPacksNumber,omitempty"` } func (x *CreateBundleBalanceReq) Reset() { *x = CreateBundleBalanceReq{} - mi := &file_pb_bundle_proto_msgTypes[62] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[62] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *CreateBundleBalanceReq) String() string { @@ -5631,7 +5818,7 @@ func (*CreateBundleBalanceReq) ProtoMessage() {} func (x *CreateBundleBalanceReq) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[62] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5724,16 +5911,18 @@ func (x *CreateBundleBalanceReq) GetExpansionPacksNumber() int32 { } type CreateBundleBalanceResp struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } func (x *CreateBundleBalanceResp) Reset() { *x = CreateBundleBalanceResp{} - mi := &file_pb_bundle_proto_msgTypes[63] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[63] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *CreateBundleBalanceResp) String() string { @@ -5744,7 +5933,7 @@ func (*CreateBundleBalanceResp) ProtoMessage() {} func (x *CreateBundleBalanceResp) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[63] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5760,28 +5949,31 @@ func (*CreateBundleBalanceResp) Descriptor() ([]byte, []int) { } type AddBundleBalanceReq struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id"` - UserId int32 `protobuf:"varint,2,opt,name=userId,proto3" json:"userId"` - OrderUUID string `protobuf:"bytes,3,opt,name=orderUUID,proto3" json:"orderUUID"` - AccountNumber int32 `protobuf:"varint,4,opt,name=accountNumber,proto3" json:"accountNumber"` - AccountConsumptionNumber int32 `protobuf:"varint,5,opt,name=accountConsumptionNumber,proto3" json:"accountConsumptionNumber"` - VideoNumber int32 `protobuf:"varint,6,opt,name=videoNumber,proto3" json:"videoNumber"` - VideoConsumptionNumber int32 `protobuf:"varint,7,opt,name=videoConsumptionNumber,proto3" json:"videoConsumptionNumber"` - ImageNumber int32 `protobuf:"varint,8,opt,name=imageNumber,proto3" json:"imageNumber"` - ImageConsumptionNumber int32 `protobuf:"varint,9,opt,name=imageConsumptionNumber,proto3" json:"imageConsumptionNumber"` - DataAnalysisNumber int32 `protobuf:"varint,10,opt,name=dataAnalysisNumber,proto3" json:"dataAnalysisNumber"` - DataAnalysisConsumptionNumber int32 `protobuf:"varint,11,opt,name=dataAnalysisConsumptionNumber,proto3" json:"dataAnalysisConsumptionNumber"` - ExpansionPacksNumber int32 `protobuf:"varint,12,opt,name=expansionPacksNumber,proto3" json:"expansionPacksNumber"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + UserId int32 `protobuf:"varint,2,opt,name=userId,proto3" json:"userId,omitempty"` + OrderUUID string `protobuf:"bytes,3,opt,name=orderUUID,proto3" json:"orderUUID,omitempty"` + AccountNumber int32 `protobuf:"varint,4,opt,name=accountNumber,proto3" json:"accountNumber,omitempty"` + AccountConsumptionNumber int32 `protobuf:"varint,5,opt,name=accountConsumptionNumber,proto3" json:"accountConsumptionNumber,omitempty"` + VideoNumber int32 `protobuf:"varint,6,opt,name=videoNumber,proto3" json:"videoNumber,omitempty"` + VideoConsumptionNumber int32 `protobuf:"varint,7,opt,name=videoConsumptionNumber,proto3" json:"videoConsumptionNumber,omitempty"` + ImageNumber int32 `protobuf:"varint,8,opt,name=imageNumber,proto3" json:"imageNumber,omitempty"` + ImageConsumptionNumber int32 `protobuf:"varint,9,opt,name=imageConsumptionNumber,proto3" json:"imageConsumptionNumber,omitempty"` + DataAnalysisNumber int32 `protobuf:"varint,10,opt,name=dataAnalysisNumber,proto3" json:"dataAnalysisNumber,omitempty"` + DataAnalysisConsumptionNumber int32 `protobuf:"varint,11,opt,name=dataAnalysisConsumptionNumber,proto3" json:"dataAnalysisConsumptionNumber,omitempty"` + ExpansionPacksNumber int32 `protobuf:"varint,12,opt,name=expansionPacksNumber,proto3" json:"expansionPacksNumber,omitempty"` } func (x *AddBundleBalanceReq) Reset() { *x = AddBundleBalanceReq{} - mi := &file_pb_bundle_proto_msgTypes[64] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[64] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *AddBundleBalanceReq) String() string { @@ -5792,7 +5984,7 @@ func (*AddBundleBalanceReq) ProtoMessage() {} func (x *AddBundleBalanceReq) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[64] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5892,16 +6084,18 @@ func (x *AddBundleBalanceReq) GetExpansionPacksNumber() int32 { } type AddBundleBalanceResp struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } func (x *AddBundleBalanceResp) Reset() { *x = AddBundleBalanceResp{} - mi := &file_pb_bundle_proto_msgTypes[65] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[65] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *AddBundleBalanceResp) String() string { @@ -5912,7 +6106,7 @@ func (*AddBundleBalanceResp) ProtoMessage() {} func (x *AddBundleBalanceResp) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[65] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5928,26 +6122,29 @@ func (*AddBundleBalanceResp) Descriptor() ([]byte, []int) { } type GetUsedRecordListReq struct { - state protoimpl.MessageState `protogen:"open.v1"` - User string `protobuf:"bytes,1,opt,name=user,proto3" json:"user"` - Operator string `protobuf:"bytes,2,opt,name=operator,proto3" json:"operator"` - Account string `protobuf:"bytes,3,opt,name=account,proto3" json:"account"` - Platform int32 `protobuf:"varint,4,opt,name=platform,proto3" json:"platform"` - Type int32 `protobuf:"varint,5,opt,name=type,proto3" json:"type"` - Title string `protobuf:"bytes,6,opt,name=title,proto3" json:"title"` - SubmitTimeStart int64 `protobuf:"varint,7,opt,name=submitTimeStart,proto3" json:"submitTimeStart"` - SubmitTimeEnd int64 `protobuf:"varint,8,opt,name=submitTimeEnd,proto3" json:"submitTimeEnd"` - Page int32 `protobuf:"varint,9,opt,name=page,proto3" json:"page"` - PageSize int32 `protobuf:"varint,10,opt,name=pageSize,proto3" json:"pageSize"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + User string `protobuf:"bytes,1,opt,name=user,proto3" json:"user,omitempty"` + Operator string `protobuf:"bytes,2,opt,name=operator,proto3" json:"operator,omitempty"` + Account string `protobuf:"bytes,3,opt,name=account,proto3" json:"account,omitempty"` + Platform int32 `protobuf:"varint,4,opt,name=platform,proto3" json:"platform,omitempty"` + Type int32 `protobuf:"varint,5,opt,name=type,proto3" json:"type,omitempty"` + Title string `protobuf:"bytes,6,opt,name=title,proto3" json:"title,omitempty"` + SubmitTimeStart int64 `protobuf:"varint,7,opt,name=submitTimeStart,proto3" json:"submitTimeStart,omitempty"` + SubmitTimeEnd int64 `protobuf:"varint,8,opt,name=submitTimeEnd,proto3" json:"submitTimeEnd,omitempty"` + Page int32 `protobuf:"varint,9,opt,name=page,proto3" json:"page,omitempty"` + PageSize int32 `protobuf:"varint,10,opt,name=pageSize,proto3" json:"pageSize,omitempty"` } func (x *GetUsedRecordListReq) Reset() { *x = GetUsedRecordListReq{} - mi := &file_pb_bundle_proto_msgTypes[66] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[66] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *GetUsedRecordListReq) String() string { @@ -5958,7 +6155,7 @@ func (*GetUsedRecordListReq) ProtoMessage() {} func (x *GetUsedRecordListReq) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[66] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6044,18 +6241,21 @@ func (x *GetUsedRecordListReq) GetPageSize() int32 { } type GetUsedRecordListResp struct { - state protoimpl.MessageState `protogen:"open.v1"` - Total int64 `protobuf:"varint,1,opt,name=total,proto3" json:"total"` - Data []*WorkCastItem `protobuf:"bytes,2,rep,name=data,proto3" json:"data"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Total int64 `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"` + Data []*WorkCastItem `protobuf:"bytes,2,rep,name=data,proto3" json:"data,omitempty"` } func (x *GetUsedRecordListResp) Reset() { *x = GetUsedRecordListResp{} - mi := &file_pb_bundle_proto_msgTypes[67] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[67] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *GetUsedRecordListResp) String() string { @@ -6066,7 +6266,7 @@ func (*GetUsedRecordListResp) ProtoMessage() {} func (x *GetUsedRecordListResp) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[67] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6096,31 +6296,34 @@ func (x *GetUsedRecordListResp) GetData() []*WorkCastItem { } type WorkCastItem struct { - state protoimpl.MessageState `protogen:"open.v1"` - ArtistUuid string `protobuf:"bytes,1,opt,name=artistUuid,proto3" json:"artistUuid"` // 艺人ID - ArtistName string `protobuf:"bytes,2,opt,name=artistName,proto3" json:"artistName"` // 艺人名称 - ArtistPhone string `protobuf:"bytes,3,opt,name=artistPhone,proto3" json:"artistPhone"` // 艺人手机号 - WorkUuid string `protobuf:"bytes,4,opt,name=workUuid,proto3" json:"workUuid"` // 作品uuid - WorkCategory uint32 `protobuf:"varint,5,opt,name=workCategory,proto3" json:"workCategory"` // 1 图文 2 视频 - BundleUuid string `protobuf:"bytes,6,opt,name=bundleUuid,proto3" json:"bundleUuid"` // 套餐ID uuid - BundleName string `protobuf:"bytes,7,opt,name=bundleName,proto3" json:"bundleName"` // 套餐名称 - PlatformIds string `protobuf:"bytes,8,opt,name=platformIds,proto3" json:"platformIds"` // 发布平台ID集合 (json 格式字符串) - MediaNames string `protobuf:"bytes,9,opt,name=mediaNames,proto3" json:"mediaNames"` // 自媒体账号名称集合 - MediaAccIDs string `protobuf:"bytes,10,opt,name=mediaAccIDs,proto3" json:"mediaAccIDs"` // 自媒体账号ID集合 - WorkTitle string `protobuf:"bytes,11,opt,name=workTitle,proto3" json:"workTitle"` // 作品标题 - SubmitTime string `protobuf:"bytes,12,opt,name=submitTime,proto3" json:"submitTime"` // 提交时间 - OperatorName string `protobuf:"bytes,13,opt,name=operatorName,proto3" json:"operatorName"` // 操作人名称 - OperatorPhone string `protobuf:"bytes,14,opt,name=operatorPhone,proto3" json:"operatorPhone"` // 操作人手机号 - Status uint32 `protobuf:"varint,15,opt,name=status,proto3" json:"status"` // 1 有效 2 失效 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ArtistUuid string `protobuf:"bytes,1,opt,name=artistUuid,proto3" json:"artistUuid,omitempty"` // 艺人ID + ArtistName string `protobuf:"bytes,2,opt,name=artistName,proto3" json:"artistName,omitempty"` // 艺人名称 + ArtistPhone string `protobuf:"bytes,3,opt,name=artistPhone,proto3" json:"artistPhone,omitempty"` // 艺人手机号 + WorkUuid string `protobuf:"bytes,4,opt,name=workUuid,proto3" json:"workUuid,omitempty"` // 作品uuid + WorkCategory uint32 `protobuf:"varint,5,opt,name=workCategory,proto3" json:"workCategory,omitempty"` // 1 图文 2 视频 + BundleUuid string `protobuf:"bytes,6,opt,name=bundleUuid,proto3" json:"bundleUuid,omitempty"` // 套餐ID uuid + BundleName string `protobuf:"bytes,7,opt,name=bundleName,proto3" json:"bundleName,omitempty"` // 套餐名称 + PlatformIds string `protobuf:"bytes,8,opt,name=platformIds,proto3" json:"platformIds,omitempty"` // 发布平台ID集合 (json 格式字符串) + MediaNames string `protobuf:"bytes,9,opt,name=mediaNames,proto3" json:"mediaNames,omitempty"` // 自媒体账号名称集合 + MediaAccIDs string `protobuf:"bytes,10,opt,name=mediaAccIDs,proto3" json:"mediaAccIDs,omitempty"` // 自媒体账号ID集合 + WorkTitle string `protobuf:"bytes,11,opt,name=workTitle,proto3" json:"workTitle,omitempty"` // 作品标题 + SubmitTime string `protobuf:"bytes,12,opt,name=submitTime,proto3" json:"submitTime,omitempty"` // 提交时间 + OperatorName string `protobuf:"bytes,13,opt,name=operatorName,proto3" json:"operatorName,omitempty"` // 操作人名称 + OperatorPhone string `protobuf:"bytes,14,opt,name=operatorPhone,proto3" json:"operatorPhone,omitempty"` // 操作人手机号 + Status uint32 `protobuf:"varint,15,opt,name=status,proto3" json:"status,omitempty"` // 1 有效 2 失效 } func (x *WorkCastItem) Reset() { *x = WorkCastItem{} - mi := &file_pb_bundle_proto_msgTypes[68] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[68] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *WorkCastItem) String() string { @@ -6131,7 +6334,7 @@ func (*WorkCastItem) ProtoMessage() {} func (x *WorkCastItem) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[68] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6252,17 +6455,20 @@ func (x *WorkCastItem) GetStatus() uint32 { } type GetImageWorkDetailReq struct { - state protoimpl.MessageState `protogen:"open.v1"` - WorkId string `protobuf:"bytes,1,opt,name=workId,proto3" json:"workId"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + WorkId string `protobuf:"bytes,1,opt,name=workId,proto3" json:"workId,omitempty"` } func (x *GetImageWorkDetailReq) Reset() { *x = GetImageWorkDetailReq{} - mi := &file_pb_bundle_proto_msgTypes[69] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[69] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *GetImageWorkDetailReq) String() string { @@ -6273,7 +6479,7 @@ func (*GetImageWorkDetailReq) ProtoMessage() {} func (x *GetImageWorkDetailReq) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[69] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6296,17 +6502,20 @@ func (x *GetImageWorkDetailReq) GetWorkId() string { } type GetVedioWorkDetailReq struct { - state protoimpl.MessageState `protogen:"open.v1"` - WorkId string `protobuf:"bytes,1,opt,name=workId,proto3" json:"workId"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + WorkId string `protobuf:"bytes,1,opt,name=workId,proto3" json:"workId,omitempty"` } func (x *GetVedioWorkDetailReq) Reset() { *x = GetVedioWorkDetailReq{} - mi := &file_pb_bundle_proto_msgTypes[70] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[70] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *GetVedioWorkDetailReq) String() string { @@ -6317,7 +6526,7 @@ func (*GetVedioWorkDetailReq) ProtoMessage() {} func (x *GetVedioWorkDetailReq) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[70] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6340,20 +6549,23 @@ func (x *GetVedioWorkDetailReq) GetWorkId() string { } type GetImageWorkDetailResp struct { - state protoimpl.MessageState `protogen:"open.v1"` - WorkId string `protobuf:"bytes,1,opt,name=workId,proto3" json:"workId"` - CoverUrl string `protobuf:"bytes,2,opt,name=coverUrl,proto3" json:"coverUrl"` - VideoUrl string `protobuf:"bytes,3,opt,name=videoUrl,proto3" json:"videoUrl"` - CreatedAt int64 `protobuf:"varint,4,opt,name=createdAt,proto3" json:"createdAt"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + WorkId string `protobuf:"bytes,1,opt,name=workId,proto3" json:"workId,omitempty"` + CoverUrl string `protobuf:"bytes,2,opt,name=coverUrl,proto3" json:"coverUrl,omitempty"` + VideoUrl string `protobuf:"bytes,3,opt,name=videoUrl,proto3" json:"videoUrl,omitempty"` + CreatedAt int64 `protobuf:"varint,4,opt,name=createdAt,proto3" json:"createdAt,omitempty"` } func (x *GetImageWorkDetailResp) Reset() { *x = GetImageWorkDetailResp{} - mi := &file_pb_bundle_proto_msgTypes[71] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[71] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *GetImageWorkDetailResp) String() string { @@ -6364,7 +6576,7 @@ func (*GetImageWorkDetailResp) ProtoMessage() {} func (x *GetImageWorkDetailResp) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[71] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6408,19 +6620,22 @@ func (x *GetImageWorkDetailResp) GetCreatedAt() int64 { } type GetVedioeWorkDetailResp struct { - state protoimpl.MessageState `protogen:"open.v1"` - WorkId string `protobuf:"bytes,1,opt,name=workId,proto3" json:"workId"` - ImageUrls []string `protobuf:"bytes,2,rep,name=imageUrls,proto3" json:"imageUrls"` - CreatedAt int64 `protobuf:"varint,3,opt,name=createdAt,proto3" json:"createdAt"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + WorkId string `protobuf:"bytes,1,opt,name=workId,proto3" json:"workId,omitempty"` + ImageUrls []string `protobuf:"bytes,2,rep,name=imageUrls,proto3" json:"imageUrls,omitempty"` + CreatedAt int64 `protobuf:"varint,3,opt,name=createdAt,proto3" json:"createdAt,omitempty"` } func (x *GetVedioeWorkDetailResp) Reset() { *x = GetVedioeWorkDetailResp{} - mi := &file_pb_bundle_proto_msgTypes[72] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[72] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *GetVedioeWorkDetailResp) String() string { @@ -6431,7 +6646,7 @@ func (*GetVedioeWorkDetailResp) ProtoMessage() {} func (x *GetVedioeWorkDetailResp) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[72] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6468,19 +6683,22 @@ func (x *GetVedioeWorkDetailResp) GetCreatedAt() int64 { } type ToBeComfirmedWorksReq struct { - state protoimpl.MessageState `protogen:"open.v1"` - ArtistUuid string `protobuf:"bytes,1,opt,name=artistUuid,proto3" json:"artistUuid"` - Page int32 `protobuf:"varint,2,opt,name=page,proto3" json:"page"` - PageSize int32 `protobuf:"varint,3,opt,name=pageSize,proto3" json:"pageSize"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ArtistUuid string `protobuf:"bytes,1,opt,name=artistUuid,proto3" json:"artistUuid,omitempty"` + Page int32 `protobuf:"varint,2,opt,name=page,proto3" json:"page,omitempty"` + PageSize int32 `protobuf:"varint,3,opt,name=pageSize,proto3" json:"pageSize,omitempty"` } func (x *ToBeComfirmedWorksReq) Reset() { *x = ToBeComfirmedWorksReq{} - mi := &file_pb_bundle_proto_msgTypes[73] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[73] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *ToBeComfirmedWorksReq) String() string { @@ -6491,7 +6709,7 @@ func (*ToBeComfirmedWorksReq) ProtoMessage() {} func (x *ToBeComfirmedWorksReq) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[73] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6528,29 +6746,32 @@ func (x *ToBeComfirmedWorksReq) GetPageSize() int32 { } type WorkItem struct { - state protoimpl.MessageState `protogen:"open.v1"` - Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` - WorkUuid string `protobuf:"bytes,2,opt,name=workUuid,proto3" json:"workUuid"` - Title string `protobuf:"bytes,3,opt,name=title,proto3" json:"title"` - Content string `protobuf:"bytes,4,opt,name=content,proto3" json:"content"` - WorkCategory uint32 `protobuf:"varint,5,opt,name=workCategory,proto3" json:"workCategory"` - WorkStatus uint32 `protobuf:"varint,6,opt,name=workStatus,proto3" json:"workStatus"` - PlatformIds string `protobuf:"bytes,7,opt,name=platformIds,proto3" json:"platformIds"` - MediaNames string `protobuf:"bytes,8,opt,name=mediaNames,proto3" json:"mediaNames"` - MediaAccUserIds string `protobuf:"bytes,9,opt,name=mediaAccUserIds,proto3" json:"mediaAccUserIds"` - ConfirmedAt int64 `protobuf:"varint,10,opt,name=confirmedAt,proto3" json:"confirmedAt"` - CreatedAt int64 `protobuf:"varint,11,opt,name=createdAt,proto3" json:"createdAt"` // 提交时间 - ArtistName string `protobuf:"bytes,12,opt,name=artistName,proto3" json:"artistName"` - ArtistUuid string `protobuf:"bytes,13,opt,name=artistUuid,proto3" json:"artistUuid"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` + WorkUuid string `protobuf:"bytes,2,opt,name=workUuid,proto3" json:"workUuid,omitempty"` + Title string `protobuf:"bytes,3,opt,name=title,proto3" json:"title,omitempty"` + Content string `protobuf:"bytes,4,opt,name=content,proto3" json:"content,omitempty"` + WorkCategory uint32 `protobuf:"varint,5,opt,name=workCategory,proto3" json:"workCategory,omitempty"` + WorkStatus uint32 `protobuf:"varint,6,opt,name=workStatus,proto3" json:"workStatus,omitempty"` + PlatformIds string `protobuf:"bytes,7,opt,name=platformIds,proto3" json:"platformIds,omitempty"` + MediaNames string `protobuf:"bytes,8,opt,name=mediaNames,proto3" json:"mediaNames,omitempty"` + MediaAccUserIds string `protobuf:"bytes,9,opt,name=mediaAccUserIds,proto3" json:"mediaAccUserIds,omitempty"` + ConfirmedAt int64 `protobuf:"varint,10,opt,name=confirmedAt,proto3" json:"confirmedAt,omitempty"` + CreatedAt int64 `protobuf:"varint,11,opt,name=createdAt,proto3" json:"createdAt,omitempty"` // 提交时间 + ArtistName string `protobuf:"bytes,12,opt,name=artistName,proto3" json:"artistName,omitempty"` + ArtistUuid string `protobuf:"bytes,13,opt,name=artistUuid,proto3" json:"artistUuid,omitempty"` } func (x *WorkItem) Reset() { *x = WorkItem{} - mi := &file_pb_bundle_proto_msgTypes[74] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[74] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *WorkItem) String() string { @@ -6561,7 +6782,7 @@ func (*WorkItem) ProtoMessage() {} func (x *WorkItem) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[74] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6668,19 +6889,22 @@ func (x *WorkItem) GetArtistUuid() string { } type ToBeComfirmedWorksResp struct { - state protoimpl.MessageState `protogen:"open.v1"` - Total int64 `protobuf:"varint,1,opt,name=total,proto3" json:"total"` - Unconfirmed int64 `protobuf:"varint,2,opt,name=unconfirmed,proto3" json:"unconfirmed"` - Data []*WorkItem `protobuf:"bytes,3,rep,name=data,proto3" json:"data"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Total int64 `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"` + Unconfirmed int64 `protobuf:"varint,2,opt,name=unconfirmed,proto3" json:"unconfirmed,omitempty"` + Data []*WorkItem `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty"` } func (x *ToBeComfirmedWorksResp) Reset() { *x = ToBeComfirmedWorksResp{} - mi := &file_pb_bundle_proto_msgTypes[75] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[75] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *ToBeComfirmedWorksResp) String() string { @@ -6691,7 +6915,7 @@ func (*ToBeComfirmedWorksResp) ProtoMessage() {} func (x *ToBeComfirmedWorksResp) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[75] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6728,17 +6952,20 @@ func (x *ToBeComfirmedWorksResp) GetData() []*WorkItem { } type GetBundleBalanceByUserIdReq struct { - state protoimpl.MessageState `protogen:"open.v1"` - UserId int32 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId int32 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` } func (x *GetBundleBalanceByUserIdReq) Reset() { *x = GetBundleBalanceByUserIdReq{} - mi := &file_pb_bundle_proto_msgTypes[76] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[76] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *GetBundleBalanceByUserIdReq) String() string { @@ -6749,7 +6976,7 @@ func (*GetBundleBalanceByUserIdReq) ProtoMessage() {} func (x *GetBundleBalanceByUserIdReq) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[76] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6772,37 +6999,40 @@ func (x *GetBundleBalanceByUserIdReq) GetUserId() int32 { } type GetBundleBalanceByUserIdResp struct { - state protoimpl.MessageState `protogen:"open.v1"` - OrderUUID string `protobuf:"bytes,1,opt,name=orderUUID,proto3" json:"orderUUID"` - BundleUuid string `protobuf:"bytes,2,opt,name=bundleUuid,proto3" json:"bundleUuid"` // 套餐ID uuid - BundleName string `protobuf:"bytes,3,opt,name=bundleName,proto3" json:"bundleName"` // 套餐名称 - BundleStatus string `protobuf:"bytes,4,opt,name=bundleStatus,proto3" json:"bundleStatus"` // 套餐名称 - PayTime int64 `protobuf:"varint,5,opt,name=payTime,proto3" json:"payTime"` - ExpiredTime int64 `protobuf:"varint,6,opt,name=expiredTime,proto3" json:"expiredTime"` - PaymentAmount string `protobuf:"bytes,7,opt,name=paymentAmount,proto3" json:"paymentAmount"` - PaymentType int32 `protobuf:"varint,8,opt,name=paymentType,proto3" json:"paymentType"` - AccountNumber int32 `protobuf:"varint,9,opt,name=accountNumber,proto3" json:"accountNumber"` - AccountAdditional int32 `protobuf:"varint,10,opt,name=accountAdditional,proto3" json:"accountAdditional"` - AccountConsumptionNumber int32 `protobuf:"varint,11,opt,name=accountConsumptionNumber,proto3" json:"accountConsumptionNumber"` - VideoNumber int32 `protobuf:"varint,12,opt,name=videoNumber,proto3" json:"videoNumber"` - VideoAdditional int32 `protobuf:"varint,13,opt,name=videoAdditional,proto3" json:"videoAdditional"` - VideoConsumptionNumber int32 `protobuf:"varint,14,opt,name=videoConsumptionNumber,proto3" json:"videoConsumptionNumber"` - ImageNumber int32 `protobuf:"varint,15,opt,name=imageNumber,proto3" json:"imageNumber"` - ImageAdditional int32 `protobuf:"varint,16,opt,name=imageAdditional,proto3" json:"imageAdditional"` - ImageConsumptionNumber int32 `protobuf:"varint,17,opt,name=imageConsumptionNumber,proto3" json:"imageConsumptionNumber"` - DataAnalysisNumber int32 `protobuf:"varint,18,opt,name=dataAnalysisNumber,proto3" json:"dataAnalysisNumber"` - DataAnalysisAdditional int32 `protobuf:"varint,19,opt,name=dataAnalysisAdditional,proto3" json:"dataAnalysisAdditional"` - DataAnalysisConsumptionNumber int32 `protobuf:"varint,20,opt,name=dataAnalysisConsumptionNumber,proto3" json:"dataAnalysisConsumptionNumber"` - ExpansionPacksNumber int32 `protobuf:"varint,21,opt,name=expansionPacksNumber,proto3" json:"expansionPacksNumber"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OrderUUID string `protobuf:"bytes,1,opt,name=orderUUID,proto3" json:"orderUUID,omitempty"` + BundleUuid string `protobuf:"bytes,2,opt,name=bundleUuid,proto3" json:"bundleUuid,omitempty"` // 套餐ID uuid + BundleName string `protobuf:"bytes,3,opt,name=bundleName,proto3" json:"bundleName,omitempty"` // 套餐名称 + BundleStatus string `protobuf:"bytes,4,opt,name=bundleStatus,proto3" json:"bundleStatus,omitempty"` // 套餐名称 + PayTime int64 `protobuf:"varint,5,opt,name=payTime,proto3" json:"payTime,omitempty"` + ExpiredTime int64 `protobuf:"varint,6,opt,name=expiredTime,proto3" json:"expiredTime,omitempty"` + PaymentAmount string `protobuf:"bytes,7,opt,name=paymentAmount,proto3" json:"paymentAmount,omitempty"` + PaymentType int32 `protobuf:"varint,8,opt,name=paymentType,proto3" json:"paymentType,omitempty"` + AccountNumber int32 `protobuf:"varint,9,opt,name=accountNumber,proto3" json:"accountNumber,omitempty"` + AccountAdditional int32 `protobuf:"varint,10,opt,name=accountAdditional,proto3" json:"accountAdditional,omitempty"` + AccountConsumptionNumber int32 `protobuf:"varint,11,opt,name=accountConsumptionNumber,proto3" json:"accountConsumptionNumber,omitempty"` + VideoNumber int32 `protobuf:"varint,12,opt,name=videoNumber,proto3" json:"videoNumber,omitempty"` + VideoAdditional int32 `protobuf:"varint,13,opt,name=videoAdditional,proto3" json:"videoAdditional,omitempty"` + VideoConsumptionNumber int32 `protobuf:"varint,14,opt,name=videoConsumptionNumber,proto3" json:"videoConsumptionNumber,omitempty"` + ImageNumber int32 `protobuf:"varint,15,opt,name=imageNumber,proto3" json:"imageNumber,omitempty"` + ImageAdditional int32 `protobuf:"varint,16,opt,name=imageAdditional,proto3" json:"imageAdditional,omitempty"` + ImageConsumptionNumber int32 `protobuf:"varint,17,opt,name=imageConsumptionNumber,proto3" json:"imageConsumptionNumber,omitempty"` + DataAnalysisNumber int32 `protobuf:"varint,18,opt,name=dataAnalysisNumber,proto3" json:"dataAnalysisNumber,omitempty"` + DataAnalysisAdditional int32 `protobuf:"varint,19,opt,name=dataAnalysisAdditional,proto3" json:"dataAnalysisAdditional,omitempty"` + DataAnalysisConsumptionNumber int32 `protobuf:"varint,20,opt,name=dataAnalysisConsumptionNumber,proto3" json:"dataAnalysisConsumptionNumber,omitempty"` + ExpansionPacksNumber int32 `protobuf:"varint,21,opt,name=expansionPacksNumber,proto3" json:"expansionPacksNumber,omitempty"` } func (x *GetBundleBalanceByUserIdResp) Reset() { *x = GetBundleBalanceByUserIdResp{} - mi := &file_pb_bundle_proto_msgTypes[77] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[77] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *GetBundleBalanceByUserIdResp) String() string { @@ -6813,7 +7043,7 @@ func (*GetBundleBalanceByUserIdResp) ProtoMessage() {} func (x *GetBundleBalanceByUserIdResp) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[77] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6976,17 +7206,20 @@ func (x *GetBundleBalanceByUserIdResp) GetExpansionPacksNumber() int32 { } type OnlyAddValueListByOrderNoRequest struct { - state protoimpl.MessageState `protogen:"open.v1"` - OrderNo string `protobuf:"bytes,1,opt,name=orderNo,proto3" json:"orderNo"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OrderNo string `protobuf:"bytes,1,opt,name=orderNo,proto3" json:"orderNo,omitempty"` } func (x *OnlyAddValueListByOrderNoRequest) Reset() { *x = OnlyAddValueListByOrderNoRequest{} - mi := &file_pb_bundle_proto_msgTypes[78] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[78] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *OnlyAddValueListByOrderNoRequest) String() string { @@ -6997,7 +7230,7 @@ func (*OnlyAddValueListByOrderNoRequest) ProtoMessage() {} func (x *OnlyAddValueListByOrderNoRequest) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[78] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7020,17 +7253,20 @@ func (x *OnlyAddValueListByOrderNoRequest) GetOrderNo() string { } type OnlyAddValueListByOrderNoResp struct { - state protoimpl.MessageState `protogen:"open.v1"` - AddBundleInfos []*AddBundleInfo `protobuf:"bytes,1,rep,name=AddBundleInfos,proto3" json:"AddBundleInfos"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AddBundleInfos []*AddBundleInfo `protobuf:"bytes,1,rep,name=AddBundleInfos,proto3" json:"AddBundleInfos,omitempty"` } func (x *OnlyAddValueListByOrderNoResp) Reset() { *x = OnlyAddValueListByOrderNoResp{} - mi := &file_pb_bundle_proto_msgTypes[79] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[79] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *OnlyAddValueListByOrderNoResp) String() string { @@ -7041,7 +7277,7 @@ func (*OnlyAddValueListByOrderNoResp) ProtoMessage() {} func (x *OnlyAddValueListByOrderNoResp) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[79] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7064,21 +7300,24 @@ func (x *OnlyAddValueListByOrderNoResp) GetAddBundleInfos() []*AddBundleInfo { } type AddBundleInfo struct { - state protoimpl.MessageState `protogen:"open.v1"` - CustomerID string `protobuf:"bytes,1,opt,name=customerID,proto3" json:"customerID"` - Amount float32 `protobuf:"fixed32,2,opt,name=amount,proto3" json:"amount"` - CheckOutSessionId string `protobuf:"bytes,3,opt,name=checkOutSessionId,proto3" json:"checkOutSessionId"` - OrderNo string `protobuf:"bytes,4,opt,name=orderNo,proto3" json:"orderNo"` - PaymentStatus int32 `protobuf:"varint,5,opt,name=paymentStatus,proto3" json:"paymentStatus"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CustomerID string `protobuf:"bytes,1,opt,name=customerID,proto3" json:"customerID,omitempty"` + Amount float32 `protobuf:"fixed32,2,opt,name=amount,proto3" json:"amount,omitempty"` + CheckOutSessionId string `protobuf:"bytes,3,opt,name=checkOutSessionId,proto3" json:"checkOutSessionId,omitempty"` + OrderNo string `protobuf:"bytes,4,opt,name=orderNo,proto3" json:"orderNo,omitempty"` + PaymentStatus int32 `protobuf:"varint,5,opt,name=paymentStatus,proto3" json:"paymentStatus,omitempty"` } func (x *AddBundleInfo) Reset() { *x = AddBundleInfo{} - mi := &file_pb_bundle_proto_msgTypes[80] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[80] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *AddBundleInfo) String() string { @@ -7089,7 +7328,7 @@ func (*AddBundleInfo) ProtoMessage() {} func (x *AddBundleInfo) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[80] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7140,19 +7379,22 @@ func (x *AddBundleInfo) GetPaymentStatus() int32 { } type UpdateStatusAndPayTimeBySerialNumber struct { - state protoimpl.MessageState `protogen:"open.v1"` - SerialNumber string `protobuf:"bytes,1,opt,name=serialNumber,proto3" json:"serialNumber"` - PayTime string `protobuf:"bytes,2,opt,name=payTime,proto3" json:"payTime"` - PaymentStatus int32 `protobuf:"varint,3,opt,name=paymentStatus,proto3" json:"paymentStatus"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SerialNumber string `protobuf:"bytes,1,opt,name=serialNumber,proto3" json:"serialNumber,omitempty"` + PayTime string `protobuf:"bytes,2,opt,name=payTime,proto3" json:"payTime,omitempty"` + PaymentStatus int32 `protobuf:"varint,3,opt,name=paymentStatus,proto3" json:"paymentStatus,omitempty"` } func (x *UpdateStatusAndPayTimeBySerialNumber) Reset() { *x = UpdateStatusAndPayTimeBySerialNumber{} - mi := &file_pb_bundle_proto_msgTypes[81] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[81] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *UpdateStatusAndPayTimeBySerialNumber) String() string { @@ -7163,7 +7405,7 @@ func (*UpdateStatusAndPayTimeBySerialNumber) ProtoMessage() {} func (x *UpdateStatusAndPayTimeBySerialNumber) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[81] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7200,17 +7442,20 @@ func (x *UpdateStatusAndPayTimeBySerialNumber) GetPaymentStatus() int32 { } type ConfirmWorkReq struct { - state protoimpl.MessageState `protogen:"open.v1"` - WorkUuid string `protobuf:"bytes,1,opt,name=workUuid,proto3" json:"workUuid"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + WorkUuid string `protobuf:"bytes,1,opt,name=workUuid,proto3" json:"workUuid,omitempty"` } func (x *ConfirmWorkReq) Reset() { *x = ConfirmWorkReq{} - mi := &file_pb_bundle_proto_msgTypes[82] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[82] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *ConfirmWorkReq) String() string { @@ -7221,7 +7466,7 @@ func (*ConfirmWorkReq) ProtoMessage() {} func (x *ConfirmWorkReq) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[82] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7244,16 +7489,18 @@ func (x *ConfirmWorkReq) GetWorkUuid() string { } type ConfirmWorkResp struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } func (x *ConfirmWorkResp) Reset() { *x = ConfirmWorkResp{} - mi := &file_pb_bundle_proto_msgTypes[83] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[83] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *ConfirmWorkResp) String() string { @@ -7264,7 +7511,7 @@ func (*ConfirmWorkResp) ProtoMessage() {} func (x *ConfirmWorkResp) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[83] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7280,17 +7527,20 @@ func (*ConfirmWorkResp) Descriptor() ([]byte, []int) { } type AutoCreateUserAndOrderRequest struct { - state protoimpl.MessageState `protogen:"open.v1"` - Num int32 `protobuf:"varint,1,opt,name=num,proto3" json:"num"` // 处理数量 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Num int32 `protobuf:"varint,1,opt,name=num,proto3" json:"num,omitempty"` // 处理数量 } func (x *AutoCreateUserAndOrderRequest) Reset() { *x = AutoCreateUserAndOrderRequest{} - mi := &file_pb_bundle_proto_msgTypes[84] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[84] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *AutoCreateUserAndOrderRequest) String() string { @@ -7301,7 +7551,7 @@ func (*AutoCreateUserAndOrderRequest) ProtoMessage() {} func (x *AutoCreateUserAndOrderRequest) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[84] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7324,17 +7574,20 @@ func (x *AutoCreateUserAndOrderRequest) GetNum() int32 { } type UnfinishedInfos struct { - state protoimpl.MessageState `protogen:"open.v1"` - UnfinishedInfos []*UnfinishedInfo `protobuf:"bytes,1,rep,name=unfinishedInfos,proto3" json:"unfinishedInfos"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UnfinishedInfos []*UnfinishedInfo `protobuf:"bytes,1,rep,name=unfinishedInfos,proto3" json:"unfinishedInfos,omitempty"` } func (x *UnfinishedInfos) Reset() { *x = UnfinishedInfos{} - mi := &file_pb_bundle_proto_msgTypes[85] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[85] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *UnfinishedInfos) String() string { @@ -7345,7 +7598,7 @@ func (*UnfinishedInfos) ProtoMessage() {} func (x *UnfinishedInfos) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[85] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7368,35 +7621,38 @@ func (x *UnfinishedInfos) GetUnfinishedInfos() []*UnfinishedInfo { } type UnfinishedInfo struct { - state protoimpl.MessageState `protogen:"open.v1"` - ID uint32 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID"` - UserNum string `protobuf:"bytes,2,opt,name=userNum,proto3" json:"userNum"` - UserName string `protobuf:"bytes,3,opt,name=userName,proto3" json:"userName"` - UserTelArea string `protobuf:"bytes,4,opt,name=userTelArea,proto3" json:"userTelArea"` - UserTel string `protobuf:"bytes,5,opt,name=userTel,proto3" json:"userTel"` - UserSex string `protobuf:"bytes,6,opt,name=userSex,proto3" json:"userSex"` - Nationality string `protobuf:"bytes,7,opt,name=nationality,proto3" json:"nationality"` - PlaceOfResidence string `protobuf:"bytes,8,opt,name=placeOfResidence,proto3" json:"placeOfResidence"` - DocumentType int32 `protobuf:"varint,9,opt,name=documentType,proto3" json:"documentType"` - UserIdCardFrontUrl string `protobuf:"bytes,10,opt,name=userIdCardFrontUrl,proto3" json:"userIdCardFrontUrl"` - UserIdCardReverseUrl string `protobuf:"bytes,11,opt,name=userIdCardReverseUrl,proto3" json:"userIdCardReverseUrl"` - UserIdCardValidity string `protobuf:"bytes,12,opt,name=userIdCardValidity,proto3" json:"userIdCardValidity"` - OrderNo string `protobuf:"bytes,13,opt,name=orderNo,proto3" json:"orderNo"` - OrderPayAmount string `protobuf:"bytes,14,opt,name=orderPayAmount,proto3" json:"orderPayAmount"` - OrderSettlementAmount string `protobuf:"bytes,15,opt,name=orderSettlementAmount,proto3" json:"orderSettlementAmount"` - OrderFeeAmount string `protobuf:"bytes,16,opt,name=orderFeeAmount,proto3" json:"orderFeeAmount"` - OrderPayCurrency string `protobuf:"bytes,17,opt,name=orderPayCurrency,proto3" json:"orderPayCurrency"` - OrderAccountCurrency string `protobuf:"bytes,18,opt,name=orderAccountCurrency,proto3" json:"orderAccountCurrency"` - PayTime string `protobuf:"bytes,19,opt,name=payTime,proto3" json:"payTime"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ID uint32 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` + UserNum string `protobuf:"bytes,2,opt,name=userNum,proto3" json:"userNum,omitempty"` + UserName string `protobuf:"bytes,3,opt,name=userName,proto3" json:"userName,omitempty"` + UserTelArea string `protobuf:"bytes,4,opt,name=userTelArea,proto3" json:"userTelArea,omitempty"` + UserTel string `protobuf:"bytes,5,opt,name=userTel,proto3" json:"userTel,omitempty"` + UserSex string `protobuf:"bytes,6,opt,name=userSex,proto3" json:"userSex,omitempty"` + Nationality string `protobuf:"bytes,7,opt,name=nationality,proto3" json:"nationality,omitempty"` + PlaceOfResidence string `protobuf:"bytes,8,opt,name=placeOfResidence,proto3" json:"placeOfResidence,omitempty"` + DocumentType int32 `protobuf:"varint,9,opt,name=documentType,proto3" json:"documentType,omitempty"` + UserIdCardFrontUrl string `protobuf:"bytes,10,opt,name=userIdCardFrontUrl,proto3" json:"userIdCardFrontUrl,omitempty"` + UserIdCardReverseUrl string `protobuf:"bytes,11,opt,name=userIdCardReverseUrl,proto3" json:"userIdCardReverseUrl,omitempty"` + UserIdCardValidity string `protobuf:"bytes,12,opt,name=userIdCardValidity,proto3" json:"userIdCardValidity,omitempty"` + OrderNo string `protobuf:"bytes,13,opt,name=orderNo,proto3" json:"orderNo,omitempty"` + OrderPayAmount string `protobuf:"bytes,14,opt,name=orderPayAmount,proto3" json:"orderPayAmount,omitempty"` + OrderSettlementAmount string `protobuf:"bytes,15,opt,name=orderSettlementAmount,proto3" json:"orderSettlementAmount,omitempty"` + OrderFeeAmount string `protobuf:"bytes,16,opt,name=orderFeeAmount,proto3" json:"orderFeeAmount,omitempty"` + OrderPayCurrency string `protobuf:"bytes,17,opt,name=orderPayCurrency,proto3" json:"orderPayCurrency,omitempty"` + OrderAccountCurrency string `protobuf:"bytes,18,opt,name=orderAccountCurrency,proto3" json:"orderAccountCurrency,omitempty"` + PayTime string `protobuf:"bytes,19,opt,name=payTime,proto3" json:"payTime,omitempty"` } func (x *UnfinishedInfo) Reset() { *x = UnfinishedInfo{} - mi := &file_pb_bundle_proto_msgTypes[86] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[86] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *UnfinishedInfo) String() string { @@ -7407,7 +7663,7 @@ func (*UnfinishedInfo) ProtoMessage() {} func (x *UnfinishedInfo) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[86] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7556,17 +7812,20 @@ func (x *UnfinishedInfo) GetPayTime() string { } type SoftDeleteUnfinishedInfoRequest struct { - state protoimpl.MessageState `protogen:"open.v1"` - ID uint32 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ID uint32 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` } func (x *SoftDeleteUnfinishedInfoRequest) Reset() { *x = SoftDeleteUnfinishedInfoRequest{} - mi := &file_pb_bundle_proto_msgTypes[87] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[87] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *SoftDeleteUnfinishedInfoRequest) String() string { @@ -7577,7 +7836,7 @@ func (*SoftDeleteUnfinishedInfoRequest) ProtoMessage() {} func (x *SoftDeleteUnfinishedInfoRequest) ProtoReflect() protoreflect.Message { mi := &file_pb_bundle_proto_msgTypes[87] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7599,859 +7858,3276 @@ func (x *SoftDeleteUnfinishedInfoRequest) GetID() uint32 { return 0 } +// 查询待指派任务记录 +type TaskQueryRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Keyword string `protobuf:"bytes,1,opt,name=keyword,proto3" json:"keyword,omitempty"` // 艺人姓名、编号、手机号搜索关键词 + Page int32 `protobuf:"varint,2,opt,name=page,proto3" json:"page,omitempty"` // 页码 + PageSize int32 `protobuf:"varint,3,opt,name=pageSize,proto3" json:"pageSize,omitempty"` // 每页数量 + SortBy string `protobuf:"bytes,4,opt,name=sortBy,proto3" json:"sortBy,omitempty"` // 排序字段 + SortType string `protobuf:"bytes,5,opt,name=sortType,proto3" json:"sortType,omitempty"` // 排序类型 asc/desc +} + +func (x *TaskQueryRequest) Reset() { + *x = TaskQueryRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[88] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TaskQueryRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TaskQueryRequest) ProtoMessage() {} + +func (x *TaskQueryRequest) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[88] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TaskQueryRequest.ProtoReflect.Descriptor instead. +func (*TaskQueryRequest) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{88} +} + +func (x *TaskQueryRequest) GetKeyword() string { + if x != nil { + return x.Keyword + } + return "" +} + +func (x *TaskQueryRequest) GetPage() int32 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *TaskQueryRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *TaskQueryRequest) GetSortBy() string { + if x != nil { + return x.SortBy + } + return "" +} + +func (x *TaskQueryRequest) GetSortType() string { + if x != nil { + return x.SortType + } + return "" +} + +type TaskQueryResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Tasks []*TaskManagementInfo `protobuf:"bytes,1,rep,name=tasks,proto3" json:"tasks,omitempty"` + Total int64 `protobuf:"varint,2,opt,name=total,proto3" json:"total,omitempty"` + Page int32 `protobuf:"varint,3,opt,name=page,proto3" json:"page,omitempty"` + PageSize int32 `protobuf:"varint,4,opt,name=pageSize,proto3" json:"pageSize,omitempty"` +} + +func (x *TaskQueryResponse) Reset() { + *x = TaskQueryResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[89] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TaskQueryResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TaskQueryResponse) ProtoMessage() {} + +func (x *TaskQueryResponse) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[89] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TaskQueryResponse.ProtoReflect.Descriptor instead. +func (*TaskQueryResponse) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{89} +} + +func (x *TaskQueryResponse) GetTasks() []*TaskManagementInfo { + if x != nil { + return x.Tasks + } + return nil +} + +func (x *TaskQueryResponse) GetTotal() int64 { + if x != nil { + return x.Total + } + return 0 +} + +func (x *TaskQueryResponse) GetPage() int32 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *TaskQueryResponse) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +type TaskManagementInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SubNum string `protobuf:"bytes,1,opt,name=subNum,proto3" json:"subNum,omitempty"` // 艺人编号 + TelNum string `protobuf:"bytes,2,opt,name=telNum,proto3" json:"telNum,omitempty"` // 手机号 + ArtistName string `protobuf:"bytes,3,opt,name=artistName,proto3" json:"artistName,omitempty"` // 艺人姓名 + PendingVideoCount int32 `protobuf:"varint,4,opt,name=pendingVideoCount,proto3" json:"pendingVideoCount,omitempty"` // 待发视频数量 + PendingPostCount int32 `protobuf:"varint,5,opt,name=pendingPostCount,proto3" json:"pendingPostCount,omitempty"` // 待发图文数量 + PendingDataCount int32 `protobuf:"varint,6,opt,name=pendingDataCount,proto3" json:"pendingDataCount,omitempty"` // 待发数据数量 + ProgressTaskCount int32 `protobuf:"varint,7,opt,name=progressTaskCount,proto3" json:"progressTaskCount,omitempty"` // 进行中任务数量 + CompleteTaskCount int32 `protobuf:"varint,8,opt,name=completeTaskCount,proto3" json:"completeTaskCount,omitempty"` // 已完成任务数量 + LastTaskAssignee string `protobuf:"bytes,9,opt,name=lastTaskAssignee,proto3" json:"lastTaskAssignee,omitempty"` // 最后一次任务指派人 + TaskAssigneeNum string `protobuf:"bytes,10,opt,name=taskAssigneeNum,proto3" json:"taskAssigneeNum,omitempty"` // 任务指派人账号 +} + +func (x *TaskManagementInfo) Reset() { + *x = TaskManagementInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[90] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TaskManagementInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TaskManagementInfo) ProtoMessage() {} + +func (x *TaskManagementInfo) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[90] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TaskManagementInfo.ProtoReflect.Descriptor instead. +func (*TaskManagementInfo) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{90} +} + +func (x *TaskManagementInfo) GetSubNum() string { + if x != nil { + return x.SubNum + } + return "" +} + +func (x *TaskManagementInfo) GetTelNum() string { + if x != nil { + return x.TelNum + } + return "" +} + +func (x *TaskManagementInfo) GetArtistName() string { + if x != nil { + return x.ArtistName + } + return "" +} + +func (x *TaskManagementInfo) GetPendingVideoCount() int32 { + if x != nil { + return x.PendingVideoCount + } + return 0 +} + +func (x *TaskManagementInfo) GetPendingPostCount() int32 { + if x != nil { + return x.PendingPostCount + } + return 0 +} + +func (x *TaskManagementInfo) GetPendingDataCount() int32 { + if x != nil { + return x.PendingDataCount + } + return 0 +} + +func (x *TaskManagementInfo) GetProgressTaskCount() int32 { + if x != nil { + return x.ProgressTaskCount + } + return 0 +} + +func (x *TaskManagementInfo) GetCompleteTaskCount() int32 { + if x != nil { + return x.CompleteTaskCount + } + return 0 +} + +func (x *TaskManagementInfo) GetLastTaskAssignee() string { + if x != nil { + return x.LastTaskAssignee + } + return "" +} + +func (x *TaskManagementInfo) GetTaskAssigneeNum() string { + if x != nil { + return x.TaskAssigneeNum + } + return "" +} + +// 指派任务 +type TaskAssignRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SubNum string `protobuf:"bytes,1,opt,name=subNum,proto3" json:"subNum,omitempty"` // 艺人编号 + TelNum string `protobuf:"bytes,2,opt,name=telNum,proto3" json:"telNum,omitempty"` // 艺人手机号 + ArtistName string `protobuf:"bytes,3,opt,name=artistName,proto3" json:"artistName,omitempty"` // 艺人姓名 + TaskAssignee string `protobuf:"bytes,4,opt,name=taskAssignee,proto3" json:"taskAssignee,omitempty"` // 任务指派人 + TaskAssigneeNum string `protobuf:"bytes,5,opt,name=taskAssigneeNum,proto3" json:"taskAssigneeNum,omitempty"` // 任务指派人账号 + Operator string `protobuf:"bytes,6,opt,name=operator,proto3" json:"operator,omitempty"` // 操作人 + OperatorNum string `protobuf:"bytes,7,opt,name=operatorNum,proto3" json:"operatorNum,omitempty"` // 操作人账号 + AssignVideoCount int32 `protobuf:"varint,8,opt,name=assignVideoCount,proto3" json:"assignVideoCount,omitempty"` // 指派视频数 + AssignPostCount int32 `protobuf:"varint,9,opt,name=assignPostCount,proto3" json:"assignPostCount,omitempty"` // 指派图文数 + AssignDataCount int32 `protobuf:"varint,10,opt,name=assignDataCount,proto3" json:"assignDataCount,omitempty"` // 指派数据数 +} + +func (x *TaskAssignRequest) Reset() { + *x = TaskAssignRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[91] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TaskAssignRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TaskAssignRequest) ProtoMessage() {} + +func (x *TaskAssignRequest) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[91] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TaskAssignRequest.ProtoReflect.Descriptor instead. +func (*TaskAssignRequest) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{91} +} + +func (x *TaskAssignRequest) GetSubNum() string { + if x != nil { + return x.SubNum + } + return "" +} + +func (x *TaskAssignRequest) GetTelNum() string { + if x != nil { + return x.TelNum + } + return "" +} + +func (x *TaskAssignRequest) GetArtistName() string { + if x != nil { + return x.ArtistName + } + return "" +} + +func (x *TaskAssignRequest) GetTaskAssignee() string { + if x != nil { + return x.TaskAssignee + } + return "" +} + +func (x *TaskAssignRequest) GetTaskAssigneeNum() string { + if x != nil { + return x.TaskAssigneeNum + } + return "" +} + +func (x *TaskAssignRequest) GetOperator() string { + if x != nil { + return x.Operator + } + return "" +} + +func (x *TaskAssignRequest) GetOperatorNum() string { + if x != nil { + return x.OperatorNum + } + return "" +} + +func (x *TaskAssignRequest) GetAssignVideoCount() int32 { + if x != nil { + return x.AssignVideoCount + } + return 0 +} + +func (x *TaskAssignRequest) GetAssignPostCount() int32 { + if x != nil { + return x.AssignPostCount + } + return 0 +} + +func (x *TaskAssignRequest) GetAssignDataCount() int32 { + if x != nil { + return x.AssignDataCount + } + return 0 +} + +// 修改待发数量 +type UpdatePendingCountRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SubNum string `protobuf:"bytes,1,opt,name=subNum,proto3" json:"subNum,omitempty"` // 艺人编号 + TelNum string `protobuf:"bytes,2,opt,name=telNum,proto3" json:"telNum,omitempty"` // 艺人手机号 + ArtistName string `protobuf:"bytes,3,opt,name=artistName,proto3" json:"artistName,omitempty"` // 艺人姓名 + PendingVideoCount int32 `protobuf:"varint,4,opt,name=pendingVideoCount,proto3" json:"pendingVideoCount,omitempty"` // 待发视频数量 + PendingPostCount int32 `protobuf:"varint,5,opt,name=pendingPostCount,proto3" json:"pendingPostCount,omitempty"` // 待发图文数量 + PendingDataCount int32 `protobuf:"varint,6,opt,name=pendingDataCount,proto3" json:"pendingDataCount,omitempty"` // 待发数据数量 + Operator string `protobuf:"bytes,7,opt,name=operator,proto3" json:"operator,omitempty"` // 操作人 + OperatorNum string `protobuf:"bytes,8,opt,name=operatorNum,proto3" json:"operatorNum,omitempty"` // 操作人账号 +} + +func (x *UpdatePendingCountRequest) Reset() { + *x = UpdatePendingCountRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[92] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdatePendingCountRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdatePendingCountRequest) ProtoMessage() {} + +func (x *UpdatePendingCountRequest) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[92] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdatePendingCountRequest.ProtoReflect.Descriptor instead. +func (*UpdatePendingCountRequest) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{92} +} + +func (x *UpdatePendingCountRequest) GetSubNum() string { + if x != nil { + return x.SubNum + } + return "" +} + +func (x *UpdatePendingCountRequest) GetTelNum() string { + if x != nil { + return x.TelNum + } + return "" +} + +func (x *UpdatePendingCountRequest) GetArtistName() string { + if x != nil { + return x.ArtistName + } + return "" +} + +func (x *UpdatePendingCountRequest) GetPendingVideoCount() int32 { + if x != nil { + return x.PendingVideoCount + } + return 0 +} + +func (x *UpdatePendingCountRequest) GetPendingPostCount() int32 { + if x != nil { + return x.PendingPostCount + } + return 0 +} + +func (x *UpdatePendingCountRequest) GetPendingDataCount() int32 { + if x != nil { + return x.PendingDataCount + } + return 0 +} + +func (x *UpdatePendingCountRequest) GetOperator() string { + if x != nil { + return x.Operator + } + return "" +} + +func (x *UpdatePendingCountRequest) GetOperatorNum() string { + if x != nil { + return x.OperatorNum + } + return "" +} + +// 查询最近被指派记录 +type RecentAssignRecordsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Limit int32 `protobuf:"varint,1,opt,name=limit,proto3" json:"limit,omitempty"` // 查询数量限制 +} + +func (x *RecentAssignRecordsRequest) Reset() { + *x = RecentAssignRecordsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[93] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RecentAssignRecordsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RecentAssignRecordsRequest) ProtoMessage() {} + +func (x *RecentAssignRecordsRequest) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[93] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RecentAssignRecordsRequest.ProtoReflect.Descriptor instead. +func (*RecentAssignRecordsRequest) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{93} +} + +func (x *RecentAssignRecordsRequest) GetLimit() int32 { + if x != nil { + return x.Limit + } + return 0 +} + +type RecentAssignRecordsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OperatorList []string `protobuf:"bytes,1,rep,name=operatorList,proto3" json:"operatorList,omitempty"` +} + +func (x *RecentAssignRecordsResponse) Reset() { + *x = RecentAssignRecordsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[94] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RecentAssignRecordsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RecentAssignRecordsResponse) ProtoMessage() {} + +func (x *RecentAssignRecordsResponse) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[94] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RecentAssignRecordsResponse.ProtoReflect.Descriptor instead. +func (*RecentAssignRecordsResponse) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{94} +} + +func (x *RecentAssignRecordsResponse) GetOperatorList() []string { + if x != nil { + return x.OperatorList + } + return nil +} + +// 员工任务查询 +type EmployeeTaskQueryRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TaskAssigneeNum string `protobuf:"bytes,1,opt,name=taskAssigneeNum,proto3" json:"taskAssigneeNum,omitempty"` // 被指派人账号 + Keyword string `protobuf:"bytes,2,opt,name=keyword,proto3" json:"keyword,omitempty"` // 艺人姓名、编号、手机号搜索关键词 + Operator string `protobuf:"bytes,3,opt,name=operator,proto3" json:"operator,omitempty"` // 操作人 + SortBy string `protobuf:"bytes,4,opt,name=sortBy,proto3" json:"sortBy,omitempty"` // 排序字段 + StartTime string `protobuf:"bytes,5,opt,name=startTime,proto3" json:"startTime,omitempty"` // 指派开始时间 + EndTime string `protobuf:"bytes,6,opt,name=endTime,proto3" json:"endTime,omitempty"` // 指派结束时间 + StartCompleteTime string `protobuf:"bytes,7,opt,name=startCompleteTime,proto3" json:"startCompleteTime,omitempty"` // 开始完成时间 + EndCompleteTime string `protobuf:"bytes,8,opt,name=endCompleteTime,proto3" json:"endCompleteTime,omitempty"` // 结束完成时间 + Status int32 `protobuf:"varint,9,opt,name=status,proto3" json:"status,omitempty"` // 反馈完成状态 + Page int32 `protobuf:"varint,10,opt,name=page,proto3" json:"page,omitempty"` // 页码 + PageSize int32 `protobuf:"varint,11,opt,name=pageSize,proto3" json:"pageSize,omitempty"` // 每页数量 +} + +func (x *EmployeeTaskQueryRequest) Reset() { + *x = EmployeeTaskQueryRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[95] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EmployeeTaskQueryRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EmployeeTaskQueryRequest) ProtoMessage() {} + +func (x *EmployeeTaskQueryRequest) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[95] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EmployeeTaskQueryRequest.ProtoReflect.Descriptor instead. +func (*EmployeeTaskQueryRequest) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{95} +} + +func (x *EmployeeTaskQueryRequest) GetTaskAssigneeNum() string { + if x != nil { + return x.TaskAssigneeNum + } + return "" +} + +func (x *EmployeeTaskQueryRequest) GetKeyword() string { + if x != nil { + return x.Keyword + } + return "" +} + +func (x *EmployeeTaskQueryRequest) GetOperator() string { + if x != nil { + return x.Operator + } + return "" +} + +func (x *EmployeeTaskQueryRequest) GetSortBy() string { + if x != nil { + return x.SortBy + } + return "" +} + +func (x *EmployeeTaskQueryRequest) GetStartTime() string { + if x != nil { + return x.StartTime + } + return "" +} + +func (x *EmployeeTaskQueryRequest) GetEndTime() string { + if x != nil { + return x.EndTime + } + return "" +} + +func (x *EmployeeTaskQueryRequest) GetStartCompleteTime() string { + if x != nil { + return x.StartCompleteTime + } + return "" +} + +func (x *EmployeeTaskQueryRequest) GetEndCompleteTime() string { + if x != nil { + return x.EndCompleteTime + } + return "" +} + +func (x *EmployeeTaskQueryRequest) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *EmployeeTaskQueryRequest) GetPage() int32 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *EmployeeTaskQueryRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +type EmployeeTaskQueryResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Records []*TaskAssignRecordInfo `protobuf:"bytes,1,rep,name=records,proto3" json:"records,omitempty"` + Total int64 `protobuf:"varint,2,opt,name=total,proto3" json:"total,omitempty"` + Page int32 `protobuf:"varint,3,opt,name=page,proto3" json:"page,omitempty"` + PageSize int32 `protobuf:"varint,4,opt,name=pageSize,proto3" json:"pageSize,omitempty"` +} + +func (x *EmployeeTaskQueryResponse) Reset() { + *x = EmployeeTaskQueryResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[96] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EmployeeTaskQueryResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EmployeeTaskQueryResponse) ProtoMessage() {} + +func (x *EmployeeTaskQueryResponse) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[96] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EmployeeTaskQueryResponse.ProtoReflect.Descriptor instead. +func (*EmployeeTaskQueryResponse) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{96} +} + +func (x *EmployeeTaskQueryResponse) GetRecords() []*TaskAssignRecordInfo { + if x != nil { + return x.Records + } + return nil +} + +func (x *EmployeeTaskQueryResponse) GetTotal() int64 { + if x != nil { + return x.Total + } + return 0 +} + +func (x *EmployeeTaskQueryResponse) GetPage() int32 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *EmployeeTaskQueryResponse) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +// 任务指派记录信息 +type TaskAssignRecordInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AssignRecordsUUID string `protobuf:"bytes,1,opt,name=assignRecordsUUID,proto3" json:"assignRecordsUUID,omitempty"` // 指派记录UUID + SubNum string `protobuf:"bytes,2,opt,name=subNum,proto3" json:"subNum,omitempty"` // 艺人编号 + TelNum string `protobuf:"bytes,3,opt,name=telNum,proto3" json:"telNum,omitempty"` // 艺人手机号 + ArtistName string `protobuf:"bytes,4,opt,name=artistName,proto3" json:"artistName,omitempty"` // 艺人姓名 + Status int32 `protobuf:"varint,5,opt,name=status,proto3" json:"status,omitempty"` // 反馈完成状态 + ActualStatus int32 `protobuf:"varint,6,opt,name=actualStatus,proto3" json:"actualStatus,omitempty"` // 实际完成状态 + CompleteTime string `protobuf:"bytes,7,opt,name=completeTime,proto3" json:"completeTime,omitempty"` // 反馈完成时间 + OperatorType int32 `protobuf:"varint,8,opt,name=operatorType,proto3" json:"operatorType,omitempty"` // 操作类型 + Operator string `protobuf:"bytes,9,opt,name=operator,proto3" json:"operator,omitempty"` // 操作人 + OperatorNum string `protobuf:"bytes,10,opt,name=operatorNum,proto3" json:"operatorNum,omitempty"` // 操作人账号 + OperatorTime string `protobuf:"bytes,11,opt,name=operatorTime,proto3" json:"operatorTime,omitempty"` // 操作时间 + TaskAssignee string `protobuf:"bytes,12,opt,name=taskAssignee,proto3" json:"taskAssignee,omitempty"` // 任务指派人 + TaskAssigneeNum string `protobuf:"bytes,13,opt,name=taskAssigneeNum,proto3" json:"taskAssigneeNum,omitempty"` // 任务指派人账号 + PendingVideoCount int32 `protobuf:"varint,14,opt,name=pendingVideoCount,proto3" json:"pendingVideoCount,omitempty"` // 待发视频数量 + PendingPostCount int32 `protobuf:"varint,15,opt,name=pendingPostCount,proto3" json:"pendingPostCount,omitempty"` // 待发图文数量 + PendingDataCount int32 `protobuf:"varint,16,opt,name=pendingDataCount,proto3" json:"pendingDataCount,omitempty"` // 待发数据数量 + UpdatedAt string `protobuf:"bytes,24,opt,name=updatedAt,proto3" json:"updatedAt,omitempty"` // 更新时间 +} + +func (x *TaskAssignRecordInfo) Reset() { + *x = TaskAssignRecordInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[97] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TaskAssignRecordInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TaskAssignRecordInfo) ProtoMessage() {} + +func (x *TaskAssignRecordInfo) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[97] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TaskAssignRecordInfo.ProtoReflect.Descriptor instead. +func (*TaskAssignRecordInfo) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{97} +} + +func (x *TaskAssignRecordInfo) GetAssignRecordsUUID() string { + if x != nil { + return x.AssignRecordsUUID + } + return "" +} + +func (x *TaskAssignRecordInfo) GetSubNum() string { + if x != nil { + return x.SubNum + } + return "" +} + +func (x *TaskAssignRecordInfo) GetTelNum() string { + if x != nil { + return x.TelNum + } + return "" +} + +func (x *TaskAssignRecordInfo) GetArtistName() string { + if x != nil { + return x.ArtistName + } + return "" +} + +func (x *TaskAssignRecordInfo) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *TaskAssignRecordInfo) GetActualStatus() int32 { + if x != nil { + return x.ActualStatus + } + return 0 +} + +func (x *TaskAssignRecordInfo) GetCompleteTime() string { + if x != nil { + return x.CompleteTime + } + return "" +} + +func (x *TaskAssignRecordInfo) GetOperatorType() int32 { + if x != nil { + return x.OperatorType + } + return 0 +} + +func (x *TaskAssignRecordInfo) GetOperator() string { + if x != nil { + return x.Operator + } + return "" +} + +func (x *TaskAssignRecordInfo) GetOperatorNum() string { + if x != nil { + return x.OperatorNum + } + return "" +} + +func (x *TaskAssignRecordInfo) GetOperatorTime() string { + if x != nil { + return x.OperatorTime + } + return "" +} + +func (x *TaskAssignRecordInfo) GetTaskAssignee() string { + if x != nil { + return x.TaskAssignee + } + return "" +} + +func (x *TaskAssignRecordInfo) GetTaskAssigneeNum() string { + if x != nil { + return x.TaskAssigneeNum + } + return "" +} + +func (x *TaskAssignRecordInfo) GetPendingVideoCount() int32 { + if x != nil { + return x.PendingVideoCount + } + return 0 +} + +func (x *TaskAssignRecordInfo) GetPendingPostCount() int32 { + if x != nil { + return x.PendingPostCount + } + return 0 +} + +func (x *TaskAssignRecordInfo) GetPendingDataCount() int32 { + if x != nil { + return x.PendingDataCount + } + return 0 +} + +func (x *TaskAssignRecordInfo) GetUpdatedAt() string { + if x != nil { + return x.UpdatedAt + } + return "" +} + +// 手动完成任务 +type CompleteTaskManuallyRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AssignRecordsUUID string `protobuf:"bytes,1,opt,name=assignRecordsUUID,proto3" json:"assignRecordsUUID,omitempty"` // 指派记录UUID + TaskAssigneeNum string `protobuf:"bytes,2,opt,name=taskAssigneeNum,proto3" json:"taskAssigneeNum,omitempty"` // 被指派完成该任务人的账号 +} + +func (x *CompleteTaskManuallyRequest) Reset() { + *x = CompleteTaskManuallyRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[98] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CompleteTaskManuallyRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CompleteTaskManuallyRequest) ProtoMessage() {} + +func (x *CompleteTaskManuallyRequest) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[98] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CompleteTaskManuallyRequest.ProtoReflect.Descriptor instead. +func (*CompleteTaskManuallyRequest) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{98} +} + +func (x *CompleteTaskManuallyRequest) GetAssignRecordsUUID() string { + if x != nil { + return x.AssignRecordsUUID + } + return "" +} + +func (x *CompleteTaskManuallyRequest) GetTaskAssigneeNum() string { + if x != nil { + return x.TaskAssigneeNum + } + return "" +} + +// 更新任务进度 +type UpdateTaskProgressRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AssignRecordsUUID string `protobuf:"bytes,1,opt,name=assignRecordsUUID,proto3" json:"assignRecordsUUID,omitempty"` // 指派记录UUID(可选) + EmployeeName string `protobuf:"bytes,2,opt,name=employeeName,proto3" json:"employeeName,omitempty"` // 员工姓名(必要) + EmployeeNum string `protobuf:"bytes,3,opt,name=employeeNum,proto3" json:"employeeNum,omitempty"` // 员工工号(必要) + TaskType string `protobuf:"bytes,4,opt,name=taskType,proto3" json:"taskType,omitempty"` // 任务类型: video/post/data + CompleteCount int32 `protobuf:"varint,5,opt,name=completeCount,proto3" json:"completeCount,omitempty"` // 完成数量 +} + +func (x *UpdateTaskProgressRequest) Reset() { + *x = UpdateTaskProgressRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[99] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateTaskProgressRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateTaskProgressRequest) ProtoMessage() {} + +func (x *UpdateTaskProgressRequest) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[99] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateTaskProgressRequest.ProtoReflect.Descriptor instead. +func (*UpdateTaskProgressRequest) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{99} +} + +func (x *UpdateTaskProgressRequest) GetAssignRecordsUUID() string { + if x != nil { + return x.AssignRecordsUUID + } + return "" +} + +func (x *UpdateTaskProgressRequest) GetEmployeeName() string { + if x != nil { + return x.EmployeeName + } + return "" +} + +func (x *UpdateTaskProgressRequest) GetEmployeeNum() string { + if x != nil { + return x.EmployeeNum + } + return "" +} + +func (x *UpdateTaskProgressRequest) GetTaskType() string { + if x != nil { + return x.TaskType + } + return "" +} + +func (x *UpdateTaskProgressRequest) GetCompleteCount() int32 { + if x != nil { + return x.CompleteCount + } + return 0 +} + +// 多条件查询操作记录表 +type TaskAssignRecordsQueryRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Keyword string `protobuf:"bytes,1,opt,name=keyword,proto3" json:"keyword,omitempty"` // 艺人姓名、编号、手机号搜索关键词 + TaskAssignee string `protobuf:"bytes,2,opt,name=taskAssignee,proto3" json:"taskAssignee,omitempty"` // 指派人姓名 + Operator string `protobuf:"bytes,3,opt,name=operator,proto3" json:"operator,omitempty"` // 操作人姓名 + OperatorNum string `protobuf:"bytes,4,opt,name=operatorNum,proto3" json:"operatorNum,omitempty"` // 操作人手机号 + StartTime string `protobuf:"bytes,5,opt,name=startTime,proto3" json:"startTime,omitempty"` // 操作开始时间 + EndTime string `protobuf:"bytes,6,opt,name=endTime,proto3" json:"endTime,omitempty"` // 操作结束时间 + Status int32 `protobuf:"varint,7,opt,name=status,proto3" json:"status,omitempty"` // 反馈完成状态 + ActualStatus int32 `protobuf:"varint,8,opt,name=actualStatus,proto3" json:"actualStatus,omitempty"` // 实际完成状态 + Page int32 `protobuf:"varint,9,opt,name=page,proto3" json:"page,omitempty"` // 页码 + PageSize int32 `protobuf:"varint,10,opt,name=pageSize,proto3" json:"pageSize,omitempty"` // 每页数量 +} + +func (x *TaskAssignRecordsQueryRequest) Reset() { + *x = TaskAssignRecordsQueryRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[100] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TaskAssignRecordsQueryRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TaskAssignRecordsQueryRequest) ProtoMessage() {} + +func (x *TaskAssignRecordsQueryRequest) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[100] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TaskAssignRecordsQueryRequest.ProtoReflect.Descriptor instead. +func (*TaskAssignRecordsQueryRequest) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{100} +} + +func (x *TaskAssignRecordsQueryRequest) GetKeyword() string { + if x != nil { + return x.Keyword + } + return "" +} + +func (x *TaskAssignRecordsQueryRequest) GetTaskAssignee() string { + if x != nil { + return x.TaskAssignee + } + return "" +} + +func (x *TaskAssignRecordsQueryRequest) GetOperator() string { + if x != nil { + return x.Operator + } + return "" +} + +func (x *TaskAssignRecordsQueryRequest) GetOperatorNum() string { + if x != nil { + return x.OperatorNum + } + return "" +} + +func (x *TaskAssignRecordsQueryRequest) GetStartTime() string { + if x != nil { + return x.StartTime + } + return "" +} + +func (x *TaskAssignRecordsQueryRequest) GetEndTime() string { + if x != nil { + return x.EndTime + } + return "" +} + +func (x *TaskAssignRecordsQueryRequest) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *TaskAssignRecordsQueryRequest) GetActualStatus() int32 { + if x != nil { + return x.ActualStatus + } + return 0 +} + +func (x *TaskAssignRecordsQueryRequest) GetPage() int32 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *TaskAssignRecordsQueryRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +type TaskAssignRecordsQueryResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Records []*TaskAssignRecordInfo `protobuf:"bytes,1,rep,name=records,proto3" json:"records,omitempty"` + Total int64 `protobuf:"varint,2,opt,name=total,proto3" json:"total,omitempty"` + Page int32 `protobuf:"varint,3,opt,name=page,proto3" json:"page,omitempty"` + PageSize int32 `protobuf:"varint,4,opt,name=pageSize,proto3" json:"pageSize,omitempty"` +} + +func (x *TaskAssignRecordsQueryResponse) Reset() { + *x = TaskAssignRecordsQueryResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[101] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TaskAssignRecordsQueryResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TaskAssignRecordsQueryResponse) ProtoMessage() {} + +func (x *TaskAssignRecordsQueryResponse) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[101] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TaskAssignRecordsQueryResponse.ProtoReflect.Descriptor instead. +func (*TaskAssignRecordsQueryResponse) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{101} +} + +func (x *TaskAssignRecordsQueryResponse) GetRecords() []*TaskAssignRecordInfo { + if x != nil { + return x.Records + } + return nil +} + +func (x *TaskAssignRecordsQueryResponse) GetTotal() int64 { + if x != nil { + return x.Total + } + return 0 +} + +func (x *TaskAssignRecordsQueryResponse) GetPage() int32 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *TaskAssignRecordsQueryResponse) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +// 查询艺人套餐剩余数量请求 +type ArtistBundleBalanceRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CustomerNum string `protobuf:"bytes,1,opt,name=customerNum,proto3" json:"customerNum,omitempty"` // 艺人编号(推荐使用) + TelNum string `protobuf:"bytes,2,opt,name=telNum,proto3" json:"telNum,omitempty"` // 艺人手机号(备选) +} + +func (x *ArtistBundleBalanceRequest) Reset() { + *x = ArtistBundleBalanceRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[102] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ArtistBundleBalanceRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ArtistBundleBalanceRequest) ProtoMessage() {} + +func (x *ArtistBundleBalanceRequest) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[102] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ArtistBundleBalanceRequest.ProtoReflect.Descriptor instead. +func (*ArtistBundleBalanceRequest) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{102} +} + +func (x *ArtistBundleBalanceRequest) GetCustomerNum() string { + if x != nil { + return x.CustomerNum + } + return "" +} + +func (x *ArtistBundleBalanceRequest) GetTelNum() string { + if x != nil { + return x.TelNum + } + return "" +} + +// 艺人套餐剩余数量响应 +type ArtistBundleBalanceResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RemainingVideoCount int32 `protobuf:"varint,1,opt,name=remainingVideoCount,proto3" json:"remainingVideoCount,omitempty"` // 剩余视频数量 + RemainingImageCount int32 `protobuf:"varint,2,opt,name=remainingImageCount,proto3" json:"remainingImageCount,omitempty"` // 剩余图片数量 + RemainingDataAnalysisCount int32 `protobuf:"varint,3,opt,name=remainingDataAnalysisCount,proto3" json:"remainingDataAnalysisCount,omitempty"` // 剩余数据分析数量 +} + +func (x *ArtistBundleBalanceResponse) Reset() { + *x = ArtistBundleBalanceResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_bundle_proto_msgTypes[103] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ArtistBundleBalanceResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ArtistBundleBalanceResponse) ProtoMessage() {} + +func (x *ArtistBundleBalanceResponse) ProtoReflect() protoreflect.Message { + mi := &file_pb_bundle_proto_msgTypes[103] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ArtistBundleBalanceResponse.ProtoReflect.Descriptor instead. +func (*ArtistBundleBalanceResponse) Descriptor() ([]byte, []int) { + return file_pb_bundle_proto_rawDescGZIP(), []int{103} +} + +func (x *ArtistBundleBalanceResponse) GetRemainingVideoCount() int32 { + if x != nil { + return x.RemainingVideoCount + } + return 0 +} + +func (x *ArtistBundleBalanceResponse) GetRemainingImageCount() int32 { + if x != nil { + return x.RemainingImageCount + } + return 0 +} + +func (x *ArtistBundleBalanceResponse) GetRemainingDataAnalysisCount() int32 { + if x != nil { + return x.RemainingDataAnalysisCount + } + return 0 +} + var File_pb_bundle_proto protoreflect.FileDescriptor -const file_pb_bundle_proto_rawDesc = "" + - "\n" + - "\x0fpb/bundle.proto\x12\x06bundle\x1a\x13pb/descriptor.proto\x1a\x12pb/validator.proto\"P\n" + - "\x1cDeleteValueAddServiceRequest\x12\x18\n" + - "\aorderNo\x18\x01 \x01(\tR\aorderNo\x12\x16\n" + - "\x06userID\x18\x02 \x01(\x04R\x06userID\"\xdc\x03\n" + - "\x18GetReconciliationListReq\x12\x1a\n" + - "\buserName\x18\x01 \x01(\tR\buserName\x12\x1e\n" + - "\n" + - "bundleName\x18\x02 \x01(\tR\n" + - "bundleName\x12\x1c\n" + - "\tpayStatus\x18\x03 \x01(\x05R\tpayStatus\x12\x1e\n" + - "\n" + - "payChannel\x18\x04 \x01(\x05R\n" + - "payChannel\x12$\n" + - "\rbundleOrderOn\x18\x05 \x01(\tR\rbundleOrderOn\x12\"\n" + - "\fcreatedStart\x18\x06 \x01(\tR\fcreatedStart\x12\x1e\n" + - "\n" + - "createdEnd\x18\a \x01(\tR\n" + - "createdEnd\x12\"\n" + - "\fpayTimeStart\x18\b \x01(\tR\fpayTimeStart\x12\x1e\n" + - "\n" + - "payTimeEnd\x18\t \x01(\tR\n" + - "payTimeEnd\x12\"\n" + - "\fserialNumber\x18\n" + - " \x01(\tR\fserialNumber\x12\x12\n" + - "\x04page\x18\v \x01(\x05R\x04page\x12\x1a\n" + - "\bpageSize\x18\f \x01(\x05R\bpageSize\x12\x18\n" + - "\auserIDS\x18\r \x03(\x04R\auserIDS\x12*\n" + - "\x10bundleAddOrderOn\x18\x0e \x01(\tR\x10bundleAddOrderOn\"\x91\x01\n" + - "\x19GetReconciliationListResp\x12.\n" + - "\x04list\x18\x01 \x03(\v2\x1a.bundle.ReconciliationInfoR\x04list\x12\x14\n" + - "\x05total\x18\x02 \x01(\x03R\x05total\x12\x12\n" + - "\x04page\x18\x03 \x01(\x05R\x04page\x12\x1a\n" + - "\bpageSize\x18\x04 \x01(\x05R\bpageSize\"\x80\x04\n" + - "\x12ReconciliationInfo\x12\x0e\n" + - "\x02ID\x18\x01 \x01(\x04R\x02ID\x12$\n" + - "\rbundleOrderOn\x18\x02 \x01(\tR\rbundleOrderOn\x12*\n" + - "\x10bundleAddOrderOn\x18\x03 \x01(\tR\x10bundleAddOrderOn\x12\"\n" + - "\fCreationTime\x18\x04 \x01(\tR\fCreationTime\x12\x1a\n" + - "\buserName\x18\x05 \x01(\tR\buserName\x12\x18\n" + - "\auserTel\x18\x06 \x01(\tR\auserTel\x12\x1e\n" + - "\n" + - "bundleName\x18\a \x01(\tR\n" + - "bundleName\x12\x1c\n" + - "\tpayAmount\x18\b \x01(\x02R\tpayAmount\x12\"\n" + - "\fcurrencyType\x18\t \x01(\x05R\fcurrencyType\x12\x1e\n" + - "\n" + - "payChannel\x18\n" + - " \x01(\x05R\n" + - "payChannel\x12\x18\n" + - "\apayTime\x18\v \x01(\tR\apayTime\x12\x1c\n" + - "\tpayStatus\x18\f \x01(\x05R\tpayStatus\x12\"\n" + - "\fserialNumber\x18\r \x01(\tR\fserialNumber\x12\x16\n" + - "\x06userID\x18\x0e \x01(\x04R\x06userID\x12 \n" + - "\vhandlingFee\x18\x0f \x01(\tR\vhandlingFee\x12\x16\n" + - "\x06subNum\x18\x10 \x01(\tR\x06subNum\"5\n" + - "\x19OrderInfoByOrderNoRequest\x12\x18\n" + - "\aorderNo\x18\x01 \x01(\tR\aorderNo\"\xb8\x02\n" + - "\x16OrderInfoByOrderNoResp\x12\x12\n" + - "\x04type\x18\x01 \x01(\x05R\x04type\x12\x16\n" + - "\x06userId\x18\x02 \x01(\x04R\x06userId\x12\x1c\n" + - "\torderUUID\x18\x03 \x01(\tR\torderUUID\x12$\n" + - "\raccountNumber\x18\x04 \x01(\x05R\raccountNumber\x12 \n" + - "\vvideoNumber\x18\x05 \x01(\x05R\vvideoNumber\x12 \n" + - "\vimageNumber\x18\x06 \x01(\x05R\vimageNumber\x12\x1e\n" + - "\n" + - "dataNumber\x18\a \x01(\x05R\n" + - "dataNumber\x12\x1a\n" + - "\bduration\x18\b \x01(\x05R\bduration\x12\x12\n" + - "\x04unit\x18\t \x01(\tR\x04unit\x12\x1a\n" + - "\buserName\x18\n" + - " \x01(\tR\buserName\"\xc3\x05\n" + - "\x11OrderCreateRecord\x12\x1e\n" + - "\n" + - "bundleUuid\x18\x01 \x01(\tR\n" + - "bundleUuid\x12\x1a\n" + - "\blanguage\x18\x02 \x01(\tR\blanguage\x12&\n" + - "\x0eexpirationTime\x18\x03 \x01(\tR\x0eexpirationTime\x12\x1e\n" + - "\n" + - "bundleName\x18\x04 \x01(\tR\n" + - "bundleName\x12\x1e\n" + - "\n" + - "customerID\x18\x05 \x01(\tR\n" + - "customerID\x12 \n" + - "\vcustomerNum\x18\x06 \x01(\tR\vcustomerNum\x12\"\n" + - "\fcustomerName\x18\a \x01(\tR\fcustomerName\x12\x16\n" + - "\x06amount\x18\b \x01(\x02R\x06amount\x12\x1e\n" + - "\n" + - "amountType\x18\t \x01(\x03R\n" + - "amountType\x12\"\n" + - "\fsignContract\x18\n" + - " \x01(\tR\fsignContract\x12\x1c\n" + - "\tsignature\x18\v \x01(\tR\tsignature\x12\x1e\n" + - "\n" + - "signedTime\x18\f \x01(\tR\n" + - "signedTime\x12\x16\n" + - "\x06status\x18\r \x01(\x03R\x06status\x12\x18\n" + - "\apayTime\x18\x0e \x01(\tR\apayTime\x12\x1e\n" + - "\n" + - "contractNo\x18\x0f \x01(\tR\n" + - "contractNo\x12 \n" + - "\vtotalAmount\x18\x10 \x01(\x02R\vtotalAmount\x12(\n" + - "\x0fbundleCommonUid\x18\x11 \x01(\tR\x0fbundleCommonUid\x12\x1a\n" + - "\bsnapshot\x18\x12 \x01(\tR\bsnapshot\x12\x18\n" + - "\apayType\x18\x13 \x01(\x05R\apayType\x12<\n" + - "\n" + - "addRecords\x18\x14 \x03(\v2\x1c.bundle.OrderCreateAddRecordR\n" + - "addRecords\x12\x18\n" + - "\aorderNo\x18\x15 \x01(\tR\aorderNo\"\x96\x02\n" + - "\x14OrderCreateAddRecord\x12 \n" + - "\vserviceType\x18\x01 \x01(\x05R\vserviceType\x12\x1a\n" + - "\bvalueUid\x18\x02 \x01(\tR\bvalueUid\x12\"\n" + - "\fcurrencyType\x18\x03 \x01(\x03R\fcurrencyType\x12\x16\n" + - "\x06amount\x18\x04 \x01(\x02R\x06amount\x12\x10\n" + - "\x03num\x18\x05 \x01(\x05R\x03num\x12\x12\n" + - "\x04unit\x18\x06 \x01(\tR\x04unit\x12\x16\n" + - "\x06source\x18\a \x01(\x05R\x06source\x12$\n" + - "\rpaymentStatus\x18\b \x01(\x05R\rpaymentStatus\x12 \n" + - "\vhandlingFee\x18\t \x01(\tR\vhandlingFee\"\xcd\x04\n" + - "\x15OrderRecordsRequestV2\x12\"\n" + - "\fcustomerName\x18\x01 \x01(\tR\fcustomerName\x12\x16\n" + - "\x06telNum\x18\x02 \x01(\tR\x06telNum\x12\x1e\n" + - "\n" + - "bundleName\x18\x03 \x01(\tR\n" + - "bundleName\x12\x1c\n" + - "\tpayStatus\x18\x04 \x01(\x05R\tpayStatus\x12\"\n" + - "\faddPayStatus\x18\x05 \x01(\x05R\faddPayStatus\x12\x18\n" + - "\aorderNo\x18\x06 \x01(\tR\aorderNo\x12\x1e\n" + - "\n" + - "orderAddNo\x18\a \x01(\tR\n" + - "orderAddNo\x120\n" + - "\x13bundleCreateAtStart\x18\b \x01(\tR\x13bundleCreateAtStart\x12,\n" + - "\x11bundleCreateAtEnd\x18\t \x01(\tR\x11bundleCreateAtEnd\x124\n" + - "\x15orderAddCreateAtStart\x18\n" + - " \x01(\tR\x15orderAddCreateAtStart\x120\n" + - "\x13orderAddCreateAtEnd\x18\v \x01(\tR\x13orderAddCreateAtEnd\x12\x12\n" + - "\x04page\x18\f \x01(\x05R\x04page\x12\x1a\n" + - "\bpageSize\x18\r \x01(\x05R\bpageSize\x12\x18\n" + - "\auserIds\x18\x0e \x03(\x03R\auserIds\x12&\n" + - "\x0ebundlePayStart\x18\x0f \x01(\tR\x0ebundlePayStart\x12\"\n" + - "\fbundlePayEnd\x18\x10 \x01(\tR\fbundlePayEnd\"\x9d\x01\n" + - "\x16OrderRecordsResponseV2\x12=\n" + - "\n" + - "bundleInfo\x18\x01 \x03(\v2\x1d.bundle.OrderBundleRecordInfoR\n" + - "bundleInfo\x12\x12\n" + - "\x04page\x18\x02 \x01(\x05R\x04page\x12\x1a\n" + - "\bpageSize\x18\x03 \x01(\x05R\bpageSize\x12\x14\n" + - "\x05total\x18\x04 \x01(\x05R\x05total\"\x85\x03\n" + - "\x15OrderBundleRecordInfo\x12\x18\n" + - "\aorderNo\x18\x01 \x01(\tR\aorderNo\x12\x1e\n" + - "\n" + - "bundleName\x18\x02 \x01(\tR\n" + - "bundleName\x12\x1c\n" + - "\tpayStatus\x18\x03 \x01(\x05R\tpayStatus\x12\x16\n" + - "\x06telNum\x18\x04 \x01(\tR\x06telNum\x12\"\n" + - "\fcustomerName\x18\x05 \x01(\tR\fcustomerName\x12&\n" + - "\x0ebundleCreateAt\x18\x06 \x01(\tR\x0ebundleCreateAt\x12\x16\n" + - "\x06amount\x18\a \x01(\x02R\x06amount\x12F\n" + - "\raddBundleInfo\x18\b \x03(\v2 .bundle.OrderAddBundleRecordInfoR\raddBundleInfo\x12\x1e\n" + - "\n" + - "customerId\x18\t \x01(\x03R\n" + - "customerId\x12\x18\n" + - "\apayTime\x18\n" + - " \x01(\tR\apayTime\x12\x16\n" + - "\x06subNum\x18\v \x01(\tR\x06subNum\"\xda\x03\n" + - "\x18OrderAddBundleRecordInfo\x12\x1e\n" + - "\n" + - "orderAddNo\x18\x01 \x01(\tR\n" + - "orderAddNo\x12\x16\n" + - "\x06amount\x18\x02 \x01(\x02R\x06amount\x12*\n" + - "\x10settlementAmount\x18\x03 \x01(\x02R\x10settlementAmount\x12\"\n" + - "\fcurrencyType\x18\x04 \x01(\x05R\fcurrencyType\x12 \n" + - "\vhandlingFee\x18\x05 \x01(\tR\vhandlingFee\x12\"\n" + - "\fexchangeRate\x18\x06 \x01(\x02R\fexchangeRate\x12*\n" + - "\x10orderAddCreateAt\x18\a \x01(\tR\x10orderAddCreateAt\x12\"\n" + - "\faddPayStatus\x18\b \x01(\x05R\faddPayStatus\x12\x1a\n" + - "\bcontract\x18\t \x01(\tR\bcontract\x12\x1a\n" + - "\bsnapshot\x18\n" + - " \x01(\tR\bsnapshot\x12,\n" + - "\x11CheckoutSessionId\x18\v \x01(\tR\x11CheckoutSessionId\x12\x1e\n" + - "\n" + - "CustomerID\x18\f \x01(\tR\n" + - "CustomerID\x12\x1a\n" + - "\bvideoNum\x18\r \x01(\x05R\bvideoNum\"G\n" + - "\x1bPackagePriceAndTimeResponse\x12\x14\n" + - "\x05price\x18\x01 \x01(\x02R\x05price\x12\x12\n" + - "\x04time\x18\x02 \x01(\tR\x04time\"P\n" + - "\x0eCommonResponse\x12\x10\n" + - "\x03msg\x18\x01 \x01(\tR\x03msg\x12\x12\n" + - "\x04uuid\x18\x02 \x01(\tR\x04uuid\x12\x18\n" + - "\aorderNo\x18\x03 \x01(\tR\aorderNo\"\xb1\x05\n" + - "\rBundleProfile\x12\x12\n" + - "\x04uuid\x18\x01 \x01(\tR\x04uuid\x12\x12\n" + - "\x04name\x18\x02 \x01(\tR\x04name\x12\x14\n" + - "\x05price\x18\x03 \x01(\x02R\x05price\x12\x1c\n" + - "\tpriceType\x18\x04 \x01(\x03R\tpriceType\x12\x18\n" + - "\acontent\x18\x05 \x01(\tR\acontent\x12\x1a\n" + - "\bcontract\x18\x06 \x01(\tR\bcontract\x12\x1a\n" + - "\blanguage\x18\a \x01(\tR\blanguage\x12\x1c\n" + - "\tcreatedAt\x18\b \x01(\tR\tcreatedAt\x12\x1c\n" + - "\tupdatedAt\x18\t \x01(\tR\tupdatedAt\x12 \n" + - "\vcompanySign\x18\n" + - " \x01(\tR\vcompanySign\x12*\n" + - "\x10contractDuration\x18\v \x01(\x03R\x10contractDuration\x12(\n" + - "\x0fbundleCommonUid\x18\f \x01(\tR\x0fbundleCommonUid\x12\x12\n" + - "\x04sort\x18\r \x01(\x03R\x04sort\x12\x16\n" + - "\x06bgImg1\x18\x0e \x01(\tR\x06bgImg1\x12\x16\n" + - "\x06bgImg2\x18\x0f \x01(\tR\x06bgImg2\x12 \n" + - "\vshelfStatus\x18\x10 \x01(\x03R\vshelfStatus\x12S\n" + - "\x15selectValueAddService\x18\x11 \x03(\v2\x1d.bundle.SelectValueAddServiceR\x15SelectValueAddService\x12G\n" + - "\x11bundleProfileLang\x18\x12 \x03(\v2\x19.bundle.BundleProfileLangR\x11bundleProfileLang\x12\x1c\n" + - "\timgOption\x18\x13 \x01(\x05R\timgOption\x12\x1c\n" + - "\tfontColor\x18\x14 \x01(\tR\tfontColor\"\xed\x03\n" + - "\x11BundleProfileLang\x12\x12\n" + - "\x04uuid\x18\x01 \x01(\tR\x04uuid\x12\x12\n" + - "\x04name\x18\x02 \x01(\tR\x04name\x12\x14\n" + - "\x05price\x18\x03 \x01(\x02R\x05price\x12\x1c\n" + - "\tpriceType\x18\x04 \x01(\x03R\tpriceType\x12\x18\n" + - "\acontent\x18\x05 \x01(\tR\acontent\x12\x1a\n" + - "\blanguage\x18\x06 \x01(\tR\blanguage\x12\x1c\n" + - "\tcreatedAt\x18\a \x01(\tR\tcreatedAt\x12\x1c\n" + - "\tupdatedAt\x18\b \x01(\tR\tupdatedAt\x12\x1a\n" + - "\bcontract\x18\t \x01(\tR\bcontract\x12 \n" + - "\vcompanySign\x18\n" + - " \x01(\tR\vcompanySign\x12*\n" + - "\x10contractDuration\x18\v \x01(\x03R\x10contractDuration\x12\x1c\n" + - "\tfontColor\x18\f \x01(\tR\tfontColor\x12\x12\n" + - "\x04sort\x18\r \x01(\x03R\x04sort\x12\x16\n" + - "\x06bgImg1\x18\x0e \x01(\tR\x06bgImg1\x12\x16\n" + - "\x06bgImg2\x18\x0f \x01(\tR\x06bgImg2\x12 \n" + - "\vshelfStatus\x18\x10 \x01(\x03R\vshelfStatus\x12\x1c\n" + - "\timgOption\x18\x11 \x01(\x05R\timgOption\"R\n" + - "\fSaveResponse\x12\x10\n" + - "\x03msg\x18\x01 \x01(\tR\x03msg\x12\x12\n" + - "\x04uuid\x18\x02 \x01(\tR\x04uuid\x12\x1c\n" + - "\tcancelNum\x18\x03 \x01(\x03R\tcancelNum\"\x9d\x01\n" + - "\x15SelectValueAddService\x12\"\n" + - "\fvalueAddUuid\x18\x01 \x01(\tR\fvalueAddUuid\x12 \n" + - "\vserviceName\x18\x02 \x01(\tR\vserviceName\x12\x1c\n" + - "\tisDisplay\x18\x03 \x01(\bR\tisDisplay\x12 \n" + - "\vserviceType\x18\x04 \x01(\x05R\vserviceType\"&\n" + - "\x10DelBundleRequest\x12\x12\n" + - "\x04uuid\x18\x01 \x01(\tR\x04uuid\"\x8d\x01\n" + - "\x11BundleListRequest\x12\x12\n" + - "\x04page\x18\x01 \x01(\x05R\x04page\x12\x1a\n" + - "\bpageSize\x18\x02 \x01(\x05R\bpageSize\x12\x12\n" + - "\x04name\x18\x03 \x01(\tR\x04name\x12\x18\n" + - "\acontent\x18\x04 \x01(\tR\acontent\x12\x1a\n" + - "\blanguage\x18\x05 \x01(\tR\blanguage\"[\n" + - "\x12BundleListResponse\x12/\n" + - "\abundles\x18\x01 \x03(\v2\x15.bundle.BundleProfileR\abundles\x12\x14\n" + - "\x05total\x18\x02 \x01(\x05R\x05total\"E\n" + - "\x13BundleDetailRequest\x12\x12\n" + - "\x04uuid\x18\x01 \x01(\tR\x04uuid\x12\x1a\n" + - "\blanguage\x18\x02 \x01(\tR\blanguage\"H\n" + - "\x10HandShelfRequest\x12\x12\n" + - "\x04uuid\x18\x01 \x01(\tR\x04uuid\x12 \n" + - "\vshelfStatus\x18\x02 \x01(\x03R\vshelfStatus\"W\n" + - "\x14BundleDetailResponse\x12-\n" + - "\x06bundle\x18\x01 \x01(\v2\x15.bundle.BundleProfileR\x06bundle\x12\x10\n" + - "\x03msg\x18\x02 \x01(\tR\x03msg\"Y\n" + - "\x16BundleDetailResponseV2\x12-\n" + - "\x06bundle\x18\x01 \x01(\v2\x15.bundle.BundleProfileR\x06bundle\x12\x10\n" + - "\x03msg\x18\x02 \x01(\tR\x03msg\"\xa6\v\n" + - "\vOrderRecord\x12\x12\n" + - "\x04uuid\x18\x01 \x01(\tR\x04uuid\x12\x1e\n" + - "\n" + - "bundleUuid\x18\x02 \x01(\tR\n" + - "bundleUuid\x12\x1e\n" + - "\n" + - "customerID\x18\x03 \x01(\tR\n" + - "customerID\x12 \n" + - "\vcustomerNum\x18\x04 \x01(\tR\vcustomerNum\x12\"\n" + - "\fcustomerName\x18\x05 \x01(\tR\fcustomerName\x12\x16\n" + - "\x06amount\x18\x06 \x01(\x02R\x06amount\x12\x1e\n" + - "\n" + - "amountType\x18\a \x01(\x03R\n" + - "amountType\x12\"\n" + - "\fsignContract\x18\b \x01(\tR\fsignContract\x12\x1c\n" + - "\tsignature\x18\t \x01(\tR\tsignature\x12\x1e\n" + - "\n" + - "signedTime\x18\n" + - " \x01(\tR\n" + - "signedTime\x12\x18\n" + - "\apayType\x18\v \x01(\x03R\apayType\x12\x18\n" + - "\apayTime\x18\f \x01(\tR\apayTime\x12,\n" + - "\x11checkoutSessionId\x18\r \x01(\tR\x11checkoutSessionId\x12.\n" + - "\x12checkoutSessionUrl\x18\x0e \x01(\tR\x12checkoutSessionUrl\x12\x16\n" + - "\x06status\x18\x0f \x01(\x03R\x06status\x12\x18\n" + - "\aorderNo\x18\x10 \x01(\tR\aorderNo\x12\x1e\n" + - "\n" + - "bundleName\x18\x11 \x01(\tR\n" + - "bundleName\x12\x1e\n" + - "\n" + - "contractNo\x18\x12 \x01(\tR\n" + - "contractNo\x12.\n" + - "\x12valueAddBundleUuid\x18\x13 \x01(\tR\x12valueAddBundleUuid\x122\n" + - "\x14valueAddBundleAmount\x18\x14 \x01(\x02R\x14valueAddBundleAmount\x124\n" + - "\x15valueAddOriginalPrice\x18\x15 \x01(\x02R\x15valueAddOriginalPrice\x124\n" + - "\x15valueAddDiscountPrice\x18\x16 \x01(\x02R\x15valueAddDiscountPrice\x120\n" + - "\x13valueAddSavedAmount\x18\x17 \x01(\x02R\x13valueAddSavedAmount\x12\x10\n" + - "\x03num\x18\x18 \x01(\x05R\x03num\x12 \n" + - "\vtotalAmount\x18\x19 \x01(\x02R\vtotalAmount\x12\x10\n" + - "\x03sex\x18\x1a \x01(\tR\x03sex\x12 \n" + - "\vnationality\x18\x1b \x01(\tR\vnationality\x12.\n" + - "\x12certificatePicture\x18\x1c \x01(\tR\x12certificatePicture\x12*\n" + - "\x10placeOfResidence\x18\x1d \x01(\tR\x10placeOfResidence\x12\x1e\n" + - "\n" + - "groupPhoto\x18\x1e \x01(\tR\n" + - "groupPhoto\x12(\n" + - "\x0fbundleCommonUid\x18\x1f \x01(\tR\x0fbundleCommonUid\x12.\n" + - "\x12addBundleCommonUid\x18 \x01(\tR\x12addBundleCommonUid\x124\n" + - "\x15financialConfirmation\x18! \x01(\x05R\x15financialConfirmation\x12\x16\n" + - "\x06telNum\x18\" \x01(\tR\x06telNum\x12\x1a\n" + - "\blanguage\x18# \x01(\tR\blanguage\x12D\n" + - "\x10priceOptionsInfo\x18$ \x03(\v2\x18.bundle.PriceOptionsInfoR\x10priceOptionsInfo\x12&\n" + - "\x0eexpirationTime\x18% \x01(\tR\x0eexpirationTime\x12\x1a\n" + - "\bsnapshot\x18& \x01(\tR\bsnapshot\x12+\n" + - "\baddInfos\x18' \x03(\v2\x0f.bundle.AddInfoR\baddInfos\"Y\n" + - "\aAddInfo\x12\x18\n" + - "\aorderNo\x18\x01 \x01(\tR\aorderNo\x12\x10\n" + - "\x03num\x18\x02 \x01(\x05R\x03num\x12\"\n" + - "\fvalueAddUUID\x18\x03 \x01(\tR\fvalueAddUUID\"\xdd\x03\n" + - "\x0eOrderAddRecord\x12\x1e\n" + - "\n" + - "bundleUuid\x18\x01 \x01(\tR\n" + - "bundleUuid\x12M\n" + - "\x13addPriceOptionsList\x18\x02 \x03(\v2\x1b.bundle.AddPriceOptionsInfoR\x13addPriceOptionsList\x12\x1a\n" + - "\blanguage\x18\x03 \x01(\tR\blanguage\x12\x1e\n" + - "\n" + - "customerID\x18\x04 \x01(\tR\n" + - "customerID\x12 \n" + - "\vcustomerNum\x18\x05 \x01(\tR\vcustomerNum\x12\"\n" + - "\fcustomerName\x18\x06 \x01(\tR\fcustomerName\x12\x16\n" + - "\x06source\x18\a \x01(\x05R\x06source\x12\"\n" + - "\fsignContract\x18\b \x01(\tR\fsignContract\x12\x1c\n" + - "\tsignature\x18\t \x01(\tR\tsignature\x12\x1e\n" + - "\n" + - "signedTime\x18\n" + - " \x01(\tR\n" + - "signedTime\x12&\n" + - "\x0eexpirationDate\x18\v \x01(\tR\x0eexpirationDate\x12\x1a\n" + - "\bsnapshot\x18& \x01(\tR\bsnapshot\x12\x1c\n" + - "\torderUUID\x18' \x01(\tR\torderUUID\"\xc5\x01\n" + - "\x13AddPriceOptionsInfo\x12\x0e\n" + - "\x02id\x18\x01 \x01(\x05R\x02id\x12\x1a\n" + - "\bvalueUid\x18\x02 \x01(\tR\bvalueUid\x12 \n" + - "\vserviceType\x18\x03 \x01(\x05R\vserviceType\x12\"\n" + - "\fcurrencyType\x18\x04 \x01(\x03R\fcurrencyType\x12\x16\n" + - "\x06amount\x18\x05 \x01(\x02R\x06amount\x12\x10\n" + - "\x03num\x18\x06 \x01(\x05R\x03num\x12\x12\n" + - "\x04unit\x18\a \x01(\tR\x04unit\"P\n" + - "\x10PriceOptionsInfo\x12\x0e\n" + - "\x02id\x18\x01 \x01(\x05R\x02id\x12\x1a\n" + - "\bvalueUid\x18\x02 \x01(\tR\bvalueUid\x12\x10\n" + - "\x03num\x18\x03 \x01(\x05R\x03num\"\xa7\x04\n" + - "\x13OrderRecordsRequest\x12\x12\n" + - "\x04page\x18\x01 \x01(\x05R\x04page\x12\x1a\n" + - "\bpageSize\x18\x02 \x01(\x05R\bpageSize\x12 \n" + - "\vcustomerNum\x18\x03 \x01(\tR\vcustomerNum\x12\"\n" + - "\fcustomerName\x18\x04 \x01(\tR\fcustomerName\x12\x1e\n" + - "\n" + - "bundleUUID\x18\x05 \x01(\tR\n" + - "bundleUUID\x12\x18\n" + - "\aorderNo\x18\x06 \x01(\tR\aorderNo\x12\x16\n" + - "\x06status\x18\a \x01(\x03R\x06status\x12\x1e\n" + - "\n" + - "bundleName\x18\b \x01(\tR\n" + - "bundleName\x12(\n" + - "\x0fstartSignedTime\x18\t \x01(\tR\x0fstartSignedTime\x12$\n" + - "\rendSignedTime\x18\n" + - " \x01(\tR\rendSignedTime\x12\"\n" + - "\fstartPayTime\x18\v \x01(\tR\fstartPayTime\x12\x1e\n" + - "\n" + - "endPayTime\x18\f \x01(\tR\n" + - "endPayTime\x12\x1e\n" + - "\n" + - "customerID\x18\r \x01(\tR\n" + - "customerID\x12&\n" + - "\x0eisHaveValueAdd\x18\x0e \x01(\x03R\x0eisHaveValueAdd\x124\n" + - "\x15financialConfirmation\x18\x0f \x01(\x05R\x15financialConfirmation\x12\x16\n" + - "\x06telNum\x18\x10 \x01(\tR\x06telNum\"e\n" + - "\x14OrderRecordsResponse\x127\n" + - "\forderRecords\x18\x01 \x03(\v2\x13.bundle.OrderRecordR\forderRecords\x12\x14\n" + - "\x05total\x18\x02 \x01(\x05R\x05total\"\xa1\x01\n" + - "\x19OrderRecordsDetailRequest\x12\x12\n" + - "\x04uuid\x18\x01 \x01(\tR\x04uuid\x12\x18\n" + - "\aorderNo\x18\x02 \x01(\tR\aorderNo\x12\x1e\n" + - "\n" + - "customerID\x18\x03 \x01(\tR\n" + - "customerID\x12\x1e\n" + - "\n" + - "bundleUUID\x18\x04 \x01(\tR\n" + - "bundleUUID\x12\x16\n" + - "\x06status\x18\x05 \x01(\x04R\x06status\"e\n" + - "\x1aOrderRecordsDetailResponse\x125\n" + - "\vorderRecord\x18\x01 \x01(\v2\x13.bundle.OrderRecordR\vorderRecord\x12\x10\n" + - "\x03msg\x18\x02 \x01(\tR\x03msg\"\xdd\x02\n" + - "\x15ValueAddBundleProfile\x12\x12\n" + - "\x04uuid\x18\x01 \x01(\tR\x04uuid\x12\x10\n" + - "\x03num\x18\x02 \x01(\x05R\x03num\x12$\n" + - "\roriginalPrice\x18\x03 \x01(\x02R\roriginalPrice\x12$\n" + - "\rdiscountPrice\x18\x04 \x01(\x02R\rdiscountPrice\x12\x1e\n" + - "\n" + - "totalPrice\x18\x06 \x01(\x02R\n" + - "totalPrice\x12 \n" + - "\vsavedAmount\x18\a \x01(\x02R\vsavedAmount\x120\n" + - "\x13discountPriceStatus\x18\b \x01(\bR\x13discountPriceStatus\x12\x16\n" + - "\x06choose\x18\t \x01(\bR\x06choose\x12\x16\n" + - "\x06status\x18\n" + - " \x01(\bR\x06status\x12.\n" + - "\x12addBundleCommonUid\x18\v \x01(\tR\x12addBundleCommonUid\"Y\n" + - "\x1bCreateValueAddBundleRequest\x12:\n" + - "\x03num\x18\x01 \x01(\x05B(\xe2\xdf\x1f$\x10\x1d\x18e*\x1e至少数为30,最多数为100R\x03num\"\x86\x01\n" + - "\x1cCreateValueAddBundleResponse\x12\x12\n" + - "\x04uuid\x18\x01 \x01(\tR\x04uuid\x12\x1e\n" + - "\n" + - "totalPrice\x18\x02 \x01(\x02R\n" + - "totalPrice\x12 \n" + - "\vsavedAmount\x18\x03 \x01(\x02R\vsavedAmount\x12\x10\n" + - "\x03msg\x18\x04 \x01(\tR\x03msg\"q\n" + - "\x19ValueAddBundleListRequest\x12\x16\n" + - "\x06userId\x18\x01 \x01(\x05R\x06userId\x12\x1e\n" + - "\n" + - "bundleUuid\x18\x02 \x01(\tR\n" + - "bundleUuid\x12\x1c\n" + - "\tpriceType\x18\x03 \x01(\x05R\tpriceType\"\xf7\x01\n" + - "\x1aValueAddBundleListResponse\x12$\n" + - "\roriginalPrice\x18\x01 \x01(\x02R\roriginalPrice\x12\x14\n" + - "\x05total\x18\x02 \x01(\x05R\x05total\x121\n" + - "\x04data\x18\x03 \x03(\v2\x1d.bundle.ValueAddBundleProfileR\x04data\x12\x16\n" + - "\x06status\x18\x04 \x01(\bR\x06status\x12\x10\n" + - "\x03num\x18\x05 \x01(\x05R\x03num\x12\x14\n" + - "\x05price\x18\x06 \x01(\x02R\x05price\x12\x18\n" + - "\aorderNo\x18\a \x01(\bR\aorderNo\x12\x10\n" + - "\x03msg\x18\b \x01(\tR\x03msg\"1\n" + - "\x1bValueAddBundleDetailRequest\x12\x12\n" + - "\x04uuid\x18\x01 \x01(\tR\x04uuid\"}\n" + - "\x1cValueAddBundleDetailResponse\x121\n" + - "\x04data\x18\x01 \x01(\v2\x1d.bundle.ValueAddBundleProfileR\x04data\x12\x18\n" + - "\apayTime\x18\x02 \x01(\tR\apayTime\x12\x10\n" + - "\x03msg\x18\x03 \x01(\tR\x03msg\"8\n" + - "\x1cFinancialConfirmationRequest\x12\x18\n" + - "\aorderNo\x18\x01 \x01(\tR\aorderNo\"\xa8\x01\n" + - "\x0fValueAddService\x12\x12\n" + - "\x04uuid\x18\x01 \x01(\tR\x04uuid\x12 \n" + - "\vserviceName\x18\x02 \x01(\tR\vserviceName\x12 \n" + - "\vserviceType\x18\x03 \x01(\x05R\vserviceType\x12=\n" + - "\vserviceLang\x18\x04 \x03(\v2\x1b.bundle.ValueAddServiceLangR\vserviceLang\"\xf3\x02\n" + - "\x13ValueAddServiceLang\x12\x12\n" + - "\x04uuid\x18\x01 \x01(\tR\x04uuid\x12 \n" + - "\vserviceName\x18\x02 \x01(\tR\vserviceName\x12 \n" + - "\vserviceType\x18\x03 \x01(\x05R\vserviceType\x12\x1c\n" + - "\tpriceMode\x18\x04 \x01(\x05R\tpriceMode\x12$\n" + - "\roriginalPrice\x18\x05 \x01(\tR\roriginalPrice\x12\x12\n" + - "\x04unit\x18\x06 \x01(\tR\x04unit\x12\x1c\n" + - "\tpriceType\x18\a \x01(\x03R\tpriceType\x12\x1a\n" + - "\blanguage\x18\b \x01(\tR\blanguage\x12\x1c\n" + - "\tcreatedAt\x18\t \x01(\tR\tcreatedAt\x12\x1c\n" + - "\tupdatedAt\x18\n" + - " \x01(\tR\tupdatedAt\x126\n" + - "\aoptions\x18\f \x03(\v2\x1c.bundle.ValueAddPriceOptionsR\aoptions\"\x86\x01\n" + - "\x14ValueAddPriceOptions\x12\x0e\n" + - "\x02id\x18\x01 \x01(\x03R\x02id\x12\x10\n" + - "\x03num\x18\x02 \x01(\x05R\x03num\x12\x16\n" + - "\x06symbol\x18\x03 \x01(\tR\x06symbol\x12\x14\n" + - "\x05price\x18\x04 \x01(\tR\x05price\x12\x1e\n" + - "\n" + - "saveAmount\x18\x05 \x01(\tR\n" + - "saveAmount\"|\n" + - "\x1aValueAddServiceListRequest\x12\x12\n" + - "\x04page\x18\x01 \x01(\x05R\x04page\x12\x1a\n" + - "\bpageSize\x18\x02 \x01(\x05R\bpageSize\x12\x12\n" + - "\x04name\x18\x03 \x01(\tR\x04name\x12\x1a\n" + - "\blanguage\x18\x04 \x01(\tR\blanguage\"\x90\x01\n" + - "\x1bValueAddServiceListResponse\x12\x14\n" + - "\x05total\x18\x01 \x01(\x05R\x05total\x12\x10\n" + - "\x03msg\x18\x02 \x01(\tR\x03msg\x12I\n" + - "\x13valueAddServiceList\x18\x03 \x03(\v2\x17.bundle.ValueAddServiceR\x13valueAddServiceList\"N\n" + - "\x1cValueAddServiceDetailRequest\x12\x12\n" + - "\x04uuid\x18\x01 \x01(\tR\x04uuid\x12\x1a\n" + - "\blanguage\x18\x02 \x01(\tR\blanguage\"t\n" + - "\x1dValueAddServiceDetailResponse\x12\x10\n" + - "\x03msg\x18\x01 \x01(\tR\x03msg\x12A\n" + - "\x0fvalueAddService\x18\x02 \x01(\v2\x17.bundle.ValueAddServiceR\x0fvalueAddService\"Y\n" + - "\x15CalculatePriceRequest\x12\x12\n" + - "\x04uuid\x18\x01 \x01(\tR\x04uuid\x12\x10\n" + - "\x03num\x18\x02 \x01(\x05R\x03num\x12\x1a\n" + - "\blanguage\x18\x03 \x01(\tR\blanguage\"@\n" + - "\x16CalculatePriceResponse\x12\x10\n" + - "\x03msg\x18\x01 \x01(\tR\x03msg\x12\x14\n" + - "\x05price\x18\x02 \x01(\x02R\x05price\"V\n" + - "\"BatchGetValueAddServiceLangRequest\x12\x14\n" + - "\x05uuids\x18\x01 \x03(\tR\x05uuids\x12\x1a\n" + - "\blanguage\x18\x02 \x01(\tR\blanguage\"\x8e\x01\n" + - "#BatchGetValueAddServiceLangResponse\x12\x10\n" + - "\x03msg\x18\x01 \x01(\tR\x03msg\x12U\n" + - "\x17valueAddServiceLangList\x18\x02 \x03(\v2\x1b.bundle.ValueAddServiceLangR\x17valueAddServiceLangList\"\x8f\x04\n" + - "\x13BundleExtendRequest\x12\x16\n" + - "\x06userId\x18\x01 \x01(\x03R\x06userId\x12,\n" + - "\x11accountAdditional\x18\x02 \x01(\rR\x11accountAdditional\x12(\n" + - "\x0fvideoAdditional\x18\x03 \x01(\rR\x0fvideoAdditional\x12*\n" + - "\x10imagesAdditional\x18\x04 \x01(\rR\x10imagesAdditional\x12&\n" + - "\x0edataAdditional\x18\x05 \x01(\rR\x0edataAdditional\x12@\n" + - "\x1bavailableDurationAdditional\x18\x06 \x01(\rR\x1bavailableDurationAdditional\x12\x1a\n" + - "\btimeUnit\x18\a \x01(\rR\btimeUnit\x12\x16\n" + - "\x06remark\x18\b \x01(\tR\x06remark\x124\n" + - "\x15associatedorderNumber\x18\t \x01(\tR\x15associatedorderNumber\x12\x1e\n" + - "\n" + - "operatorId\x18\n" + - " \x01(\x04R\n" + - "operatorId\x12\"\n" + - "\foperatorName\x18\v \x01(\tR\foperatorName\x120\n" + - "\x13operatorPhoneNumber\x18\f \x01(\tR\x13operatorPhoneNumber\x12\x12\n" + - "\x04type\x18\r \x01(\x05R\x04type\"\x16\n" + - "\x14BundleExtendResponse\"\x82\x02\n" + - "\x1eBundleExtendRecordsListRequest\x12\x12\n" + - "\x04page\x18\x01 \x01(\x05R\x04page\x12\x1a\n" + - "\bpageSize\x18\x02 \x01(\x05R\bpageSize\x12\x12\n" + - "\x04user\x18\x03 \x01(\tR\x04user\x12\x1a\n" + - "\boperator\x18\x04 \x01(\tR\boperator\x12\x1c\n" + - "\tstartTime\x18\x05 \x01(\x04R\tstartTime\x12\x18\n" + - "\aendTime\x18\x06 \x01(\x04R\aendTime\x12\x12\n" + - "\x04type\x18\a \x01(\rR\x04type\x124\n" + - "\x15associatedOrderNumber\x18\b \x01(\tR\x15associatedOrderNumber\"k\n" + - "\x1fBundleExtendRecordsListResponse\x12\x14\n" + - "\x05total\x18\x01 \x01(\x03R\x05total\x122\n" + - "\x04data\x18\x02 \x03(\v2\x1e.bundle.BundleExtendRecordItemR\x04data\"\xbe\x04\n" + - "\x16BundleExtendRecordItem\x12\x1a\n" + - "\buserName\x18\x01 \x01(\tR\buserName\x12(\n" + - "\x0fuserPhoneNumber\x18\x02 \x01(\tR\x0fuserPhoneNumber\x12,\n" + - "\x11accountAdditional\x18\x03 \x01(\rR\x11accountAdditional\x12(\n" + - "\x0fvideoAdditional\x18\x04 \x01(\rR\x0fvideoAdditional\x12*\n" + - "\x10imagesAdditional\x18\x05 \x01(\rR\x10imagesAdditional\x12&\n" + - "\x0edataAdditional\x18\x06 \x01(\rR\x0edataAdditional\x12@\n" + - "\x1bavailableDurationAdditional\x18\a \x01(\rR\x1bavailableDurationAdditional\x12\x12\n" + - "\x04type\x18\b \x01(\x05R\x04type\x12\x1c\n" + - "\tcreatedAt\x18\t \x01(\x04R\tcreatedAt\x12\x16\n" + - "\x06remark\x18\n" + - " \x01(\tR\x06remark\x124\n" + - "\x15associatedOrderNumber\x18\v \x01(\tR\x15associatedOrderNumber\x12\x1a\n" + - "\btimeUnit\x18\f \x01(\rR\btimeUnit\x12\"\n" + - "\foperatorName\x18\r \x01(\tR\foperatorName\x120\n" + - "\x13operatorPhoneNumber\x18\x0e \x01(\tR\x13operatorPhoneNumber\"\x89\x02\n" + - "\x17GetBundleBalanceListReq\x12\x1a\n" + - "\buserName\x18\x01 \x01(\tR\buserName\x12\x16\n" + - "\x06status\x18\x02 \x01(\x05R\x06status\x12\x1e\n" + - "\n" + - "bundleName\x18\x03 \x01(\tR\n" + - "bundleName\x12\x16\n" + - "\x06bought\x18\x04 \x01(\x05R\x06bought\x12*\n" + - "\x10expiredTimeStart\x18\x05 \x01(\x03R\x10expiredTimeStart\x12&\n" + - "\x0eexpiredTimeEnd\x18\x06 \x01(\x03R\x0eexpiredTimeEnd\x12\x12\n" + - "\x04page\x18\a \x01(\x05R\x04page\x12\x1a\n" + - "\bpageSize\x18\b \x01(\x05R\bpageSize\"\xed\x01\n" + - "\x13GetBundleBalanceReq\x12\x1a\n" + - "\buserName\x18\x01 \x01(\tR\buserName\x12\x16\n" + - "\x06status\x18\x02 \x01(\x05R\x06status\x12\x1e\n" + - "\n" + - "bundleName\x18\x03 \x01(\tR\n" + - "bundleName\x12*\n" + - "\x10expiredTimeStart\x18\x04 \x01(\x03R\x10expiredTimeStart\x12&\n" + - "\x0eexpiredTimeEnd\x18\x05 \x01(\x03R\x0eexpiredTimeEnd\x12\x12\n" + - "\x04page\x18\x06 \x01(\x05R\x04page\x12\x1a\n" + - "\bpageSize\x18\a \x01(\x05R\bpageSize\"\xa3\x05\n" + - "\x11BundleBalanceItem\x12\x16\n" + - "\x06userId\x18\x01 \x01(\x05R\x06userId\x12\x1a\n" + - "\buserName\x18\x02 \x01(\tR\buserName\x12(\n" + - "\x0fuserPhoneNumber\x18\x03 \x01(\tR\x0fuserPhoneNumber\x12\x16\n" + - "\x06status\x18\x04 \x01(\x05R\x06status\x12\x1e\n" + - "\n" + - "bundleName\x18\x05 \x01(\tR\n" + - "bundleName\x12 \n" + - "\vexpiredTime\x18\x06 \x01(\x03R\vexpiredTime\x12$\n" + - "\raccountNumber\x18\a \x01(\x05R\raccountNumber\x12:\n" + - "\x18accountConsumptionNumber\x18\b \x01(\x05R\x18accountConsumptionNumber\x12 \n" + - "\vvideoNumber\x18\t \x01(\x05R\vvideoNumber\x126\n" + - "\x16videoConsumptionNumber\x18\n" + - " \x01(\x05R\x16videoConsumptionNumber\x12 \n" + - "\vimageNumber\x18\v \x01(\x05R\vimageNumber\x126\n" + - "\x16imageConsumptionNumber\x18\f \x01(\x05R\x16imageConsumptionNumber\x12.\n" + - "\x12dataAnalysisNumber\x18\r \x01(\x05R\x12dataAnalysisNumber\x12D\n" + - "\x1ddataAnalysisConsumptionNumber\x18\x0e \x01(\x05R\x1ddataAnalysisConsumptionNumber\x122\n" + - "\x14expansionPacksNumber\x18\x0f \x01(\x05R\x14expansionPacksNumber\x12\x16\n" + - "\x06bought\x18\x10 \x01(\x05R\x06bought\"_\n" + - "\x18GetBundleBalanceListResp\x12\x14\n" + - "\x05total\x18\x01 \x01(\x03R\x05total\x12-\n" + - "\x04data\x18\x02 \x03(\v2\x19.bundle.BundleBalanceItemR\x04data\"\x8e\x04\n" + - "\x16CreateBundleBalanceReq\x12\x16\n" + - "\x06userId\x18\x01 \x01(\x05R\x06userId\x12\x1c\n" + - "\torderUUID\x18\x02 \x01(\tR\torderUUID\x12$\n" + - "\raccountNumber\x18\x03 \x01(\x05R\raccountNumber\x12:\n" + - "\x18accountConsumptionNumber\x18\x04 \x01(\x05R\x18accountConsumptionNumber\x12 \n" + - "\vvideoNumber\x18\x05 \x01(\x05R\vvideoNumber\x126\n" + - "\x16videoConsumptionNumber\x18\x06 \x01(\x05R\x16videoConsumptionNumber\x12 \n" + - "\vimageNumber\x18\a \x01(\x05R\vimageNumber\x126\n" + - "\x16imageConsumptionNumber\x18\b \x01(\x05R\x16imageConsumptionNumber\x12.\n" + - "\x12dataAnalysisNumber\x18\t \x01(\x05R\x12dataAnalysisNumber\x12D\n" + - "\x1ddataAnalysisConsumptionNumber\x18\n" + - " \x01(\x05R\x1ddataAnalysisConsumptionNumber\x122\n" + - "\x14expansionPacksNumber\x18\v \x01(\x05R\x14expansionPacksNumber\"\x19\n" + - "\x17CreateBundleBalanceResp\"\x9b\x04\n" + - "\x13AddBundleBalanceReq\x12\x0e\n" + - "\x02id\x18\x01 \x01(\x05R\x02id\x12\x16\n" + - "\x06userId\x18\x02 \x01(\x05R\x06userId\x12\x1c\n" + - "\torderUUID\x18\x03 \x01(\tR\torderUUID\x12$\n" + - "\raccountNumber\x18\x04 \x01(\x05R\raccountNumber\x12:\n" + - "\x18accountConsumptionNumber\x18\x05 \x01(\x05R\x18accountConsumptionNumber\x12 \n" + - "\vvideoNumber\x18\x06 \x01(\x05R\vvideoNumber\x126\n" + - "\x16videoConsumptionNumber\x18\a \x01(\x05R\x16videoConsumptionNumber\x12 \n" + - "\vimageNumber\x18\b \x01(\x05R\vimageNumber\x126\n" + - "\x16imageConsumptionNumber\x18\t \x01(\x05R\x16imageConsumptionNumber\x12.\n" + - "\x12dataAnalysisNumber\x18\n" + - " \x01(\x05R\x12dataAnalysisNumber\x12D\n" + - "\x1ddataAnalysisConsumptionNumber\x18\v \x01(\x05R\x1ddataAnalysisConsumptionNumber\x122\n" + - "\x14expansionPacksNumber\x18\f \x01(\x05R\x14expansionPacksNumber\"\x16\n" + - "\x14AddBundleBalanceResp\"\xa6\x02\n" + - "\x14GetUsedRecordListReq\x12\x12\n" + - "\x04user\x18\x01 \x01(\tR\x04user\x12\x1a\n" + - "\boperator\x18\x02 \x01(\tR\boperator\x12\x18\n" + - "\aaccount\x18\x03 \x01(\tR\aaccount\x12\x1a\n" + - "\bplatform\x18\x04 \x01(\x05R\bplatform\x12\x12\n" + - "\x04type\x18\x05 \x01(\x05R\x04type\x12\x14\n" + - "\x05title\x18\x06 \x01(\tR\x05title\x12(\n" + - "\x0fsubmitTimeStart\x18\a \x01(\x03R\x0fsubmitTimeStart\x12$\n" + - "\rsubmitTimeEnd\x18\b \x01(\x03R\rsubmitTimeEnd\x12\x12\n" + - "\x04page\x18\t \x01(\x05R\x04page\x12\x1a\n" + - "\bpageSize\x18\n" + - " \x01(\x05R\bpageSize\"W\n" + - "\x15GetUsedRecordListResp\x12\x14\n" + - "\x05total\x18\x01 \x01(\x03R\x05total\x12(\n" + - "\x04data\x18\x02 \x03(\v2\x14.bundle.WorkCastItemR\x04data\"\xf4\x03\n" + - "\fWorkCastItem\x12\x1e\n" + - "\n" + - "artistUuid\x18\x01 \x01(\tR\n" + - "artistUuid\x12\x1e\n" + - "\n" + - "artistName\x18\x02 \x01(\tR\n" + - "artistName\x12 \n" + - "\vartistPhone\x18\x03 \x01(\tR\vartistPhone\x12\x1a\n" + - "\bworkUuid\x18\x04 \x01(\tR\bworkUuid\x12\"\n" + - "\fworkCategory\x18\x05 \x01(\rR\fworkCategory\x12\x1e\n" + - "\n" + - "bundleUuid\x18\x06 \x01(\tR\n" + - "bundleUuid\x12\x1e\n" + - "\n" + - "bundleName\x18\a \x01(\tR\n" + - "bundleName\x12 \n" + - "\vplatformIds\x18\b \x01(\tR\vplatformIds\x12\x1e\n" + - "\n" + - "mediaNames\x18\t \x01(\tR\n" + - "mediaNames\x12 \n" + - "\vmediaAccIDs\x18\n" + - " \x01(\tR\vmediaAccIDs\x12\x1c\n" + - "\tworkTitle\x18\v \x01(\tR\tworkTitle\x12\x1e\n" + - "\n" + - "submitTime\x18\f \x01(\tR\n" + - "submitTime\x12\"\n" + - "\foperatorName\x18\r \x01(\tR\foperatorName\x12$\n" + - "\roperatorPhone\x18\x0e \x01(\tR\roperatorPhone\x12\x16\n" + - "\x06status\x18\x0f \x01(\rR\x06status\"/\n" + - "\x15GetImageWorkDetailReq\x12\x16\n" + - "\x06workId\x18\x01 \x01(\tR\x06workId\"/\n" + - "\x15GetVedioWorkDetailReq\x12\x16\n" + - "\x06workId\x18\x01 \x01(\tR\x06workId\"\x86\x01\n" + - "\x16GetImageWorkDetailResp\x12\x16\n" + - "\x06workId\x18\x01 \x01(\tR\x06workId\x12\x1a\n" + - "\bcoverUrl\x18\x02 \x01(\tR\bcoverUrl\x12\x1a\n" + - "\bvideoUrl\x18\x03 \x01(\tR\bvideoUrl\x12\x1c\n" + - "\tcreatedAt\x18\x04 \x01(\x03R\tcreatedAt\"m\n" + - "\x17GetVedioeWorkDetailResp\x12\x16\n" + - "\x06workId\x18\x01 \x01(\tR\x06workId\x12\x1c\n" + - "\timageUrls\x18\x02 \x03(\tR\timageUrls\x12\x1c\n" + - "\tcreatedAt\x18\x03 \x01(\x03R\tcreatedAt\"g\n" + - "\x15ToBeComfirmedWorksReq\x12\x1e\n" + - "\n" + - "artistUuid\x18\x01 \x01(\tR\n" + - "artistUuid\x12\x12\n" + - "\x04page\x18\x02 \x01(\x05R\x04page\x12\x1a\n" + - "\bpageSize\x18\x03 \x01(\x05R\bpageSize\"\x9a\x03\n" + - "\bworkItem\x12\x12\n" + - "\x04uuid\x18\x01 \x01(\tR\x04uuid\x12\x1a\n" + - "\bworkUuid\x18\x02 \x01(\tR\bworkUuid\x12\x14\n" + - "\x05title\x18\x03 \x01(\tR\x05title\x12\x18\n" + - "\acontent\x18\x04 \x01(\tR\acontent\x12\"\n" + - "\fworkCategory\x18\x05 \x01(\rR\fworkCategory\x12\x1e\n" + - "\n" + - "workStatus\x18\x06 \x01(\rR\n" + - "workStatus\x12 \n" + - "\vplatformIds\x18\a \x01(\tR\vplatformIds\x12\x1e\n" + - "\n" + - "mediaNames\x18\b \x01(\tR\n" + - "mediaNames\x12(\n" + - "\x0fmediaAccUserIds\x18\t \x01(\tR\x0fmediaAccUserIds\x12 \n" + - "\vconfirmedAt\x18\n" + - " \x01(\x03R\vconfirmedAt\x12\x1c\n" + - "\tcreatedAt\x18\v \x01(\x03R\tcreatedAt\x12\x1e\n" + - "\n" + - "artistName\x18\f \x01(\tR\n" + - "artistName\x12\x1e\n" + - "\n" + - "artistUuid\x18\r \x01(\tR\n" + - "artistUuid\"v\n" + - "\x16ToBeComfirmedWorksResp\x12\x14\n" + - "\x05total\x18\x01 \x01(\x03R\x05total\x12 \n" + - "\vunconfirmed\x18\x02 \x01(\x03R\vunconfirmed\x12$\n" + - "\x04data\x18\x03 \x03(\v2\x10.bundle.workItemR\x04data\"5\n" + - "\x1bGetBundleBalanceByUserIdReq\x12\x16\n" + - "\x06userId\x18\x01 \x01(\x05R\x06userId\"\x9e\a\n" + - "\x1cGetBundleBalanceByUserIdResp\x12\x1c\n" + - "\torderUUID\x18\x01 \x01(\tR\torderUUID\x12\x1e\n" + - "\n" + - "bundleUuid\x18\x02 \x01(\tR\n" + - "bundleUuid\x12\x1e\n" + - "\n" + - "bundleName\x18\x03 \x01(\tR\n" + - "bundleName\x12\"\n" + - "\fbundleStatus\x18\x04 \x01(\tR\fbundleStatus\x12\x18\n" + - "\apayTime\x18\x05 \x01(\x03R\apayTime\x12 \n" + - "\vexpiredTime\x18\x06 \x01(\x03R\vexpiredTime\x12$\n" + - "\rpaymentAmount\x18\a \x01(\tR\rpaymentAmount\x12 \n" + - "\vpaymentType\x18\b \x01(\x05R\vpaymentType\x12$\n" + - "\raccountNumber\x18\t \x01(\x05R\raccountNumber\x12,\n" + - "\x11accountAdditional\x18\n" + - " \x01(\x05R\x11accountAdditional\x12:\n" + - "\x18accountConsumptionNumber\x18\v \x01(\x05R\x18accountConsumptionNumber\x12 \n" + - "\vvideoNumber\x18\f \x01(\x05R\vvideoNumber\x12(\n" + - "\x0fvideoAdditional\x18\r \x01(\x05R\x0fvideoAdditional\x126\n" + - "\x16videoConsumptionNumber\x18\x0e \x01(\x05R\x16videoConsumptionNumber\x12 \n" + - "\vimageNumber\x18\x0f \x01(\x05R\vimageNumber\x12(\n" + - "\x0fimageAdditional\x18\x10 \x01(\x05R\x0fimageAdditional\x126\n" + - "\x16imageConsumptionNumber\x18\x11 \x01(\x05R\x16imageConsumptionNumber\x12.\n" + - "\x12dataAnalysisNumber\x18\x12 \x01(\x05R\x12dataAnalysisNumber\x126\n" + - "\x16dataAnalysisAdditional\x18\x13 \x01(\x05R\x16dataAnalysisAdditional\x12D\n" + - "\x1ddataAnalysisConsumptionNumber\x18\x14 \x01(\x05R\x1ddataAnalysisConsumptionNumber\x122\n" + - "\x14expansionPacksNumber\x18\x15 \x01(\x05R\x14expansionPacksNumber\"<\n" + - " OnlyAddValueListByOrderNoRequest\x12\x18\n" + - "\aorderNo\x18\x01 \x01(\tR\aorderNo\"^\n" + - "\x1dOnlyAddValueListByOrderNoResp\x12=\n" + - "\x0eAddBundleInfos\x18\x01 \x03(\v2\x15.bundle.AddBundleInfoR\x0eAddBundleInfos\"\xb5\x01\n" + - "\rAddBundleInfo\x12\x1e\n" + - "\n" + - "customerID\x18\x01 \x01(\tR\n" + - "customerID\x12\x16\n" + - "\x06amount\x18\x02 \x01(\x02R\x06amount\x12,\n" + - "\x11checkOutSessionId\x18\x03 \x01(\tR\x11checkOutSessionId\x12\x18\n" + - "\aorderNo\x18\x04 \x01(\tR\aorderNo\x12$\n" + - "\rpaymentStatus\x18\x05 \x01(\x05R\rpaymentStatus\"\x8a\x01\n" + - "$UpdateStatusAndPayTimeBySerialNumber\x12\"\n" + - "\fserialNumber\x18\x01 \x01(\tR\fserialNumber\x12\x18\n" + - "\apayTime\x18\x02 \x01(\tR\apayTime\x12$\n" + - "\rpaymentStatus\x18\x03 \x01(\x05R\rpaymentStatus\",\n" + - "\x0eConfirmWorkReq\x12\x1a\n" + - "\bworkUuid\x18\x01 \x01(\tR\bworkUuid\"\x11\n" + - "\x0fConfirmWorkResp\"1\n" + - "\x1dAutoCreateUserAndOrderRequest\x12\x10\n" + - "\x03num\x18\x01 \x01(\x05R\x03num\"S\n" + - "\x0fUnfinishedInfos\x12@\n" + - "\x0funfinishedInfos\x18\x01 \x03(\v2\x16.bundle.UnfinishedInfoR\x0funfinishedInfos\"\xcc\x05\n" + - "\x0eUnfinishedInfo\x12\x0e\n" + - "\x02ID\x18\x01 \x01(\rR\x02ID\x12\x18\n" + - "\auserNum\x18\x02 \x01(\tR\auserNum\x12\x1a\n" + - "\buserName\x18\x03 \x01(\tR\buserName\x12 \n" + - "\vuserTelArea\x18\x04 \x01(\tR\vuserTelArea\x12\x18\n" + - "\auserTel\x18\x05 \x01(\tR\auserTel\x12\x18\n" + - "\auserSex\x18\x06 \x01(\tR\auserSex\x12 \n" + - "\vnationality\x18\a \x01(\tR\vnationality\x12*\n" + - "\x10placeOfResidence\x18\b \x01(\tR\x10placeOfResidence\x12\"\n" + - "\fdocumentType\x18\t \x01(\x05R\fdocumentType\x12.\n" + - "\x12userIdCardFrontUrl\x18\n" + - " \x01(\tR\x12userIdCardFrontUrl\x122\n" + - "\x14userIdCardReverseUrl\x18\v \x01(\tR\x14userIdCardReverseUrl\x12.\n" + - "\x12userIdCardValidity\x18\f \x01(\tR\x12userIdCardValidity\x12\x18\n" + - "\aorderNo\x18\r \x01(\tR\aorderNo\x12&\n" + - "\x0eorderPayAmount\x18\x0e \x01(\tR\x0eorderPayAmount\x124\n" + - "\x15orderSettlementAmount\x18\x0f \x01(\tR\x15orderSettlementAmount\x12&\n" + - "\x0eorderFeeAmount\x18\x10 \x01(\tR\x0eorderFeeAmount\x12*\n" + - "\x10orderPayCurrency\x18\x11 \x01(\tR\x10orderPayCurrency\x122\n" + - "\x14orderAccountCurrency\x18\x12 \x01(\tR\x14orderAccountCurrency\x12\x18\n" + - "\apayTime\x18\x13 \x01(\tR\apayTime\"1\n" + - "\x1fSoftDeleteUnfinishedInfoRequest\x12\x0e\n" + - "\x02ID\x18\x01 \x01(\rR\x02ID2\x86!\n" + - "\x06Bundle\x12?\n" + - "\fCreateBundle\x12\x15.bundle.BundleProfile\x1a\x16.bundle.CommonResponse\"\x00\x12?\n" + - "\fUpdateBundle\x12\x15.bundle.BundleProfile\x1a\x16.bundle.CommonResponse\"\x00\x12B\n" + - "\fDeleteBundle\x12\x18.bundle.DelBundleRequest\x1a\x16.bundle.CommonResponse\"\x00\x12?\n" + - "\tHandShelf\x12\x18.bundle.HandShelfRequest\x1a\x16.bundle.CommonResponse\"\x00\x12;\n" + - "\n" + - "SaveBundle\x12\x15.bundle.BundleProfile\x1a\x14.bundle.SaveResponse\"\x00\x12G\n" + - "\fBundleListV2\x12\x19.bundle.BundleListRequest\x1a\x1a.bundle.BundleListResponse\"\x00\x12O\n" + - "\x0eBundleDetailV2\x12\x1b.bundle.BundleDetailRequest\x1a\x1e.bundle.BundleDetailResponseV2\"\x00\x12I\n" + - "\x0eBundleListH5V2\x12\x19.bundle.BundleListRequest\x1a\x1a.bundle.BundleListResponse\"\x00\x12N\n" + - "\x12BundleLangDetailV2\x12\x1b.bundle.BundleDetailRequest\x1a\x19.bundle.BundleProfileLang\"\x00\x12E\n" + - "\n" + - "BundleList\x12\x19.bundle.BundleListRequest\x1a\x1a.bundle.BundleListResponse\"\x00\x12K\n" + - "\fBundleDetail\x12\x1b.bundle.BundleDetailRequest\x1a\x1c.bundle.BundleDetailResponse\"\x00\x12H\n" + - "\x11CreateOrderRecord\x12\x19.bundle.OrderCreateRecord\x1a\x16.bundle.CommonResponse\"\x00\x12B\n" + - "\x11UpdateOrderRecord\x12\x13.bundle.OrderRecord\x1a\x16.bundle.CommonResponse\"\x00\x12K\n" + - "\x1aUpdateOrderRecordByOrderNo\x12\x13.bundle.OrderRecord\x1a\x16.bundle.CommonResponse\"\x00\x12O\n" + - "\x10OrderRecordsList\x12\x1b.bundle.OrderRecordsRequest\x1a\x1c.bundle.OrderRecordsResponse\"\x00\x12]\n" + - "\x12OrderRecordsDetail\x12!.bundle.OrderRecordsDetailRequest\x1a\".bundle.OrderRecordsDetailResponse\"\x00\x12c\n" + - "!UpdateFinancialConfirmationStatus\x12$.bundle.FinancialConfirmationRequest\x1a\x16.bundle.CommonResponse\"\x00\x12H\n" + - "\x14CreateOrderAddRecord\x12\x16.bundle.OrderAddRecord\x1a\x16.bundle.CommonResponse\"\x00\x12Q\n" + - "\x13PackagePriceAndTime\x12\x13.bundle.OrderRecord\x1a#.bundle.PackagePriceAndTimeResponse\"\x00\x12U\n" + - "\x12OrderRecordsListV2\x12\x1d.bundle.OrderRecordsRequestV2\x1a\x1e.bundle.OrderRecordsResponseV2\"\x00\x12Y\n" + - "\x12OrderListByOrderNo\x12!.bundle.OrderInfoByOrderNoRequest\x1a\x1e.bundle.OrderInfoByOrderNoResp\"\x00\x12n\n" + - "\x19OnlyAddValueListByOrderNo\x12(.bundle.OnlyAddValueListByOrderNoRequest\x1a%.bundle.OnlyAddValueListByOrderNoResp\"\x00\x12c\n" + - "\x14CreateValueAddBundle\x12#.bundle.CreateValueAddBundleRequest\x1a$.bundle.CreateValueAddBundleResponse\"\x00\x12]\n" + - "\x12ValueAddBundleList\x12!.bundle.ValueAddBundleListRequest\x1a\".bundle.ValueAddBundleListResponse\"\x00\x12c\n" + - "\x14ValueAddBundleDetail\x12#.bundle.ValueAddBundleDetailRequest\x1a$.bundle.ValueAddBundleDetailResponse\"\x00\x12J\n" + - "\x13SaveValueAddService\x12\x1b.bundle.ValueAddServiceLang\x1a\x14.bundle.SaveResponse\"\x00\x12`\n" + - "\x13ValueAddServiceList\x12\".bundle.ValueAddServiceListRequest\x1a#.bundle.ValueAddServiceListResponse\"\x00\x12f\n" + - "\x15ValueAddServiceDetail\x12$.bundle.ValueAddServiceDetailRequest\x1a%.bundle.ValueAddServiceDetailResponse\"\x00\x12k\n" + - "$ValueAddServiceLangByUuidAndLanguage\x12$.bundle.ValueAddServiceDetailRequest\x1a\x1b.bundle.ValueAddServiceLang\"\x00\x12Q\n" + - "\x0eCalculatePrice\x12\x1d.bundle.CalculatePriceRequest\x1a\x1e.bundle.CalculatePriceResponse\"\x00\x12x\n" + - "\x1bBatchGetValueAddServiceLang\x12*.bundle.BatchGetValueAddServiceLangRequest\x1a+.bundle.BatchGetValueAddServiceLangResponse\"\x00\x12W\n" + - "\x15DeleteValueAddService\x12$.bundle.DeleteValueAddServiceRequest\x1a\x16.bundle.CommonResponse\"\x00\x12K\n" + - "\fBundleExtend\x12\x1b.bundle.BundleExtendRequest\x1a\x1c.bundle.BundleExtendResponse\"\x00\x12l\n" + - "\x17BundleExtendRecordsList\x12&.bundle.BundleExtendRecordsListRequest\x1a'.bundle.BundleExtendRecordsListResponse\"\x00\x12[\n" + - "\x14GetBundleBalanceList\x12\x1f.bundle.GetBundleBalanceListReq\x1a .bundle.GetBundleBalanceListResp\"\x00\x12g\n" + - "\x18GetBundleBalanceByUserId\x12#.bundle.GetBundleBalanceByUserIdReq\x1a$.bundle.GetBundleBalanceByUserIdResp\"\x00\x12X\n" + - "\x13CreateBundleBalance\x12\x1e.bundle.CreateBundleBalanceReq\x1a\x1f.bundle.CreateBundleBalanceResp\"\x00\x12O\n" + - "\x10AddBundleBalance\x12\x1b.bundle.AddBundleBalanceReq\x1a\x1c.bundle.AddBundleBalanceResp\"\x00\x12R\n" + - "\x11GetUsedRecordList\x12\x1c.bundle.GetUsedRecordListReq\x1a\x1d.bundle.GetUsedRecordListResp\"\x00\x12U\n" + - "\x12GetImageWorkDetail\x12\x1d.bundle.GetImageWorkDetailReq\x1a\x1e.bundle.GetImageWorkDetailResp\"\x00\x12V\n" + - "\x12GetVedioWorkDetail\x12\x1d.bundle.GetVedioWorkDetailReq\x1a\x1f.bundle.GetVedioeWorkDetailResp\"\x00\x12U\n" + - "\x12ToBeComfirmedWorks\x12\x1d.bundle.ToBeComfirmedWorksReq\x1a\x1e.bundle.ToBeComfirmedWorksResp\"\x00\x12@\n" + - "\vConfirmWork\x12\x16.bundle.ConfirmWorkReq\x1a\x17.bundle.ConfirmWorkResp\"\x00\x12^\n" + - "\x15GetReconciliationList\x12 .bundle.GetReconciliationListReq\x1a!.bundle.GetReconciliationListResp\"\x00\x12L\n" + - "\x14CreateReconciliation\x12\x1a.bundle.ReconciliationInfo\x1a\x16.bundle.CommonResponse\"\x00\x12L\n" + - "\x14UpdateReconciliation\x12\x1a.bundle.ReconciliationInfo\x1a\x16.bundle.CommonResponse\"\x00\x12r\n" + - "(UpdateReconciliationStatusBySerialNumber\x12,.bundle.UpdateStatusAndPayTimeBySerialNumber\x1a\x16.bundle.CommonResponse\"\x00\x12W\n" + - "\x13ListUnfinishedInfos\x12%.bundle.AutoCreateUserAndOrderRequest\x1a\x17.bundle.UnfinishedInfos\"\x00\x12]\n" + - "\x18SoftDeleteUnfinishedInfo\x12'.bundle.SoftDeleteUnfinishedInfoRequest\x1a\x16.bundle.CommonResponse\"\x00B\n" + - "Z\b./bundleb\x06proto3" +var file_pb_bundle_proto_rawDesc = []byte{ + 0x0a, 0x0f, 0x70, 0x62, 0x2f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x12, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x1a, 0x13, 0x70, 0x62, 0x2f, 0x64, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x12, + 0x70, 0x62, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x22, 0x50, 0x0a, 0x1c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x16, 0x0a, 0x06, + 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, + 0x65, 0x72, 0x49, 0x44, 0x22, 0xdc, 0x03, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x6f, + 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, + 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, + 0x09, 0x70, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x09, 0x70, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x70, + 0x61, 0x79, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0a, 0x70, 0x61, 0x79, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x24, 0x0a, 0x0d, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4f, 0x6e, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0d, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4f, + 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x45, 0x6e, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x45, 0x6e, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x61, 0x79, + 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x61, 0x79, + 0x54, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, + 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x65, 0x72, + 0x69, 0x61, 0x6c, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0c, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x12, 0x0a, + 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, + 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x53, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x04, 0x52, 0x07, + 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x53, 0x12, 0x2a, 0x0a, 0x10, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x41, 0x64, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x10, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x41, 0x64, 0x64, 0x4f, 0x72, 0x64, 0x65, + 0x72, 0x4f, 0x6e, 0x22, 0x91, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x6e, + 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x2e, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, + 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x6c, 0x69, 0x73, + 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, + 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, + 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x80, 0x04, 0x0a, 0x12, 0x52, 0x65, 0x63, 0x6f, + 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, + 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x24, + 0x0a, 0x0d, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4f, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x4f, 0x6e, 0x12, 0x2a, 0x0a, 0x10, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x41, 0x64, + 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x41, 0x64, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4f, 0x6e, + 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x18, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x54, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x75, 0x73, 0x65, 0x72, 0x54, 0x65, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x61, + 0x79, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x70, + 0x61, 0x79, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x72, 0x72, + 0x65, 0x6e, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, + 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, + 0x70, 0x61, 0x79, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0a, 0x70, 0x61, 0x79, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, + 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, + 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x61, 0x79, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x61, 0x79, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x65, 0x72, 0x69, + 0x61, 0x6c, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, + 0x49, 0x44, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, + 0x12, 0x20, 0x0a, 0x0b, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x69, 0x6e, 0x67, 0x46, 0x65, 0x65, 0x18, + 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x69, 0x6e, 0x67, 0x46, + 0x65, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x18, 0x10, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x73, 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x22, 0x35, 0x0a, 0x19, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x4e, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, + 0x6f, 0x22, 0xb8, 0x02, 0x0a, 0x16, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x42, + 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x55, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x55, 0x55, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, + 0x76, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0b, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x20, + 0x0a, 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, + 0x75, 0x6e, 0x69, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x6e, 0x69, 0x74, + 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xc3, 0x05, 0x0a, + 0x11, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, + 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x26, + 0x0a, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x65, 0x72, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x61, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x61, 0x63, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x69, 0x67, 0x6e, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, + 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, + 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, + 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, + 0x0a, 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x61, 0x63, 0x74, 0x4e, 0x6f, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4e, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x18, 0x11, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x55, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, + 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, + 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x07, 0x70, 0x61, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x61, 0x64, + 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x41, 0x64, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x0a, 0x61, 0x64, + 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x4e, 0x6f, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x4e, 0x6f, 0x22, 0x96, 0x02, 0x0a, 0x14, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x41, 0x64, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x55, 0x69, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x72, + 0x72, 0x65, 0x6e, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x61, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6d, + 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x68, 0x61, 0x6e, + 0x64, 0x6c, 0x69, 0x6e, 0x67, 0x46, 0x65, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x69, 0x6e, 0x67, 0x46, 0x65, 0x65, 0x22, 0xcd, 0x04, 0x0a, 0x15, + 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x56, 0x32, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, + 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6c, + 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, + 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x22, 0x0a, 0x0c, 0x61, 0x64, 0x64, 0x50, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x61, 0x64, 0x64, 0x50, 0x61, 0x79, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x1e, 0x0a, + 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x4e, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x4e, 0x6f, 0x12, 0x30, 0x0a, + 0x13, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x74, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, + 0x2c, 0x0a, 0x11, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, + 0x74, 0x45, 0x6e, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x74, 0x45, 0x6e, 0x64, 0x12, 0x34, 0x0a, + 0x15, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, + 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x74, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x12, 0x30, 0x0a, 0x13, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x74, 0x45, 0x6e, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x13, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x41, 0x74, 0x45, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, + 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, + 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, + 0x18, 0x0e, 0x20, 0x03, 0x28, 0x03, 0x52, 0x07, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x12, + 0x26, 0x0a, 0x0e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, + 0x61, 0x79, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x50, 0x61, 0x79, 0x45, 0x6e, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x45, 0x6e, 0x64, 0x22, 0x9d, 0x01, 0x0a, 0x16, + 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x32, 0x12, 0x3d, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, + 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, + 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0x85, 0x03, 0x0a, 0x15, + 0x4f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, + 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, + 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x1c, 0x0a, 0x09, 0x70, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x09, 0x70, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, + 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, + 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, + 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, + 0x74, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x0d, 0x61, 0x64, 0x64, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x20, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x41, + 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x0d, 0x61, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x64, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, + 0x64, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, + 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x75, 0x62, + 0x4e, 0x75, 0x6d, 0x22, 0xda, 0x03, 0x0a, 0x18, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x1e, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x4e, 0x6f, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x4e, 0x6f, + 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x65, 0x74, 0x74, + 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x10, 0x73, 0x65, 0x74, 0x74, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, + 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, + 0x65, 0x6e, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x68, 0x61, 0x6e, 0x64, + 0x6c, 0x69, 0x6e, 0x67, 0x46, 0x65, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x68, + 0x61, 0x6e, 0x64, 0x6c, 0x69, 0x6e, 0x67, 0x46, 0x65, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x65, 0x78, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x0c, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x2a, + 0x0a, 0x10, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x41, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x41, + 0x64, 0x64, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x64, + 0x64, 0x50, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0c, 0x61, 0x64, 0x64, 0x50, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, + 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x6e, + 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x6e, + 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x6f, + 0x75, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x11, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, + 0x49, 0x44, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x65, 0x72, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, + 0x22, 0x47, 0x0a, 0x1b, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, + 0x41, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, + 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x50, 0x0a, 0x0e, 0x43, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, + 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x12, 0x0a, + 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, + 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x22, 0xb1, 0x05, 0x0a, 0x0d, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, + 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, + 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, + 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, + 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x61, + 0x6e, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, + 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x12, 0x2a, 0x0a, 0x10, 0x63, 0x6f, 0x6e, + 0x74, 0x72, 0x61, 0x63, 0x74, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x44, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x12, + 0x12, 0x0a, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, + 0x6f, 0x72, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x67, 0x49, 0x6d, 0x67, 0x31, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x67, 0x49, 0x6d, 0x67, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x62, + 0x67, 0x49, 0x6d, 0x67, 0x32, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x67, 0x49, + 0x6d, 0x67, 0x32, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x68, 0x65, 0x6c, 0x66, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x73, 0x68, 0x65, 0x6c, 0x66, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x53, 0x0a, 0x15, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x11, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x53, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x52, 0x15, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x47, 0x0a, 0x11, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x18, + 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x61, 0x6e, 0x67, + 0x52, 0x11, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4c, + 0x61, 0x6e, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6d, 0x67, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x69, 0x6d, 0x67, 0x4f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x6f, 0x6e, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x14, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x6f, 0x6e, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x22, + 0xed, 0x03, 0x0a, 0x11, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, + 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, + 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x70, 0x72, + 0x69, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6c, + 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, + 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x41, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, + 0x41, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x64, 0x41, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, + 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x53, 0x69, 0x67, + 0x6e, 0x12, 0x2a, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x44, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x63, 0x6f, 0x6e, + 0x74, 0x72, 0x61, 0x63, 0x74, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, + 0x09, 0x66, 0x6f, 0x6e, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x66, 0x6f, 0x6e, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x73, + 0x6f, 0x72, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x12, + 0x16, 0x0a, 0x06, 0x62, 0x67, 0x49, 0x6d, 0x67, 0x31, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x62, 0x67, 0x49, 0x6d, 0x67, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x67, 0x49, 0x6d, 0x67, + 0x32, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x67, 0x49, 0x6d, 0x67, 0x32, 0x12, + 0x20, 0x0a, 0x0b, 0x73, 0x68, 0x65, 0x6c, 0x66, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x10, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x73, 0x68, 0x65, 0x6c, 0x66, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6d, 0x67, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x11, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x69, 0x6d, 0x67, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, + 0x52, 0x0a, 0x0c, 0x53, 0x61, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, + 0x67, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4e, + 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, + 0x4e, 0x75, 0x6d, 0x22, 0x9d, 0x01, 0x0a, 0x15, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x22, 0x0a, + 0x0c, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x55, 0x75, 0x69, + 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, + 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x22, 0x26, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x22, 0x8d, 0x01, 0x0a, 0x11, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, + 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, + 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, 0x5b, 0x0a, 0x12, 0x42, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x2f, 0x0a, 0x07, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x07, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0x45, 0x0a, 0x13, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, + 0x75, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, + 0x48, 0x0a, 0x10, 0x48, 0x61, 0x6e, 0x64, 0x53, 0x68, 0x65, 0x6c, 0x66, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x68, 0x65, 0x6c, 0x66, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x73, 0x68, + 0x65, 0x6c, 0x66, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x57, 0x0a, 0x14, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x2d, 0x0a, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, + 0x73, 0x67, 0x22, 0x59, 0x0a, 0x16, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x32, 0x12, 0x2d, 0x0a, 0x06, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x52, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, + 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0xa6, 0x0b, + 0x0a, 0x0b, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x12, 0x0a, + 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, + 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, + 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, + 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x75, 0x6d, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, + 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x1e, 0x0a, 0x0a, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0a, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x22, 0x0a, 0x0c, 0x73, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x61, 0x63, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x07, 0x70, 0x61, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, + 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, + 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x6f, 0x75, + 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x11, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x12, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x53, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x12, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x55, 0x72, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0f, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, + 0x74, 0x4e, 0x6f, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x72, + 0x61, 0x63, 0x74, 0x4e, 0x6f, 0x12, 0x2e, 0x0a, 0x12, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, + 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x12, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x55, 0x75, 0x69, 0x64, 0x12, 0x32, 0x0a, 0x14, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, + 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x14, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x14, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x15, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x41, 0x64, 0x64, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, + 0x63, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x02, 0x52, 0x15, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, + 0x64, 0x64, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, + 0x34, 0x0a, 0x15, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x44, 0x69, 0x73, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x02, 0x52, 0x15, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, + 0x64, 0x53, 0x61, 0x76, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x17, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x13, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x61, 0x76, 0x65, + 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x18, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x73, + 0x65, 0x78, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x65, 0x78, 0x12, 0x20, 0x0a, + 0x0b, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x1b, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x12, + 0x2e, 0x0a, 0x12, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x50, 0x69, + 0x63, 0x74, 0x75, 0x72, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x63, 0x65, 0x72, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x50, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x12, + 0x2a, 0x0a, 0x10, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x4f, 0x66, 0x52, 0x65, 0x73, 0x69, 0x64, 0x65, + 0x6e, 0x63, 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x70, 0x6c, 0x61, 0x63, 0x65, + 0x4f, 0x66, 0x52, 0x65, 0x73, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x12, 0x28, 0x0a, 0x0f, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x18, 0x1f, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x12, 0x2e, 0x0a, 0x12, 0x61, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x18, 0x20, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x12, 0x61, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x12, 0x34, 0x0a, 0x15, 0x66, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, + 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x21, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, 0x66, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x74, + 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x22, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x6c, + 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, + 0x23, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, + 0x44, 0x0a, 0x10, 0x70, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x49, + 0x6e, 0x66, 0x6f, 0x18, 0x24, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x2e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x10, 0x70, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x26, 0x0a, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x25, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, + 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18, 0x26, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x2b, 0x0a, 0x08, 0x61, 0x64, 0x64, + 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x27, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x41, 0x64, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x61, 0x64, + 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x22, 0x59, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x6e, + 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x22, 0x0a, + 0x0c, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x55, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x55, 0x55, 0x49, + 0x44, 0x22, 0xdd, 0x03, 0x0a, 0x0e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x52, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x55, 0x75, 0x69, 0x64, 0x12, 0x4d, 0x0a, 0x13, 0x61, 0x64, 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x72, + 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x13, + 0x61, 0x64, 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4c, + 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, + 0x1e, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x12, + 0x20, 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x75, + 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, + 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x22, 0x0a, + 0x0c, 0x73, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, + 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, + 0x1e, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x26, 0x0a, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, + 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, + 0x68, 0x6f, 0x74, 0x18, 0x26, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, + 0x68, 0x6f, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x55, 0x55, 0x49, 0x44, + 0x18, 0x27, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x55, 0x55, 0x49, + 0x44, 0x22, 0xc5, 0x01, 0x0a, 0x13, 0x41, 0x64, 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x55, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, + 0x6e, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, + 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x61, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x22, 0x50, 0x0a, 0x10, 0x50, 0x72, 0x69, + 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, + 0x08, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x55, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x22, 0xa7, 0x04, 0x0a, 0x13, + 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, + 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, + 0x69, 0x7a, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, + 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, + 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x55, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x55, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x4e, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x65, + 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x65, 0x6e, 0x64, 0x53, 0x69, 0x67, 0x6e, + 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x6e, + 0x64, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x50, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x50, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x1e, 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x50, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x6e, 0x64, 0x50, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x1e, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x12, + 0x26, 0x0a, 0x0e, 0x69, 0x73, 0x48, 0x61, 0x76, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, + 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x69, 0x73, 0x48, 0x61, 0x76, 0x65, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x12, 0x34, 0x0a, 0x15, 0x66, 0x69, 0x6e, 0x61, 0x6e, + 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, 0x66, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, + 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, + 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, + 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x22, 0x65, 0x0a, 0x14, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, + 0x0c, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x0c, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x52, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0xa1, 0x01, 0x0a, + 0x19, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x18, + 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x55, 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x55, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x22, 0x65, 0x0a, 0x1a, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, + 0x0a, 0x0b, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x0b, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x52, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0xdd, 0x02, 0x0a, 0x15, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, + 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, + 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, + 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x24, 0x0a, + 0x0d, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72, + 0x69, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, + 0x69, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x61, 0x76, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x73, 0x61, 0x76, 0x65, 0x64, 0x41, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x13, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x13, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72, 0x69, 0x63, + 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x6f, 0x73, + 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x6f, 0x73, 0x65, 0x12, + 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2e, 0x0a, 0x12, 0x61, 0x64, 0x64, 0x42, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x12, 0x61, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x22, 0x59, 0x0a, 0x1b, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x42, 0x28, 0xe2, 0xdf, 0x1f, 0x24, 0x10, 0x1d, 0x18, 0x65, 0x2a, 0x1e, 0xe8, + 0x87, 0xb3, 0xe5, 0xb0, 0x91, 0xe6, 0x95, 0xb0, 0xe4, 0xb8, 0xba, 0x33, 0x30, 0x2c, 0xe6, 0x9c, + 0x80, 0xe5, 0xa4, 0x9a, 0xe6, 0x95, 0xb0, 0xe4, 0xb8, 0xba, 0x31, 0x30, 0x30, 0x52, 0x03, 0x6e, + 0x75, 0x6d, 0x22, 0x86, 0x01, 0x0a, 0x1c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x61, 0x76, 0x65, 0x64, + 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x73, 0x61, + 0x76, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x71, 0x0a, 0x19, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, + 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, + 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0xf7, + 0x01, 0x0a, 0x1a, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, 0x0a, + 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, + 0x69, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x31, 0x0a, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x31, 0x0a, 0x1b, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x22, 0x7d, 0x0a, 0x1c, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x18, + 0x0a, 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x38, 0x0a, 0x1c, 0x46, 0x69, + 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x4e, 0x6f, 0x22, 0xa8, 0x01, 0x0a, 0x0f, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, + 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, + 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x3d, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x18, + 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, + 0x6e, 0x67, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x22, + 0xf3, 0x02, 0x0a, 0x13, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, + 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x24, 0x0a, + 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, + 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, 0x72, 0x69, 0x63, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, + 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, + 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, + 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x36, 0x0a, + 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, + 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x86, 0x01, 0x0a, 0x14, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, + 0x64, 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x0e, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, + 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, + 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1e, + 0x0a, 0x0a, 0x73, 0x61, 0x76, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x73, 0x61, 0x76, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x7c, + 0x0a, 0x1a, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, + 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, + 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, 0x90, 0x01, 0x0a, + 0x1b, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6d, 0x73, 0x67, 0x12, 0x49, 0x0a, 0x13, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x17, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x13, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, + 0x4e, 0x0a, 0x1c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, + 0x75, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, + 0x74, 0x0a, 0x1d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, + 0x73, 0x67, 0x12, 0x41, 0x0a, 0x0f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x52, 0x0f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x22, 0x59, 0x0a, 0x15, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, + 0x74, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, + 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, + 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, + 0x22, 0x40, 0x0a, 0x16, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, + 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, + 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x14, 0x0a, 0x05, + 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x70, 0x72, 0x69, + 0x63, 0x65, 0x22, 0x56, 0x0a, 0x22, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, + 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x75, 0x75, 0x69, 0x64, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x75, 0x75, 0x69, 0x64, 0x73, 0x12, 0x1a, + 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, 0x8e, 0x01, 0x0a, 0x23, 0x42, + 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6d, 0x73, 0x67, 0x12, 0x55, 0x0a, 0x17, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, + 0x6e, 0x67, 0x52, 0x17, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x8f, 0x04, 0x0a, 0x13, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x76, 0x69, 0x64, + 0x65, 0x6f, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0f, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x12, 0x2a, 0x0a, 0x10, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x41, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x69, + 0x6d, 0x61, 0x67, 0x65, 0x73, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, + 0x26, 0x0a, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x41, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x40, 0x0a, 0x1b, 0x61, 0x76, 0x61, 0x69, 0x6c, + 0x61, 0x62, 0x6c, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1b, 0x61, 0x76, + 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x69, 0x6d, + 0x65, 0x55, 0x6e, 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x74, 0x69, 0x6d, + 0x65, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x34, 0x0a, + 0x15, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x61, 0x73, + 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, + 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, + 0x72, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x6f, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x68, + 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x16, 0x0a, + 0x14, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x82, 0x02, 0x0a, 0x1e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, + 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, + 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, + 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, + 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x15, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x6b, 0x0a, 0x1f, 0x42, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, + 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, + 0x74, 0x61, 0x6c, 0x12, 0x32, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1e, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x74, 0x65, + 0x6d, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xbe, 0x04, 0x0a, 0x16, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x74, + 0x65, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, + 0x0a, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, + 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x11, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x11, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x41, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0f, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x12, 0x2a, 0x0a, 0x10, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x69, 0x6d, 0x61, 0x67, + 0x65, 0x73, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x26, 0x0a, 0x0e, + 0x64, 0x61, 0x74, 0x61, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x40, 0x0a, 0x1b, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, + 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1b, 0x61, 0x76, 0x61, 0x69, 0x6c, + 0x61, 0x62, 0x6c, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x61, + 0x72, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, + 0x12, 0x34, 0x0a, 0x15, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x15, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x55, 0x6e, + 0x69, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x55, 0x6e, + 0x69, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x6f, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x13, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x68, 0x6f, + 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x89, 0x02, 0x0a, 0x17, 0x47, 0x65, 0x74, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x6f, 0x75, 0x67, + 0x68, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x62, 0x6f, 0x75, 0x67, 0x68, 0x74, + 0x12, 0x2a, 0x0a, 0x10, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x65, 0x78, 0x70, 0x69, + 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x26, 0x0a, 0x0e, + 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, + 0x65, 0x45, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, + 0x53, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, + 0x53, 0x69, 0x7a, 0x65, 0x22, 0xed, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, + 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x2a, 0x0a, 0x10, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x65, 0x78, 0x70, 0x69, + 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x26, 0x0a, 0x0e, + 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, + 0x65, 0x45, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, + 0x53, 0x69, 0x7a, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, + 0x53, 0x69, 0x7a, 0x65, 0x22, 0xa3, 0x05, 0x0a, 0x11, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, + 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, + 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, + 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, + 0x0a, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, + 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x18, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x76, 0x69, 0x64, 0x65, 0x6f, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x16, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x43, + 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, + 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x20, + 0x0a, 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x12, 0x36, 0x0a, 0x16, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x16, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x12, 0x64, 0x61, 0x74, 0x61, + 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, + 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x1d, 0x64, 0x61, 0x74, 0x61, + 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x1d, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, + 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x32, + 0x0a, 0x14, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x73, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x65, 0x78, + 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x73, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x6f, 0x75, 0x67, 0x68, 0x74, 0x18, 0x10, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x06, 0x62, 0x6f, 0x75, 0x67, 0x68, 0x74, 0x22, 0x5f, 0x0a, 0x18, 0x47, 0x65, + 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x2d, 0x0a, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, + 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x8e, 0x04, 0x0a, 0x16, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, + 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1c, + 0x0a, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x55, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x55, 0x55, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x18, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, + 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, + 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x20, + 0x0a, 0x0b, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0b, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x12, 0x36, 0x0a, 0x16, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x16, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6d, 0x61, 0x67, + 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x69, + 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x16, 0x69, 0x6d, + 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x69, 0x6d, 0x61, 0x67, + 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x12, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, + 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, + 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x12, 0x44, 0x0a, 0x1d, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, + 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1d, 0x64, 0x61, 0x74, 0x61, 0x41, + 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x14, 0x65, 0x78, 0x70, 0x61, + 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x19, 0x0a, 0x17, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, + 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9b, 0x04, 0x0a, 0x13, 0x41, 0x64, 0x64, 0x42, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x12, + 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, + 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x55, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x55, 0x55, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x18, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x76, 0x69, 0x64, 0x65, 0x6f, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x76, 0x69, + 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x16, 0x76, 0x69, 0x64, + 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x76, 0x69, 0x64, 0x65, 0x6f, + 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x16, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, + 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x16, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x12, 0x64, + 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, + 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x1d, 0x64, + 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, + 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x1d, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, + 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x12, 0x32, 0x0a, 0x14, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x61, + 0x63, 0x6b, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x14, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x73, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x16, 0x0a, 0x14, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0xa6, 0x02, + 0x0a, 0x14, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x12, 0x0a, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, + 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0f, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x6e, + 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, + 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, + 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, + 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x57, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, + 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x57, 0x6f, 0x72, + 0x6b, 0x43, 0x61, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, + 0xf4, 0x03, 0x0a, 0x0c, 0x57, 0x6f, 0x72, 0x6b, 0x43, 0x61, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, + 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, + 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, + 0x6e, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x12, 0x22, + 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, + 0x72, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, + 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x64, + 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x49, 0x64, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x4e, 0x61, 0x6d, + 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x4e, + 0x61, 0x6d, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, + 0x49, 0x44, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x65, 0x64, 0x69, 0x61, + 0x41, 0x63, 0x63, 0x49, 0x44, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x54, 0x69, + 0x74, 0x6c, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x54, + 0x69, 0x74, 0x6c, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x69, + 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x6f, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x2f, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x61, + 0x67, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x12, + 0x16, 0x0a, 0x06, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x22, 0x2f, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x56, 0x65, + 0x64, 0x69, 0x6f, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, + 0x12, 0x16, 0x0a, 0x06, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x22, 0x86, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, + 0x49, 0x6d, 0x61, 0x67, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x63, + 0x6f, 0x76, 0x65, 0x72, 0x55, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, + 0x6f, 0x76, 0x65, 0x72, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x69, 0x64, 0x65, 0x6f, + 0x55, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x69, 0x64, 0x65, 0x6f, + 0x55, 0x72, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, + 0x74, 0x22, 0x6d, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x56, 0x65, 0x64, 0x69, 0x6f, 0x65, 0x57, 0x6f, + 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, + 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x77, 0x6f, + 0x72, 0x6b, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, + 0x6c, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x22, 0x67, 0x0a, 0x15, 0x54, 0x6f, 0x42, 0x65, 0x43, 0x6f, 0x6d, 0x66, 0x69, 0x72, 0x6d, 0x65, + 0x64, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x9a, 0x03, 0x0a, 0x08, 0x77, 0x6f, + 0x72, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, + 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, + 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, + 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x61, + 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x77, 0x6f, + 0x72, 0x6b, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x77, 0x6f, + 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, + 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x64, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x64, 0x73, 0x12, 0x1e, 0x0a, 0x0a, + 0x6d, 0x65, 0x64, 0x69, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x0f, + 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, + 0x6d, 0x65, 0x64, 0x41, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x55, 0x75, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x22, 0x76, 0x0a, 0x16, 0x54, 0x6f, 0x42, 0x65, 0x43, 0x6f, + 0x6d, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x75, 0x6e, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x72, 0x6d, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x75, 0x6e, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x12, 0x24, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, + 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x35, + 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, + 0x63, 0x65, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, + 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, + 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x9e, 0x07, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, + 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x55, + 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x55, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x55, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x54, + 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x41, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x79, + 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, + 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0b, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0d, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x11, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x12, 0x3a, 0x0a, 0x18, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, + 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x18, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, + 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, + 0x76, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0b, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x28, + 0x0a, 0x0f, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x41, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x36, 0x0a, 0x16, 0x76, 0x69, 0x64, 0x65, + 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x43, + 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, + 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x12, 0x28, 0x0a, 0x0f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x41, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x69, 0x6d, 0x61, + 0x67, 0x65, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x36, 0x0a, 0x16, + 0x69, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x69, 0x6d, + 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x12, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, + 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x12, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x16, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, + 0x79, 0x73, 0x69, 0x73, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x13, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, + 0x69, 0x73, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x44, 0x0a, 0x1d, + 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, + 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x14, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x1d, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, + 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x12, 0x32, 0x0a, 0x14, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, + 0x61, 0x63, 0x6b, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x14, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x73, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3c, 0x0a, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x41, 0x64, + 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x79, 0x4f, 0x72, 0x64, 0x65, + 0x72, 0x4e, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x4e, 0x6f, 0x22, 0x5e, 0x0a, 0x1d, 0x4f, 0x6e, 0x6c, 0x79, 0x41, 0x64, 0x64, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, + 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3d, 0x0a, 0x0e, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0e, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, + 0x6e, 0x66, 0x6f, 0x73, 0x22, 0xb5, 0x01, 0x0a, 0x0d, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2c, + 0x0a, 0x11, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x4f, 0x75, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x63, 0x68, 0x65, 0x63, 0x6b, + 0x4f, 0x75, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x24, 0x0a, 0x0d, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, + 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x70, + 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x8a, 0x01, 0x0a, + 0x24, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x41, 0x6e, 0x64, + 0x50, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x42, 0x79, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x65, 0x72, + 0x69, 0x61, 0x6c, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, + 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x79, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6d, + 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x2c, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x72, 0x6d, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x77, + 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, + 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x22, 0x11, 0x0a, 0x0f, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x72, 0x6d, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x22, 0x31, 0x0a, 0x1d, 0x41, 0x75, + 0x74, 0x6f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x41, 0x6e, 0x64, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6e, + 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x22, 0x53, 0x0a, + 0x0f, 0x55, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x73, + 0x12, 0x40, 0x0a, 0x0f, 0x75, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x49, 0x6e, + 0x66, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x2e, 0x55, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x0f, 0x75, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x49, 0x6e, 0x66, + 0x6f, 0x73, 0x22, 0xcc, 0x05, 0x0a, 0x0e, 0x55, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, + 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x02, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, + 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x75, + 0x73, 0x65, 0x72, 0x54, 0x65, 0x6c, 0x41, 0x72, 0x65, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x54, 0x65, 0x6c, 0x41, 0x72, 0x65, 0x61, 0x12, 0x18, 0x0a, + 0x07, 0x75, 0x73, 0x65, 0x72, 0x54, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x75, 0x73, 0x65, 0x72, 0x54, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x53, + 0x65, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x75, 0x73, 0x65, 0x72, 0x53, 0x65, + 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x69, 0x74, 0x79, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x69, 0x74, 0x79, 0x12, 0x2a, 0x0a, 0x10, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x4f, 0x66, 0x52, 0x65, + 0x73, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x70, + 0x6c, 0x61, 0x63, 0x65, 0x4f, 0x66, 0x52, 0x65, 0x73, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, + 0x22, 0x0a, 0x0c, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x43, 0x61, 0x72, + 0x64, 0x46, 0x72, 0x6f, 0x6e, 0x74, 0x55, 0x72, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x12, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x43, 0x61, 0x72, 0x64, 0x46, 0x72, 0x6f, 0x6e, 0x74, + 0x55, 0x72, 0x6c, 0x12, 0x32, 0x0a, 0x14, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x43, 0x61, 0x72, + 0x64, 0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x55, 0x72, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x14, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x43, 0x61, 0x72, 0x64, 0x52, 0x65, 0x76, + 0x65, 0x72, 0x73, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x2e, 0x0a, 0x12, 0x75, 0x73, 0x65, 0x72, 0x49, + 0x64, 0x43, 0x61, 0x72, 0x64, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x69, 0x74, 0x79, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x12, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x43, 0x61, 0x72, 0x64, 0x56, + 0x61, 0x6c, 0x69, 0x64, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x4e, 0x6f, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, + 0x6f, 0x12, 0x26, 0x0a, 0x0e, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x50, 0x61, 0x79, 0x41, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x50, 0x61, 0x79, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x15, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x53, + 0x65, 0x74, 0x74, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x26, 0x0a, 0x0e, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x46, 0x65, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x46, 0x65, + 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x50, 0x61, 0x79, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x11, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x10, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x50, 0x61, 0x79, 0x43, 0x75, 0x72, 0x72, 0x65, + 0x6e, 0x63, 0x79, 0x12, 0x32, 0x0a, 0x14, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x12, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x14, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, + 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, + 0x6d, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, + 0x65, 0x22, 0x31, 0x0a, 0x1f, 0x53, 0x6f, 0x66, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, + 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x02, 0x49, 0x44, 0x22, 0x90, 0x01, 0x0a, 0x10, 0x54, 0x61, 0x73, 0x6b, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6b, 0x65, 0x79, + 0x77, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x77, + 0x6f, 0x72, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, + 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, + 0x69, 0x7a, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x72, 0x74, 0x42, 0x79, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x72, 0x74, 0x42, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x73, + 0x6f, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, + 0x6f, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x8b, 0x01, 0x0a, 0x11, 0x54, 0x61, 0x73, 0x6b, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, + 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x12, + 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, + 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, + 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x9c, 0x03, 0x0a, 0x12, 0x54, 0x61, 0x73, 0x6b, 0x4d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x75, + 0x62, 0x4e, 0x75, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x11, + 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x70, 0x65, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x73, + 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x10, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x54, 0x61, + 0x73, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x70, + 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x2c, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x63, 0x6f, 0x6d, + 0x70, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, + 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, + 0x65, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x61, + 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x74, 0x61, + 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0f, 0x74, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, + 0x65, 0x4e, 0x75, 0x6d, 0x22, 0xef, 0x02, 0x0a, 0x11, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, + 0x69, 0x67, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, + 0x62, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x75, 0x62, 0x4e, + 0x75, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x61, + 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x74, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x12, 0x28, + 0x0a, 0x0f, 0x74, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x4e, 0x75, + 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x74, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, + 0x69, 0x67, 0x6e, 0x65, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x6f, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, + 0x4e, 0x75, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x6f, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x2a, 0x0a, 0x10, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, + 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x10, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x50, 0x6f, 0x73, 0x74, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x61, 0x73, 0x73, + 0x69, 0x67, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x0f, + 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x74, + 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xaf, 0x02, 0x0a, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x12, 0x16, 0x0a, 0x06, + 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, + 0x6c, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, + 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x11, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x73, + 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x70, 0x65, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, + 0x0a, 0x10, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x6f, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x75, 0x6d, 0x22, 0x32, 0x0a, 0x1a, 0x52, 0x65, 0x63, 0x65, + 0x6e, 0x74, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x41, 0x0a, 0x1b, + 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x22, + 0xea, 0x02, 0x0a, 0x18, 0x45, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x65, 0x54, 0x61, 0x73, 0x6b, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x0f, + 0x74, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x4e, 0x75, 0x6d, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x74, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, + 0x6e, 0x65, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, + 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x6f, 0x72, 0x74, 0x42, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, + 0x72, 0x74, 0x42, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x11, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x73, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, + 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x65, 0x6e, + 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0f, 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, + 0x70, 0x61, 0x67, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, + 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x99, 0x01, 0x0a, + 0x19, 0x45, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x07, 0x72, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x72, 0x65, 0x63, 0x6f, 0x72, + 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, + 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, + 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, 0xec, 0x04, 0x0a, 0x14, 0x54, 0x61, 0x73, + 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x2c, 0x0a, 0x11, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, + 0x64, 0x73, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x61, 0x73, + 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x55, 0x55, 0x49, 0x44, 0x12, + 0x16, 0x0a, 0x06, 0x73, 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x73, 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, + 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x12, + 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x63, 0x74, 0x75, 0x61, + 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x61, + 0x63, 0x74, 0x75, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x63, + 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x22, 0x0a, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, + 0x20, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x75, + 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x69, 0x6d, + 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, + 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, + 0x69, 0x67, 0x6e, 0x65, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x61, 0x73, + 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x74, 0x61, 0x73, + 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0f, 0x74, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, + 0x4e, 0x75, 0x6d, 0x12, 0x2c, 0x0a, 0x11, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x69, + 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, + 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x73, 0x74, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x70, 0x65, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, + 0x10, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x75, 0x0a, 0x1b, 0x43, 0x6f, 0x6d, 0x70, 0x6c, + 0x65, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x6c, 0x79, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, + 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x11, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, + 0x55, 0x55, 0x49, 0x44, 0x12, 0x28, 0x0a, 0x0f, 0x74, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, + 0x67, 0x6e, 0x65, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x74, + 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x4e, 0x75, 0x6d, 0x22, 0xd1, + 0x01, 0x0a, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x50, 0x72, 0x6f, + 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x11, + 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x55, 0x55, 0x49, + 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x55, 0x55, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x65, 0x6d, + 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x65, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, + 0x0a, 0x0b, 0x65, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x65, 0x4e, 0x75, 0x6d, + 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0d, + 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x22, 0xbf, 0x02, 0x0a, 0x1d, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, + 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x22, + 0x0a, 0x0c, 0x74, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, + 0x65, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x20, + 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x75, 0x6d, + 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, + 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, + 0x53, 0x69, 0x7a, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, + 0x53, 0x69, 0x7a, 0x65, 0x22, 0x9e, 0x01, 0x0a, 0x1e, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, + 0x69, 0x67, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x07, 0x72, 0x65, 0x63, 0x6f, 0x72, + 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, + 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, + 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, + 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x56, 0x0a, 0x1a, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x42, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, + 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x22, 0xc1, 0x01, + 0x0a, 0x1b, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, + 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, + 0x13, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x72, 0x65, 0x6d, 0x61, + 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x30, 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x49, 0x6d, 0x61, 0x67, + 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x72, 0x65, + 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x3e, 0x0a, 0x1a, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x44, 0x61, + 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1a, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, + 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x32, 0xad, 0x27, 0x0a, 0x06, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x3f, 0x0a, 0x0c, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x15, 0x2e, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, + 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x15, 0x2e, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x42, + 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x18, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x42, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x09, 0x48, 0x61, 0x6e, 0x64, 0x53, 0x68, 0x65, 0x6c, 0x66, 0x12, + 0x18, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x48, 0x61, 0x6e, 0x64, 0x53, 0x68, 0x65, + 0x6c, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x3b, 0x0a, 0x0a, 0x53, 0x61, 0x76, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x12, 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x14, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x47, 0x0a, 0x0c, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x32, + 0x12, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0e, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x56, 0x32, 0x12, 0x1b, 0x2e, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x32, 0x22, 0x00, 0x12, 0x49, 0x0a, 0x0e, 0x42, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x35, 0x56, 0x32, 0x12, 0x19, 0x2e, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x12, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, + 0x61, 0x6e, 0x67, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x56, 0x32, 0x12, 0x1b, 0x2e, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4c, + 0x61, 0x6e, 0x67, 0x22, 0x00, 0x12, 0x45, 0x0a, 0x0a, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, + 0x69, 0x73, 0x74, 0x12, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x0c, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x1b, 0x2e, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x11, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x19, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, 0x16, 0x2e, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x42, 0x79, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x10, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x12, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x21, 0x2e, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x21, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x69, + 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x2e, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x2e, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x14, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, + 0x64, 0x12, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x41, 0x64, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x13, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x50, 0x72, + 0x69, 0x63, 0x65, 0x41, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x13, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, + 0x23, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, + 0x50, 0x72, 0x69, 0x63, 0x65, 0x41, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x12, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x32, 0x12, 0x1d, 0x2e, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, + 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x56, 0x32, 0x1a, 0x1e, 0x2e, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x32, 0x22, 0x00, 0x12, 0x59, 0x0a, + 0x12, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x79, 0x4f, 0x72, 0x64, 0x65, + 0x72, 0x4e, 0x6f, 0x12, 0x21, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, + 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x4e, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x6e, 0x0a, 0x19, 0x4f, 0x6e, 0x6c, 0x79, + 0x41, 0x64, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x79, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x28, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, + 0x6e, 0x6c, 0x79, 0x41, 0x64, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x42, + 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x25, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x6e, 0x6c, 0x79, 0x41, 0x64, 0x64, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x4e, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x12, 0x23, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5d, 0x0a, + 0x12, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, + 0x69, 0x73, 0x74, 0x12, 0x21, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x14, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x12, 0x23, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x4a, 0x0a, 0x13, 0x53, 0x61, 0x76, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, + 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x1a, 0x14, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x53, + 0x61, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x60, 0x0a, + 0x13, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x4c, 0x69, 0x73, 0x74, 0x12, 0x22, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x66, 0x0a, 0x15, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x24, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6b, 0x0a, 0x24, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x42, 0x79, + 0x55, 0x75, 0x69, 0x64, 0x41, 0x6e, 0x64, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, + 0x24, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, + 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, + 0x6e, 0x67, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x0e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, + 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, + 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, + 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x78, 0x0a, 0x1b, 0x42, 0x61, 0x74, 0x63, 0x68, + 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x12, 0x2a, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, + 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x61, 0x74, 0x63, + 0x68, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x57, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x24, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, + 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x0c, 0x42, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6c, 0x0a, 0x17, 0x42, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, + 0x73, 0x74, 0x12, 0x26, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, + 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5b, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1f, 0x2e, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x20, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x22, 0x00, 0x12, 0x67, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, + 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x23, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, + 0x52, 0x65, 0x71, 0x1a, 0x24, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x79, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x58, 0x0a, 0x13, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, + 0x63, 0x65, 0x12, 0x1e, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, + 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x2e, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, + 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, + 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, + 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x2e, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x64, 0x52, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x12, 0x47, 0x65, + 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x12, 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x61, + 0x67, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x1a, + 0x1e, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, + 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x22, + 0x00, 0x12, 0x56, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x56, 0x65, 0x64, 0x69, 0x6f, 0x57, 0x6f, 0x72, + 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x2e, 0x47, 0x65, 0x74, 0x56, 0x65, 0x64, 0x69, 0x6f, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, + 0x47, 0x65, 0x74, 0x56, 0x65, 0x64, 0x69, 0x6f, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x12, 0x54, 0x6f, 0x42, + 0x65, 0x43, 0x6f, 0x6d, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x12, + 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x54, 0x6f, 0x42, 0x65, 0x43, 0x6f, 0x6d, + 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1e, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x54, 0x6f, 0x42, 0x65, 0x43, 0x6f, 0x6d, 0x66, + 0x69, 0x72, 0x6d, 0x65, 0x64, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, + 0x12, 0x40, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x57, 0x6f, 0x72, 0x6b, 0x12, + 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, + 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x70, + 0x22, 0x00, 0x12, 0x5e, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, + 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x20, 0x2e, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, + 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, + 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x63, 0x6f, + 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x4c, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, + 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x72, + 0x0a, 0x28, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, + 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x79, 0x53, 0x65, + 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2c, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x41, 0x6e, 0x64, 0x50, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x42, 0x79, 0x53, 0x65, 0x72, 0x69, + 0x61, 0x6c, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x57, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x6e, 0x66, 0x69, 0x6e, 0x69, + 0x73, 0x68, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x12, 0x25, 0x2e, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, + 0x72, 0x41, 0x6e, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x17, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x55, 0x6e, 0x66, 0x69, 0x6e, 0x69, + 0x73, 0x68, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x18, 0x53, + 0x6f, 0x66, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x73, + 0x68, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x27, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x2e, 0x53, 0x6f, 0x66, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x6e, 0x66, 0x69, 0x6e, + 0x69, 0x73, 0x68, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x12, 0x47, 0x65, + 0x74, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x73, 0x6b, 0x4c, 0x69, 0x73, 0x74, + 0x12, 0x18, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x0a, 0x41, 0x73, 0x73, 0x69, 0x67, + 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x54, + 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x12, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x21, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x63, 0x0a, + 0x16, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, + 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x22, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x2e, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x41, 0x73, 0x73, 0x69, 0x67, + 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x61, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x45, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, + 0x65, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x20, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x45, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x65, + 0x54, 0x61, 0x73, 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x21, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x45, 0x6d, 0x70, 0x6c, 0x6f, 0x79, + 0x65, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x14, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, + 0x65, 0x54, 0x61, 0x73, 0x6b, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x6c, 0x79, 0x12, 0x23, 0x2e, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x54, + 0x61, 0x73, 0x6b, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x12, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x12, 0x21, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x6b, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, + 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x25, 0x2e, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x54, 0x61, 0x73, 0x6b, + 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x16, + 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, + 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x22, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, + 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, + 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x2f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, +} var ( file_pb_bundle_proto_rawDescOnce sync.Once - file_pb_bundle_proto_rawDescData []byte + file_pb_bundle_proto_rawDescData = file_pb_bundle_proto_rawDesc ) func file_pb_bundle_proto_rawDescGZIP() []byte { file_pb_bundle_proto_rawDescOnce.Do(func() { - file_pb_bundle_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_pb_bundle_proto_rawDesc), len(file_pb_bundle_proto_rawDesc))) + file_pb_bundle_proto_rawDescData = protoimpl.X.CompressGZIP(file_pb_bundle_proto_rawDescData) }) return file_pb_bundle_proto_rawDescData } -var file_pb_bundle_proto_msgTypes = make([]protoimpl.MessageInfo, 88) -var file_pb_bundle_proto_goTypes = []any{ +var file_pb_bundle_proto_msgTypes = make([]protoimpl.MessageInfo, 104) +var file_pb_bundle_proto_goTypes = []interface{}{ (*DeleteValueAddServiceRequest)(nil), // 0: bundle.DeleteValueAddServiceRequest (*GetReconciliationListReq)(nil), // 1: bundle.GetReconciliationListReq (*GetReconciliationListResp)(nil), // 2: bundle.GetReconciliationListResp @@ -8540,138 +11216,175 @@ var file_pb_bundle_proto_goTypes = []any{ (*UnfinishedInfos)(nil), // 85: bundle.UnfinishedInfos (*UnfinishedInfo)(nil), // 86: bundle.UnfinishedInfo (*SoftDeleteUnfinishedInfoRequest)(nil), // 87: bundle.SoftDeleteUnfinishedInfoRequest + (*TaskQueryRequest)(nil), // 88: bundle.TaskQueryRequest + (*TaskQueryResponse)(nil), // 89: bundle.TaskQueryResponse + (*TaskManagementInfo)(nil), // 90: bundle.TaskManagementInfo + (*TaskAssignRequest)(nil), // 91: bundle.TaskAssignRequest + (*UpdatePendingCountRequest)(nil), // 92: bundle.UpdatePendingCountRequest + (*RecentAssignRecordsRequest)(nil), // 93: bundle.RecentAssignRecordsRequest + (*RecentAssignRecordsResponse)(nil), // 94: bundle.RecentAssignRecordsResponse + (*EmployeeTaskQueryRequest)(nil), // 95: bundle.EmployeeTaskQueryRequest + (*EmployeeTaskQueryResponse)(nil), // 96: bundle.EmployeeTaskQueryResponse + (*TaskAssignRecordInfo)(nil), // 97: bundle.TaskAssignRecordInfo + (*CompleteTaskManuallyRequest)(nil), // 98: bundle.CompleteTaskManuallyRequest + (*UpdateTaskProgressRequest)(nil), // 99: bundle.UpdateTaskProgressRequest + (*TaskAssignRecordsQueryRequest)(nil), // 100: bundle.TaskAssignRecordsQueryRequest + (*TaskAssignRecordsQueryResponse)(nil), // 101: bundle.TaskAssignRecordsQueryResponse + (*ArtistBundleBalanceRequest)(nil), // 102: bundle.ArtistBundleBalanceRequest + (*ArtistBundleBalanceResponse)(nil), // 103: bundle.ArtistBundleBalanceResponse } var file_pb_bundle_proto_depIdxs = []int32{ - 3, // 0: bundle.GetReconciliationListResp.list:type_name -> bundle.ReconciliationInfo - 7, // 1: bundle.OrderCreateRecord.addRecords:type_name -> bundle.OrderCreateAddRecord - 10, // 2: bundle.OrderRecordsResponseV2.bundleInfo:type_name -> bundle.OrderBundleRecordInfo - 11, // 3: bundle.OrderBundleRecordInfo.addBundleInfo:type_name -> bundle.OrderAddBundleRecordInfo - 17, // 4: bundle.BundleProfile.selectValueAddService:type_name -> bundle.SelectValueAddService - 15, // 5: bundle.BundleProfile.bundleProfileLang:type_name -> bundle.BundleProfileLang - 14, // 6: bundle.BundleListResponse.bundles:type_name -> bundle.BundleProfile - 14, // 7: bundle.BundleDetailResponse.bundle:type_name -> bundle.BundleProfile - 14, // 8: bundle.BundleDetailResponseV2.bundle:type_name -> bundle.BundleProfile - 29, // 9: bundle.OrderRecord.priceOptionsInfo:type_name -> bundle.PriceOptionsInfo - 26, // 10: bundle.OrderRecord.addInfos:type_name -> bundle.AddInfo - 28, // 11: bundle.OrderAddRecord.addPriceOptionsList:type_name -> bundle.AddPriceOptionsInfo - 25, // 12: bundle.OrderRecordsResponse.orderRecords:type_name -> bundle.OrderRecord - 25, // 13: bundle.OrderRecordsDetailResponse.orderRecord:type_name -> bundle.OrderRecord - 34, // 14: bundle.ValueAddBundleListResponse.data:type_name -> bundle.ValueAddBundleProfile - 34, // 15: bundle.ValueAddBundleDetailResponse.data:type_name -> bundle.ValueAddBundleProfile - 43, // 16: bundle.ValueAddService.serviceLang:type_name -> bundle.ValueAddServiceLang - 44, // 17: bundle.ValueAddServiceLang.options:type_name -> bundle.ValueAddPriceOptions - 42, // 18: bundle.ValueAddServiceListResponse.valueAddServiceList:type_name -> bundle.ValueAddService - 42, // 19: bundle.ValueAddServiceDetailResponse.valueAddService:type_name -> bundle.ValueAddService - 43, // 20: bundle.BatchGetValueAddServiceLangResponse.valueAddServiceLangList:type_name -> bundle.ValueAddServiceLang - 57, // 21: bundle.BundleExtendRecordsListResponse.data:type_name -> bundle.BundleExtendRecordItem - 60, // 22: bundle.GetBundleBalanceListResp.data:type_name -> bundle.BundleBalanceItem - 68, // 23: bundle.GetUsedRecordListResp.data:type_name -> bundle.WorkCastItem - 74, // 24: bundle.ToBeComfirmedWorksResp.data:type_name -> bundle.workItem - 80, // 25: bundle.OnlyAddValueListByOrderNoResp.AddBundleInfos:type_name -> bundle.AddBundleInfo - 86, // 26: bundle.UnfinishedInfos.unfinishedInfos:type_name -> bundle.UnfinishedInfo - 14, // 27: bundle.Bundle.CreateBundle:input_type -> bundle.BundleProfile - 14, // 28: bundle.Bundle.UpdateBundle:input_type -> bundle.BundleProfile - 18, // 29: bundle.Bundle.DeleteBundle:input_type -> bundle.DelBundleRequest - 22, // 30: bundle.Bundle.HandShelf:input_type -> bundle.HandShelfRequest - 14, // 31: bundle.Bundle.SaveBundle:input_type -> bundle.BundleProfile - 19, // 32: bundle.Bundle.BundleListV2:input_type -> bundle.BundleListRequest - 21, // 33: bundle.Bundle.BundleDetailV2:input_type -> bundle.BundleDetailRequest - 19, // 34: bundle.Bundle.BundleListH5V2:input_type -> bundle.BundleListRequest - 21, // 35: bundle.Bundle.BundleLangDetailV2:input_type -> bundle.BundleDetailRequest - 19, // 36: bundle.Bundle.BundleList:input_type -> bundle.BundleListRequest - 21, // 37: bundle.Bundle.BundleDetail:input_type -> bundle.BundleDetailRequest - 6, // 38: bundle.Bundle.CreateOrderRecord:input_type -> bundle.OrderCreateRecord - 25, // 39: bundle.Bundle.UpdateOrderRecord:input_type -> bundle.OrderRecord - 25, // 40: bundle.Bundle.UpdateOrderRecordByOrderNo:input_type -> bundle.OrderRecord - 30, // 41: bundle.Bundle.OrderRecordsList:input_type -> bundle.OrderRecordsRequest - 32, // 42: bundle.Bundle.OrderRecordsDetail:input_type -> bundle.OrderRecordsDetailRequest - 41, // 43: bundle.Bundle.UpdateFinancialConfirmationStatus:input_type -> bundle.FinancialConfirmationRequest - 27, // 44: bundle.Bundle.CreateOrderAddRecord:input_type -> bundle.OrderAddRecord - 25, // 45: bundle.Bundle.PackagePriceAndTime:input_type -> bundle.OrderRecord - 8, // 46: bundle.Bundle.OrderRecordsListV2:input_type -> bundle.OrderRecordsRequestV2 - 4, // 47: bundle.Bundle.OrderListByOrderNo:input_type -> bundle.OrderInfoByOrderNoRequest - 78, // 48: bundle.Bundle.OnlyAddValueListByOrderNo:input_type -> bundle.OnlyAddValueListByOrderNoRequest - 35, // 49: bundle.Bundle.CreateValueAddBundle:input_type -> bundle.CreateValueAddBundleRequest - 37, // 50: bundle.Bundle.ValueAddBundleList:input_type -> bundle.ValueAddBundleListRequest - 39, // 51: bundle.Bundle.ValueAddBundleDetail:input_type -> bundle.ValueAddBundleDetailRequest - 43, // 52: bundle.Bundle.SaveValueAddService:input_type -> bundle.ValueAddServiceLang - 45, // 53: bundle.Bundle.ValueAddServiceList:input_type -> bundle.ValueAddServiceListRequest - 47, // 54: bundle.Bundle.ValueAddServiceDetail:input_type -> bundle.ValueAddServiceDetailRequest - 47, // 55: bundle.Bundle.ValueAddServiceLangByUuidAndLanguage:input_type -> bundle.ValueAddServiceDetailRequest - 49, // 56: bundle.Bundle.CalculatePrice:input_type -> bundle.CalculatePriceRequest - 51, // 57: bundle.Bundle.BatchGetValueAddServiceLang:input_type -> bundle.BatchGetValueAddServiceLangRequest - 0, // 58: bundle.Bundle.DeleteValueAddService:input_type -> bundle.DeleteValueAddServiceRequest - 53, // 59: bundle.Bundle.BundleExtend:input_type -> bundle.BundleExtendRequest - 55, // 60: bundle.Bundle.BundleExtendRecordsList:input_type -> bundle.BundleExtendRecordsListRequest - 58, // 61: bundle.Bundle.GetBundleBalanceList:input_type -> bundle.GetBundleBalanceListReq - 76, // 62: bundle.Bundle.GetBundleBalanceByUserId:input_type -> bundle.GetBundleBalanceByUserIdReq - 62, // 63: bundle.Bundle.CreateBundleBalance:input_type -> bundle.CreateBundleBalanceReq - 64, // 64: bundle.Bundle.AddBundleBalance:input_type -> bundle.AddBundleBalanceReq - 66, // 65: bundle.Bundle.GetUsedRecordList:input_type -> bundle.GetUsedRecordListReq - 69, // 66: bundle.Bundle.GetImageWorkDetail:input_type -> bundle.GetImageWorkDetailReq - 70, // 67: bundle.Bundle.GetVedioWorkDetail:input_type -> bundle.GetVedioWorkDetailReq - 73, // 68: bundle.Bundle.ToBeComfirmedWorks:input_type -> bundle.ToBeComfirmedWorksReq - 82, // 69: bundle.Bundle.ConfirmWork:input_type -> bundle.ConfirmWorkReq - 1, // 70: bundle.Bundle.GetReconciliationList:input_type -> bundle.GetReconciliationListReq - 3, // 71: bundle.Bundle.CreateReconciliation:input_type -> bundle.ReconciliationInfo - 3, // 72: bundle.Bundle.UpdateReconciliation:input_type -> bundle.ReconciliationInfo - 81, // 73: bundle.Bundle.UpdateReconciliationStatusBySerialNumber:input_type -> bundle.UpdateStatusAndPayTimeBySerialNumber - 84, // 74: bundle.Bundle.ListUnfinishedInfos:input_type -> bundle.AutoCreateUserAndOrderRequest - 87, // 75: bundle.Bundle.SoftDeleteUnfinishedInfo:input_type -> bundle.SoftDeleteUnfinishedInfoRequest - 13, // 76: bundle.Bundle.CreateBundle:output_type -> bundle.CommonResponse - 13, // 77: bundle.Bundle.UpdateBundle:output_type -> bundle.CommonResponse - 13, // 78: bundle.Bundle.DeleteBundle:output_type -> bundle.CommonResponse - 13, // 79: bundle.Bundle.HandShelf:output_type -> bundle.CommonResponse - 16, // 80: bundle.Bundle.SaveBundle:output_type -> bundle.SaveResponse - 20, // 81: bundle.Bundle.BundleListV2:output_type -> bundle.BundleListResponse - 24, // 82: bundle.Bundle.BundleDetailV2:output_type -> bundle.BundleDetailResponseV2 - 20, // 83: bundle.Bundle.BundleListH5V2:output_type -> bundle.BundleListResponse - 15, // 84: bundle.Bundle.BundleLangDetailV2:output_type -> bundle.BundleProfileLang - 20, // 85: bundle.Bundle.BundleList:output_type -> bundle.BundleListResponse - 23, // 86: bundle.Bundle.BundleDetail:output_type -> bundle.BundleDetailResponse - 13, // 87: bundle.Bundle.CreateOrderRecord:output_type -> bundle.CommonResponse - 13, // 88: bundle.Bundle.UpdateOrderRecord:output_type -> bundle.CommonResponse - 13, // 89: bundle.Bundle.UpdateOrderRecordByOrderNo:output_type -> bundle.CommonResponse - 31, // 90: bundle.Bundle.OrderRecordsList:output_type -> bundle.OrderRecordsResponse - 33, // 91: bundle.Bundle.OrderRecordsDetail:output_type -> bundle.OrderRecordsDetailResponse - 13, // 92: bundle.Bundle.UpdateFinancialConfirmationStatus:output_type -> bundle.CommonResponse - 13, // 93: bundle.Bundle.CreateOrderAddRecord:output_type -> bundle.CommonResponse - 12, // 94: bundle.Bundle.PackagePriceAndTime:output_type -> bundle.PackagePriceAndTimeResponse - 9, // 95: bundle.Bundle.OrderRecordsListV2:output_type -> bundle.OrderRecordsResponseV2 - 5, // 96: bundle.Bundle.OrderListByOrderNo:output_type -> bundle.OrderInfoByOrderNoResp - 79, // 97: bundle.Bundle.OnlyAddValueListByOrderNo:output_type -> bundle.OnlyAddValueListByOrderNoResp - 36, // 98: bundle.Bundle.CreateValueAddBundle:output_type -> bundle.CreateValueAddBundleResponse - 38, // 99: bundle.Bundle.ValueAddBundleList:output_type -> bundle.ValueAddBundleListResponse - 40, // 100: bundle.Bundle.ValueAddBundleDetail:output_type -> bundle.ValueAddBundleDetailResponse - 16, // 101: bundle.Bundle.SaveValueAddService:output_type -> bundle.SaveResponse - 46, // 102: bundle.Bundle.ValueAddServiceList:output_type -> bundle.ValueAddServiceListResponse - 48, // 103: bundle.Bundle.ValueAddServiceDetail:output_type -> bundle.ValueAddServiceDetailResponse - 43, // 104: bundle.Bundle.ValueAddServiceLangByUuidAndLanguage:output_type -> bundle.ValueAddServiceLang - 50, // 105: bundle.Bundle.CalculatePrice:output_type -> bundle.CalculatePriceResponse - 52, // 106: bundle.Bundle.BatchGetValueAddServiceLang:output_type -> bundle.BatchGetValueAddServiceLangResponse - 13, // 107: bundle.Bundle.DeleteValueAddService:output_type -> bundle.CommonResponse - 54, // 108: bundle.Bundle.BundleExtend:output_type -> bundle.BundleExtendResponse - 56, // 109: bundle.Bundle.BundleExtendRecordsList:output_type -> bundle.BundleExtendRecordsListResponse - 61, // 110: bundle.Bundle.GetBundleBalanceList:output_type -> bundle.GetBundleBalanceListResp - 77, // 111: bundle.Bundle.GetBundleBalanceByUserId:output_type -> bundle.GetBundleBalanceByUserIdResp - 63, // 112: bundle.Bundle.CreateBundleBalance:output_type -> bundle.CreateBundleBalanceResp - 65, // 113: bundle.Bundle.AddBundleBalance:output_type -> bundle.AddBundleBalanceResp - 67, // 114: bundle.Bundle.GetUsedRecordList:output_type -> bundle.GetUsedRecordListResp - 71, // 115: bundle.Bundle.GetImageWorkDetail:output_type -> bundle.GetImageWorkDetailResp - 72, // 116: bundle.Bundle.GetVedioWorkDetail:output_type -> bundle.GetVedioeWorkDetailResp - 75, // 117: bundle.Bundle.ToBeComfirmedWorks:output_type -> bundle.ToBeComfirmedWorksResp - 83, // 118: bundle.Bundle.ConfirmWork:output_type -> bundle.ConfirmWorkResp - 2, // 119: bundle.Bundle.GetReconciliationList:output_type -> bundle.GetReconciliationListResp - 13, // 120: bundle.Bundle.CreateReconciliation:output_type -> bundle.CommonResponse - 13, // 121: bundle.Bundle.UpdateReconciliation:output_type -> bundle.CommonResponse - 13, // 122: bundle.Bundle.UpdateReconciliationStatusBySerialNumber:output_type -> bundle.CommonResponse - 85, // 123: bundle.Bundle.ListUnfinishedInfos:output_type -> bundle.UnfinishedInfos - 13, // 124: bundle.Bundle.SoftDeleteUnfinishedInfo:output_type -> bundle.CommonResponse - 76, // [76:125] is the sub-list for method output_type - 27, // [27:76] is the sub-list for method input_type - 27, // [27:27] is the sub-list for extension type_name - 27, // [27:27] is the sub-list for extension extendee - 0, // [0:27] is the sub-list for field type_name + 3, // 0: bundle.GetReconciliationListResp.list:type_name -> bundle.ReconciliationInfo + 7, // 1: bundle.OrderCreateRecord.addRecords:type_name -> bundle.OrderCreateAddRecord + 10, // 2: bundle.OrderRecordsResponseV2.bundleInfo:type_name -> bundle.OrderBundleRecordInfo + 11, // 3: bundle.OrderBundleRecordInfo.addBundleInfo:type_name -> bundle.OrderAddBundleRecordInfo + 17, // 4: bundle.BundleProfile.selectValueAddService:type_name -> bundle.SelectValueAddService + 15, // 5: bundle.BundleProfile.bundleProfileLang:type_name -> bundle.BundleProfileLang + 14, // 6: bundle.BundleListResponse.bundles:type_name -> bundle.BundleProfile + 14, // 7: bundle.BundleDetailResponse.bundle:type_name -> bundle.BundleProfile + 14, // 8: bundle.BundleDetailResponseV2.bundle:type_name -> bundle.BundleProfile + 29, // 9: bundle.OrderRecord.priceOptionsInfo:type_name -> bundle.PriceOptionsInfo + 26, // 10: bundle.OrderRecord.addInfos:type_name -> bundle.AddInfo + 28, // 11: bundle.OrderAddRecord.addPriceOptionsList:type_name -> bundle.AddPriceOptionsInfo + 25, // 12: bundle.OrderRecordsResponse.orderRecords:type_name -> bundle.OrderRecord + 25, // 13: bundle.OrderRecordsDetailResponse.orderRecord:type_name -> bundle.OrderRecord + 34, // 14: bundle.ValueAddBundleListResponse.data:type_name -> bundle.ValueAddBundleProfile + 34, // 15: bundle.ValueAddBundleDetailResponse.data:type_name -> bundle.ValueAddBundleProfile + 43, // 16: bundle.ValueAddService.serviceLang:type_name -> bundle.ValueAddServiceLang + 44, // 17: bundle.ValueAddServiceLang.options:type_name -> bundle.ValueAddPriceOptions + 42, // 18: bundle.ValueAddServiceListResponse.valueAddServiceList:type_name -> bundle.ValueAddService + 42, // 19: bundle.ValueAddServiceDetailResponse.valueAddService:type_name -> bundle.ValueAddService + 43, // 20: bundle.BatchGetValueAddServiceLangResponse.valueAddServiceLangList:type_name -> bundle.ValueAddServiceLang + 57, // 21: bundle.BundleExtendRecordsListResponse.data:type_name -> bundle.BundleExtendRecordItem + 60, // 22: bundle.GetBundleBalanceListResp.data:type_name -> bundle.BundleBalanceItem + 68, // 23: bundle.GetUsedRecordListResp.data:type_name -> bundle.WorkCastItem + 74, // 24: bundle.ToBeComfirmedWorksResp.data:type_name -> bundle.workItem + 80, // 25: bundle.OnlyAddValueListByOrderNoResp.AddBundleInfos:type_name -> bundle.AddBundleInfo + 86, // 26: bundle.UnfinishedInfos.unfinishedInfos:type_name -> bundle.UnfinishedInfo + 90, // 27: bundle.TaskQueryResponse.tasks:type_name -> bundle.TaskManagementInfo + 97, // 28: bundle.EmployeeTaskQueryResponse.records:type_name -> bundle.TaskAssignRecordInfo + 97, // 29: bundle.TaskAssignRecordsQueryResponse.records:type_name -> bundle.TaskAssignRecordInfo + 14, // 30: bundle.Bundle.CreateBundle:input_type -> bundle.BundleProfile + 14, // 31: bundle.Bundle.UpdateBundle:input_type -> bundle.BundleProfile + 18, // 32: bundle.Bundle.DeleteBundle:input_type -> bundle.DelBundleRequest + 22, // 33: bundle.Bundle.HandShelf:input_type -> bundle.HandShelfRequest + 14, // 34: bundle.Bundle.SaveBundle:input_type -> bundle.BundleProfile + 19, // 35: bundle.Bundle.BundleListV2:input_type -> bundle.BundleListRequest + 21, // 36: bundle.Bundle.BundleDetailV2:input_type -> bundle.BundleDetailRequest + 19, // 37: bundle.Bundle.BundleListH5V2:input_type -> bundle.BundleListRequest + 21, // 38: bundle.Bundle.BundleLangDetailV2:input_type -> bundle.BundleDetailRequest + 19, // 39: bundle.Bundle.BundleList:input_type -> bundle.BundleListRequest + 21, // 40: bundle.Bundle.BundleDetail:input_type -> bundle.BundleDetailRequest + 6, // 41: bundle.Bundle.CreateOrderRecord:input_type -> bundle.OrderCreateRecord + 25, // 42: bundle.Bundle.UpdateOrderRecord:input_type -> bundle.OrderRecord + 25, // 43: bundle.Bundle.UpdateOrderRecordByOrderNo:input_type -> bundle.OrderRecord + 30, // 44: bundle.Bundle.OrderRecordsList:input_type -> bundle.OrderRecordsRequest + 32, // 45: bundle.Bundle.OrderRecordsDetail:input_type -> bundle.OrderRecordsDetailRequest + 41, // 46: bundle.Bundle.UpdateFinancialConfirmationStatus:input_type -> bundle.FinancialConfirmationRequest + 27, // 47: bundle.Bundle.CreateOrderAddRecord:input_type -> bundle.OrderAddRecord + 25, // 48: bundle.Bundle.PackagePriceAndTime:input_type -> bundle.OrderRecord + 8, // 49: bundle.Bundle.OrderRecordsListV2:input_type -> bundle.OrderRecordsRequestV2 + 4, // 50: bundle.Bundle.OrderListByOrderNo:input_type -> bundle.OrderInfoByOrderNoRequest + 78, // 51: bundle.Bundle.OnlyAddValueListByOrderNo:input_type -> bundle.OnlyAddValueListByOrderNoRequest + 35, // 52: bundle.Bundle.CreateValueAddBundle:input_type -> bundle.CreateValueAddBundleRequest + 37, // 53: bundle.Bundle.ValueAddBundleList:input_type -> bundle.ValueAddBundleListRequest + 39, // 54: bundle.Bundle.ValueAddBundleDetail:input_type -> bundle.ValueAddBundleDetailRequest + 43, // 55: bundle.Bundle.SaveValueAddService:input_type -> bundle.ValueAddServiceLang + 45, // 56: bundle.Bundle.ValueAddServiceList:input_type -> bundle.ValueAddServiceListRequest + 47, // 57: bundle.Bundle.ValueAddServiceDetail:input_type -> bundle.ValueAddServiceDetailRequest + 47, // 58: bundle.Bundle.ValueAddServiceLangByUuidAndLanguage:input_type -> bundle.ValueAddServiceDetailRequest + 49, // 59: bundle.Bundle.CalculatePrice:input_type -> bundle.CalculatePriceRequest + 51, // 60: bundle.Bundle.BatchGetValueAddServiceLang:input_type -> bundle.BatchGetValueAddServiceLangRequest + 0, // 61: bundle.Bundle.DeleteValueAddService:input_type -> bundle.DeleteValueAddServiceRequest + 53, // 62: bundle.Bundle.BundleExtend:input_type -> bundle.BundleExtendRequest + 55, // 63: bundle.Bundle.BundleExtendRecordsList:input_type -> bundle.BundleExtendRecordsListRequest + 58, // 64: bundle.Bundle.GetBundleBalanceList:input_type -> bundle.GetBundleBalanceListReq + 76, // 65: bundle.Bundle.GetBundleBalanceByUserId:input_type -> bundle.GetBundleBalanceByUserIdReq + 62, // 66: bundle.Bundle.CreateBundleBalance:input_type -> bundle.CreateBundleBalanceReq + 64, // 67: bundle.Bundle.AddBundleBalance:input_type -> bundle.AddBundleBalanceReq + 66, // 68: bundle.Bundle.GetUsedRecordList:input_type -> bundle.GetUsedRecordListReq + 69, // 69: bundle.Bundle.GetImageWorkDetail:input_type -> bundle.GetImageWorkDetailReq + 70, // 70: bundle.Bundle.GetVedioWorkDetail:input_type -> bundle.GetVedioWorkDetailReq + 73, // 71: bundle.Bundle.ToBeComfirmedWorks:input_type -> bundle.ToBeComfirmedWorksReq + 82, // 72: bundle.Bundle.ConfirmWork:input_type -> bundle.ConfirmWorkReq + 1, // 73: bundle.Bundle.GetReconciliationList:input_type -> bundle.GetReconciliationListReq + 3, // 74: bundle.Bundle.CreateReconciliation:input_type -> bundle.ReconciliationInfo + 3, // 75: bundle.Bundle.UpdateReconciliation:input_type -> bundle.ReconciliationInfo + 81, // 76: bundle.Bundle.UpdateReconciliationStatusBySerialNumber:input_type -> bundle.UpdateStatusAndPayTimeBySerialNumber + 84, // 77: bundle.Bundle.ListUnfinishedInfos:input_type -> bundle.AutoCreateUserAndOrderRequest + 87, // 78: bundle.Bundle.SoftDeleteUnfinishedInfo:input_type -> bundle.SoftDeleteUnfinishedInfoRequest + 88, // 79: bundle.Bundle.GetPendingTaskList:input_type -> bundle.TaskQueryRequest + 91, // 80: bundle.Bundle.AssignTask:input_type -> bundle.TaskAssignRequest + 92, // 81: bundle.Bundle.UpdatePendingCount:input_type -> bundle.UpdatePendingCountRequest + 93, // 82: bundle.Bundle.GetRecentAssignRecords:input_type -> bundle.RecentAssignRecordsRequest + 95, // 83: bundle.Bundle.GetEmployeeAssignedTasks:input_type -> bundle.EmployeeTaskQueryRequest + 98, // 84: bundle.Bundle.CompleteTaskManually:input_type -> bundle.CompleteTaskManuallyRequest + 99, // 85: bundle.Bundle.UpdateTaskProgress:input_type -> bundle.UpdateTaskProgressRequest + 100, // 86: bundle.Bundle.GetTaskAssignRecordsList:input_type -> bundle.TaskAssignRecordsQueryRequest + 102, // 87: bundle.Bundle.GetArtistBundleBalance:input_type -> bundle.ArtistBundleBalanceRequest + 13, // 88: bundle.Bundle.CreateBundle:output_type -> bundle.CommonResponse + 13, // 89: bundle.Bundle.UpdateBundle:output_type -> bundle.CommonResponse + 13, // 90: bundle.Bundle.DeleteBundle:output_type -> bundle.CommonResponse + 13, // 91: bundle.Bundle.HandShelf:output_type -> bundle.CommonResponse + 16, // 92: bundle.Bundle.SaveBundle:output_type -> bundle.SaveResponse + 20, // 93: bundle.Bundle.BundleListV2:output_type -> bundle.BundleListResponse + 24, // 94: bundle.Bundle.BundleDetailV2:output_type -> bundle.BundleDetailResponseV2 + 20, // 95: bundle.Bundle.BundleListH5V2:output_type -> bundle.BundleListResponse + 15, // 96: bundle.Bundle.BundleLangDetailV2:output_type -> bundle.BundleProfileLang + 20, // 97: bundle.Bundle.BundleList:output_type -> bundle.BundleListResponse + 23, // 98: bundle.Bundle.BundleDetail:output_type -> bundle.BundleDetailResponse + 13, // 99: bundle.Bundle.CreateOrderRecord:output_type -> bundle.CommonResponse + 13, // 100: bundle.Bundle.UpdateOrderRecord:output_type -> bundle.CommonResponse + 13, // 101: bundle.Bundle.UpdateOrderRecordByOrderNo:output_type -> bundle.CommonResponse + 31, // 102: bundle.Bundle.OrderRecordsList:output_type -> bundle.OrderRecordsResponse + 33, // 103: bundle.Bundle.OrderRecordsDetail:output_type -> bundle.OrderRecordsDetailResponse + 13, // 104: bundle.Bundle.UpdateFinancialConfirmationStatus:output_type -> bundle.CommonResponse + 13, // 105: bundle.Bundle.CreateOrderAddRecord:output_type -> bundle.CommonResponse + 12, // 106: bundle.Bundle.PackagePriceAndTime:output_type -> bundle.PackagePriceAndTimeResponse + 9, // 107: bundle.Bundle.OrderRecordsListV2:output_type -> bundle.OrderRecordsResponseV2 + 5, // 108: bundle.Bundle.OrderListByOrderNo:output_type -> bundle.OrderInfoByOrderNoResp + 79, // 109: bundle.Bundle.OnlyAddValueListByOrderNo:output_type -> bundle.OnlyAddValueListByOrderNoResp + 36, // 110: bundle.Bundle.CreateValueAddBundle:output_type -> bundle.CreateValueAddBundleResponse + 38, // 111: bundle.Bundle.ValueAddBundleList:output_type -> bundle.ValueAddBundleListResponse + 40, // 112: bundle.Bundle.ValueAddBundleDetail:output_type -> bundle.ValueAddBundleDetailResponse + 16, // 113: bundle.Bundle.SaveValueAddService:output_type -> bundle.SaveResponse + 46, // 114: bundle.Bundle.ValueAddServiceList:output_type -> bundle.ValueAddServiceListResponse + 48, // 115: bundle.Bundle.ValueAddServiceDetail:output_type -> bundle.ValueAddServiceDetailResponse + 43, // 116: bundle.Bundle.ValueAddServiceLangByUuidAndLanguage:output_type -> bundle.ValueAddServiceLang + 50, // 117: bundle.Bundle.CalculatePrice:output_type -> bundle.CalculatePriceResponse + 52, // 118: bundle.Bundle.BatchGetValueAddServiceLang:output_type -> bundle.BatchGetValueAddServiceLangResponse + 13, // 119: bundle.Bundle.DeleteValueAddService:output_type -> bundle.CommonResponse + 54, // 120: bundle.Bundle.BundleExtend:output_type -> bundle.BundleExtendResponse + 56, // 121: bundle.Bundle.BundleExtendRecordsList:output_type -> bundle.BundleExtendRecordsListResponse + 61, // 122: bundle.Bundle.GetBundleBalanceList:output_type -> bundle.GetBundleBalanceListResp + 77, // 123: bundle.Bundle.GetBundleBalanceByUserId:output_type -> bundle.GetBundleBalanceByUserIdResp + 63, // 124: bundle.Bundle.CreateBundleBalance:output_type -> bundle.CreateBundleBalanceResp + 65, // 125: bundle.Bundle.AddBundleBalance:output_type -> bundle.AddBundleBalanceResp + 67, // 126: bundle.Bundle.GetUsedRecordList:output_type -> bundle.GetUsedRecordListResp + 71, // 127: bundle.Bundle.GetImageWorkDetail:output_type -> bundle.GetImageWorkDetailResp + 72, // 128: bundle.Bundle.GetVedioWorkDetail:output_type -> bundle.GetVedioeWorkDetailResp + 75, // 129: bundle.Bundle.ToBeComfirmedWorks:output_type -> bundle.ToBeComfirmedWorksResp + 83, // 130: bundle.Bundle.ConfirmWork:output_type -> bundle.ConfirmWorkResp + 2, // 131: bundle.Bundle.GetReconciliationList:output_type -> bundle.GetReconciliationListResp + 13, // 132: bundle.Bundle.CreateReconciliation:output_type -> bundle.CommonResponse + 13, // 133: bundle.Bundle.UpdateReconciliation:output_type -> bundle.CommonResponse + 13, // 134: bundle.Bundle.UpdateReconciliationStatusBySerialNumber:output_type -> bundle.CommonResponse + 85, // 135: bundle.Bundle.ListUnfinishedInfos:output_type -> bundle.UnfinishedInfos + 13, // 136: bundle.Bundle.SoftDeleteUnfinishedInfo:output_type -> bundle.CommonResponse + 89, // 137: bundle.Bundle.GetPendingTaskList:output_type -> bundle.TaskQueryResponse + 13, // 138: bundle.Bundle.AssignTask:output_type -> bundle.CommonResponse + 13, // 139: bundle.Bundle.UpdatePendingCount:output_type -> bundle.CommonResponse + 94, // 140: bundle.Bundle.GetRecentAssignRecords:output_type -> bundle.RecentAssignRecordsResponse + 96, // 141: bundle.Bundle.GetEmployeeAssignedTasks:output_type -> bundle.EmployeeTaskQueryResponse + 13, // 142: bundle.Bundle.CompleteTaskManually:output_type -> bundle.CommonResponse + 13, // 143: bundle.Bundle.UpdateTaskProgress:output_type -> bundle.CommonResponse + 101, // 144: bundle.Bundle.GetTaskAssignRecordsList:output_type -> bundle.TaskAssignRecordsQueryResponse + 103, // 145: bundle.Bundle.GetArtistBundleBalance:output_type -> bundle.ArtistBundleBalanceResponse + 88, // [88:146] is the sub-list for method output_type + 30, // [30:88] is the sub-list for method input_type + 30, // [30:30] is the sub-list for extension type_name + 30, // [30:30] is the sub-list for extension extendee + 0, // [0:30] is the sub-list for field type_name } func init() { file_pb_bundle_proto_init() } @@ -8679,13 +11392,1263 @@ func file_pb_bundle_proto_init() { if File_pb_bundle_proto != nil { return } + if !protoimpl.UnsafeEnabled { + file_pb_bundle_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteValueAddServiceRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetReconciliationListReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetReconciliationListResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ReconciliationInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OrderInfoByOrderNoRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OrderInfoByOrderNoResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OrderCreateRecord); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OrderCreateAddRecord); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OrderRecordsRequestV2); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OrderRecordsResponseV2); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OrderBundleRecordInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OrderAddBundleRecordInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PackagePriceAndTimeResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CommonResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BundleProfile); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BundleProfileLang); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SaveResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SelectValueAddService); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DelBundleRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BundleListRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BundleListResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BundleDetailRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HandShelfRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BundleDetailResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BundleDetailResponseV2); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OrderRecord); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OrderAddRecord); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddPriceOptionsInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PriceOptionsInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OrderRecordsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OrderRecordsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OrderRecordsDetailRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OrderRecordsDetailResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ValueAddBundleProfile); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateValueAddBundleRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateValueAddBundleResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ValueAddBundleListRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ValueAddBundleListResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ValueAddBundleDetailRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ValueAddBundleDetailResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FinancialConfirmationRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ValueAddService); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ValueAddServiceLang); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ValueAddPriceOptions); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ValueAddServiceListRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ValueAddServiceListResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ValueAddServiceDetailRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ValueAddServiceDetailResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CalculatePriceRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CalculatePriceResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BatchGetValueAddServiceLangRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BatchGetValueAddServiceLangResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BundleExtendRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BundleExtendResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BundleExtendRecordsListRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BundleExtendRecordsListResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BundleExtendRecordItem); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetBundleBalanceListReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetBundleBalanceReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BundleBalanceItem); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetBundleBalanceListResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateBundleBalanceReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateBundleBalanceResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddBundleBalanceReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddBundleBalanceResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetUsedRecordListReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetUsedRecordListResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WorkCastItem); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetImageWorkDetailReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetVedioWorkDetailReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetImageWorkDetailResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetVedioeWorkDetailResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ToBeComfirmedWorksReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WorkItem); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ToBeComfirmedWorksResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetBundleBalanceByUserIdReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetBundleBalanceByUserIdResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OnlyAddValueListByOrderNoRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OnlyAddValueListByOrderNoResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddBundleInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateStatusAndPayTimeBySerialNumber); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ConfirmWorkReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ConfirmWorkResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AutoCreateUserAndOrderRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UnfinishedInfos); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UnfinishedInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SoftDeleteUnfinishedInfoRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TaskQueryRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TaskQueryResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TaskManagementInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TaskAssignRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdatePendingCountRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RecentAssignRecordsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RecentAssignRecordsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EmployeeTaskQueryRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EmployeeTaskQueryResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TaskAssignRecordInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CompleteTaskManuallyRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateTaskProgressRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TaskAssignRecordsQueryRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TaskAssignRecordsQueryResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ArtistBundleBalanceRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_bundle_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ArtistBundleBalanceResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: unsafe.Slice(unsafe.StringData(file_pb_bundle_proto_rawDesc), len(file_pb_bundle_proto_rawDesc)), + RawDescriptor: file_pb_bundle_proto_rawDesc, NumEnums: 0, - NumMessages: 88, + NumMessages: 104, NumExtensions: 0, NumServices: 1, }, @@ -8694,6 +12657,7 @@ func file_pb_bundle_proto_init() { MessageInfos: file_pb_bundle_proto_msgTypes, }.Build() File_pb_bundle_proto = out.File + file_pb_bundle_proto_rawDesc = nil file_pb_bundle_proto_goTypes = nil file_pb_bundle_proto_depIdxs = nil } diff --git a/pb/bundle/bundle.validator.pb.go b/pb/bundle/bundle.validator.pb.go index 24c7d92..41ff596 100644 --- a/pb/bundle/bundle.validator.pb.go +++ b/pb/bundle/bundle.validator.pb.go @@ -466,3 +466,72 @@ func (this *UnfinishedInfo) Validate() error { func (this *SoftDeleteUnfinishedInfoRequest) Validate() error { return nil } +func (this *TaskQueryRequest) Validate() error { + return nil +} +func (this *TaskQueryResponse) Validate() error { + for _, item := range this.Tasks { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Tasks", err) + } + } + } + return nil +} +func (this *TaskManagementInfo) Validate() error { + return nil +} +func (this *TaskAssignRequest) Validate() error { + return nil +} +func (this *UpdatePendingCountRequest) Validate() error { + return nil +} +func (this *RecentAssignRecordsRequest) Validate() error { + return nil +} +func (this *RecentAssignRecordsResponse) Validate() error { + return nil +} +func (this *EmployeeTaskQueryRequest) Validate() error { + return nil +} +func (this *EmployeeTaskQueryResponse) Validate() error { + for _, item := range this.Records { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Records", err) + } + } + } + return nil +} +func (this *TaskAssignRecordInfo) Validate() error { + return nil +} +func (this *CompleteTaskManuallyRequest) Validate() error { + return nil +} +func (this *UpdateTaskProgressRequest) Validate() error { + return nil +} +func (this *TaskAssignRecordsQueryRequest) Validate() error { + return nil +} +func (this *TaskAssignRecordsQueryResponse) Validate() error { + for _, item := range this.Records { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Records", err) + } + } + } + return nil +} +func (this *ArtistBundleBalanceRequest) Validate() error { + return nil +} +func (this *ArtistBundleBalanceResponse) Validate() error { + return nil +} diff --git a/pb/bundle/bundle_triple.pb.go b/pb/bundle/bundle_triple.pb.go index 41948a9..cfe13a0 100644 --- a/pb/bundle/bundle_triple.pb.go +++ b/pb/bundle/bundle_triple.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-triple. DO NOT EDIT. // versions: -// - protoc-gen-go-triple v1.0.5 -// - protoc v6.32.0 +// - protoc-gen-go-triple v1.0.8 +// - protoc v3.21.1 // source: pb/bundle.proto package bundle @@ -83,6 +83,16 @@ type BundleClient interface { // 查出没处理的数据 ListUnfinishedInfos(ctx context.Context, in *AutoCreateUserAndOrderRequest, opts ...grpc_go.CallOption) (*UnfinishedInfos, common.ErrorWithAttachment) SoftDeleteUnfinishedInfo(ctx context.Context, in *SoftDeleteUnfinishedInfoRequest, opts ...grpc_go.CallOption) (*CommonResponse, common.ErrorWithAttachment) + // 任务台 + GetPendingTaskList(ctx context.Context, in *TaskQueryRequest, opts ...grpc_go.CallOption) (*TaskQueryResponse, common.ErrorWithAttachment) + AssignTask(ctx context.Context, in *TaskAssignRequest, opts ...grpc_go.CallOption) (*CommonResponse, common.ErrorWithAttachment) + UpdatePendingCount(ctx context.Context, in *UpdatePendingCountRequest, opts ...grpc_go.CallOption) (*CommonResponse, common.ErrorWithAttachment) + GetRecentAssignRecords(ctx context.Context, in *RecentAssignRecordsRequest, opts ...grpc_go.CallOption) (*RecentAssignRecordsResponse, common.ErrorWithAttachment) + GetEmployeeAssignedTasks(ctx context.Context, in *EmployeeTaskQueryRequest, opts ...grpc_go.CallOption) (*EmployeeTaskQueryResponse, common.ErrorWithAttachment) + CompleteTaskManually(ctx context.Context, in *CompleteTaskManuallyRequest, opts ...grpc_go.CallOption) (*CommonResponse, common.ErrorWithAttachment) + UpdateTaskProgress(ctx context.Context, in *UpdateTaskProgressRequest, opts ...grpc_go.CallOption) (*CommonResponse, common.ErrorWithAttachment) + GetTaskAssignRecordsList(ctx context.Context, in *TaskAssignRecordsQueryRequest, opts ...grpc_go.CallOption) (*TaskAssignRecordsQueryResponse, common.ErrorWithAttachment) + GetArtistBundleBalance(ctx context.Context, in *ArtistBundleBalanceRequest, opts ...grpc_go.CallOption) (*ArtistBundleBalanceResponse, common.ErrorWithAttachment) } type bundleClient struct { @@ -139,6 +149,15 @@ type BundleClientImpl struct { UpdateReconciliationStatusBySerialNumber func(ctx context.Context, in *UpdateStatusAndPayTimeBySerialNumber) (*CommonResponse, error) ListUnfinishedInfos func(ctx context.Context, in *AutoCreateUserAndOrderRequest) (*UnfinishedInfos, error) SoftDeleteUnfinishedInfo func(ctx context.Context, in *SoftDeleteUnfinishedInfoRequest) (*CommonResponse, error) + GetPendingTaskList func(ctx context.Context, in *TaskQueryRequest) (*TaskQueryResponse, error) + AssignTask func(ctx context.Context, in *TaskAssignRequest) (*CommonResponse, error) + UpdatePendingCount func(ctx context.Context, in *UpdatePendingCountRequest) (*CommonResponse, error) + GetRecentAssignRecords func(ctx context.Context, in *RecentAssignRecordsRequest) (*RecentAssignRecordsResponse, error) + GetEmployeeAssignedTasks func(ctx context.Context, in *EmployeeTaskQueryRequest) (*EmployeeTaskQueryResponse, error) + CompleteTaskManually func(ctx context.Context, in *CompleteTaskManuallyRequest) (*CommonResponse, error) + UpdateTaskProgress func(ctx context.Context, in *UpdateTaskProgressRequest) (*CommonResponse, error) + GetTaskAssignRecordsList func(ctx context.Context, in *TaskAssignRecordsQueryRequest) (*TaskAssignRecordsQueryResponse, error) + GetArtistBundleBalance func(ctx context.Context, in *ArtistBundleBalanceRequest) (*ArtistBundleBalanceResponse, error) } func (c *BundleClientImpl) GetDubboStub(cc *triple.TripleConn) BundleClient { @@ -447,6 +466,60 @@ func (c *bundleClient) SoftDeleteUnfinishedInfo(ctx context.Context, in *SoftDel return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/SoftDeleteUnfinishedInfo", in, out) } +func (c *bundleClient) GetPendingTaskList(ctx context.Context, in *TaskQueryRequest, opts ...grpc_go.CallOption) (*TaskQueryResponse, common.ErrorWithAttachment) { + out := new(TaskQueryResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetPendingTaskList", in, out) +} + +func (c *bundleClient) AssignTask(ctx context.Context, in *TaskAssignRequest, opts ...grpc_go.CallOption) (*CommonResponse, common.ErrorWithAttachment) { + out := new(CommonResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/AssignTask", in, out) +} + +func (c *bundleClient) UpdatePendingCount(ctx context.Context, in *UpdatePendingCountRequest, opts ...grpc_go.CallOption) (*CommonResponse, common.ErrorWithAttachment) { + out := new(CommonResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/UpdatePendingCount", in, out) +} + +func (c *bundleClient) GetRecentAssignRecords(ctx context.Context, in *RecentAssignRecordsRequest, opts ...grpc_go.CallOption) (*RecentAssignRecordsResponse, common.ErrorWithAttachment) { + out := new(RecentAssignRecordsResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetRecentAssignRecords", in, out) +} + +func (c *bundleClient) GetEmployeeAssignedTasks(ctx context.Context, in *EmployeeTaskQueryRequest, opts ...grpc_go.CallOption) (*EmployeeTaskQueryResponse, common.ErrorWithAttachment) { + out := new(EmployeeTaskQueryResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetEmployeeAssignedTasks", in, out) +} + +func (c *bundleClient) CompleteTaskManually(ctx context.Context, in *CompleteTaskManuallyRequest, opts ...grpc_go.CallOption) (*CommonResponse, common.ErrorWithAttachment) { + out := new(CommonResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/CompleteTaskManually", in, out) +} + +func (c *bundleClient) UpdateTaskProgress(ctx context.Context, in *UpdateTaskProgressRequest, opts ...grpc_go.CallOption) (*CommonResponse, common.ErrorWithAttachment) { + out := new(CommonResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/UpdateTaskProgress", in, out) +} + +func (c *bundleClient) GetTaskAssignRecordsList(ctx context.Context, in *TaskAssignRecordsQueryRequest, opts ...grpc_go.CallOption) (*TaskAssignRecordsQueryResponse, common.ErrorWithAttachment) { + out := new(TaskAssignRecordsQueryResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetTaskAssignRecordsList", in, out) +} + +func (c *bundleClient) GetArtistBundleBalance(ctx context.Context, in *ArtistBundleBalanceRequest, opts ...grpc_go.CallOption) (*ArtistBundleBalanceResponse, common.ErrorWithAttachment) { + out := new(ArtistBundleBalanceResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetArtistBundleBalance", in, out) +} + // BundleServer is the server API for Bundle service. // All implementations must embed UnimplementedBundleServer // for forward compatibility @@ -506,6 +579,16 @@ type BundleServer interface { // 查出没处理的数据 ListUnfinishedInfos(context.Context, *AutoCreateUserAndOrderRequest) (*UnfinishedInfos, error) SoftDeleteUnfinishedInfo(context.Context, *SoftDeleteUnfinishedInfoRequest) (*CommonResponse, error) + // 任务台 + GetPendingTaskList(context.Context, *TaskQueryRequest) (*TaskQueryResponse, error) + AssignTask(context.Context, *TaskAssignRequest) (*CommonResponse, error) + UpdatePendingCount(context.Context, *UpdatePendingCountRequest) (*CommonResponse, error) + GetRecentAssignRecords(context.Context, *RecentAssignRecordsRequest) (*RecentAssignRecordsResponse, error) + GetEmployeeAssignedTasks(context.Context, *EmployeeTaskQueryRequest) (*EmployeeTaskQueryResponse, error) + CompleteTaskManually(context.Context, *CompleteTaskManuallyRequest) (*CommonResponse, error) + UpdateTaskProgress(context.Context, *UpdateTaskProgressRequest) (*CommonResponse, error) + GetTaskAssignRecordsList(context.Context, *TaskAssignRecordsQueryRequest) (*TaskAssignRecordsQueryResponse, error) + GetArtistBundleBalance(context.Context, *ArtistBundleBalanceRequest) (*ArtistBundleBalanceResponse, error) mustEmbedUnimplementedBundleServer() } @@ -661,6 +744,33 @@ func (UnimplementedBundleServer) ListUnfinishedInfos(context.Context, *AutoCreat func (UnimplementedBundleServer) SoftDeleteUnfinishedInfo(context.Context, *SoftDeleteUnfinishedInfoRequest) (*CommonResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method SoftDeleteUnfinishedInfo not implemented") } +func (UnimplementedBundleServer) GetPendingTaskList(context.Context, *TaskQueryRequest) (*TaskQueryResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetPendingTaskList not implemented") +} +func (UnimplementedBundleServer) AssignTask(context.Context, *TaskAssignRequest) (*CommonResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method AssignTask not implemented") +} +func (UnimplementedBundleServer) UpdatePendingCount(context.Context, *UpdatePendingCountRequest) (*CommonResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdatePendingCount not implemented") +} +func (UnimplementedBundleServer) GetRecentAssignRecords(context.Context, *RecentAssignRecordsRequest) (*RecentAssignRecordsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetRecentAssignRecords not implemented") +} +func (UnimplementedBundleServer) GetEmployeeAssignedTasks(context.Context, *EmployeeTaskQueryRequest) (*EmployeeTaskQueryResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetEmployeeAssignedTasks not implemented") +} +func (UnimplementedBundleServer) CompleteTaskManually(context.Context, *CompleteTaskManuallyRequest) (*CommonResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CompleteTaskManually not implemented") +} +func (UnimplementedBundleServer) UpdateTaskProgress(context.Context, *UpdateTaskProgressRequest) (*CommonResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateTaskProgress not implemented") +} +func (UnimplementedBundleServer) GetTaskAssignRecordsList(context.Context, *TaskAssignRecordsQueryRequest) (*TaskAssignRecordsQueryResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetTaskAssignRecordsList not implemented") +} +func (UnimplementedBundleServer) GetArtistBundleBalance(context.Context, *ArtistBundleBalanceRequest) (*ArtistBundleBalanceResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetArtistBundleBalance not implemented") +} func (s *UnimplementedBundleServer) XXX_SetProxyImpl(impl protocol.Invoker) { s.proxyImpl = impl } @@ -2110,6 +2220,267 @@ func _Bundle_SoftDeleteUnfinishedInfo_Handler(srv interface{}, ctx context.Conte return interceptor(ctx, in, info, handler) } +func _Bundle_GetPendingTaskList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(TaskQueryRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("GetPendingTaskList", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Bundle_AssignTask_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(TaskAssignRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("AssignTask", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Bundle_UpdatePendingCount_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdatePendingCountRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("UpdatePendingCount", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Bundle_GetRecentAssignRecords_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(RecentAssignRecordsRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("GetRecentAssignRecords", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Bundle_GetEmployeeAssignedTasks_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(EmployeeTaskQueryRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("GetEmployeeAssignedTasks", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Bundle_CompleteTaskManually_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(CompleteTaskManuallyRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("CompleteTaskManually", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Bundle_UpdateTaskProgress_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateTaskProgressRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("UpdateTaskProgress", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Bundle_GetTaskAssignRecordsList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(TaskAssignRecordsQueryRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("GetTaskAssignRecordsList", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Bundle_GetArtistBundleBalance_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(ArtistBundleBalanceRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("GetArtistBundleBalance", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + // Bundle_ServiceDesc is the grpc_go.ServiceDesc for Bundle service. // It's only intended for direct use with grpc_go.RegisterService, // and not to be introspected or modified (even as a copy) @@ -2313,6 +2684,42 @@ var Bundle_ServiceDesc = grpc_go.ServiceDesc{ MethodName: "SoftDeleteUnfinishedInfo", Handler: _Bundle_SoftDeleteUnfinishedInfo_Handler, }, + { + MethodName: "GetPendingTaskList", + Handler: _Bundle_GetPendingTaskList_Handler, + }, + { + MethodName: "AssignTask", + Handler: _Bundle_AssignTask_Handler, + }, + { + MethodName: "UpdatePendingCount", + Handler: _Bundle_UpdatePendingCount_Handler, + }, + { + MethodName: "GetRecentAssignRecords", + Handler: _Bundle_GetRecentAssignRecords_Handler, + }, + { + MethodName: "GetEmployeeAssignedTasks", + Handler: _Bundle_GetEmployeeAssignedTasks_Handler, + }, + { + MethodName: "CompleteTaskManually", + Handler: _Bundle_CompleteTaskManually_Handler, + }, + { + MethodName: "UpdateTaskProgress", + Handler: _Bundle_UpdateTaskProgress_Handler, + }, + { + MethodName: "GetTaskAssignRecordsList", + Handler: _Bundle_GetTaskAssignRecordsList_Handler, + }, + { + MethodName: "GetArtistBundleBalance", + Handler: _Bundle_GetArtistBundleBalance_Handler, + }, }, Streams: []grpc_go.StreamDesc{}, Metadata: "pb/bundle.proto", diff --git a/pkg/app/app.go b/pkg/app/app.go index 829ec33..dc369d0 100644 --- a/pkg/app/app.go +++ b/pkg/app/app.go @@ -3,7 +3,7 @@ package app import ( "github.com/bwmarrin/snowflake" "go.uber.org/zap" - "gorm.io/gorm" + "micro-bundle/pkg/db" "micro-bundle/pkg/tracing" ) @@ -13,6 +13,7 @@ type App struct { Lg *zap.Logger //RedisClient *redis.Client JaegerTracer *tracing.JaegerProvider - BundleDB *gorm.DB SfNode *snowflake.Node + BundleDB *db.BundleDB + TaskBenchDB *db.TaskBenchDB } diff --git a/pkg/db/bundleDB.go b/pkg/db/bundleDB.go index 8b7ea25..469beb9 100644 --- a/pkg/db/bundleDB.go +++ b/pkg/db/bundleDB.go @@ -8,12 +8,17 @@ import ( "gorm.io/gorm" ) +// 定义一个新的类型来区分BundleDB +type BundleDB struct { + *gorm.DB +} + var Provider = wire.NewSet(NewBundleDB) -func NewBundleDB() *gorm.DB { +func NewBundleDB() *BundleDB { connBundleDB := strings.Join([]string{bundleConfig.Data.BundleDB.User, ":", bundleConfig.Data.BundleDB.Password, "@tcp(", bundleConfig.Data.BundleDB.Host, ":", bundleConfig.Data.BundleDB.Port, ")/", bundleConfig.Data.BundleDB.DbName, "?charset=utf8mb4&parseTime=true&loc=Local"}, "") - DciDB := loadMysqlConn(connBundleDB) - return DciDB + db := loadMysqlConn(connBundleDB) + return &BundleDB{DB: db} } diff --git a/pkg/db/mysql.go b/pkg/db/mysql.go index c5dc0eb..d0d5872 100644 --- a/pkg/db/mysql.go +++ b/pkg/db/mysql.go @@ -1,6 +1,8 @@ package db import ( + "fmt" + "log" "time" "github.com/gin-gonic/gin" @@ -36,10 +38,13 @@ func loadMysqlConn(conn string) *gorm.DB { if err != nil { panic(err) } + fmt.Println("[BundleDB] 数据库连接成功, 连接字符串: %s", conn) sqlDB, _ := db.DB() sqlDB.SetMaxIdleConns(20) //设置连接池,空闲 sqlDB.SetMaxOpenConns(100) //打开 sqlDB.SetConnMaxLifetime(time.Second * 30) + + // Bundle数据库的自动迁移 err = db.AutoMigrate( &model.BundleProfile{}, &model.BundleOrderRecords{}, @@ -58,15 +63,60 @@ func loadMysqlConn(conn string) *gorm.DB { ) if err != nil { - return nil + // return nil + panic(err) } return db } +// TaskBench数据库的自动迁移函数 +func loadTaskBenchMysqlConn(conn string) *gorm.DB { + var ormLogger logger.Interface + if gin.Mode() == "debug" { + ormLogger = logger.Default.LogMode(logger.Info) + } else { + ormLogger = logger.Default + } + db, err := gorm.Open(mysql.New(mysql.Config{ + DSN: conn, + DefaultStringSize: 256, + DisableDatetimePrecision: true, + DontSupportRenameIndex: true, + DontSupportRenameColumn: true, + SkipInitializeWithVersion: false, + }), &gorm.Config{ + Logger: ormLogger, + NamingStrategy: schema.NamingStrategy{ + SingularTable: true, + }, + DisableForeignKeyConstraintWhenMigrating: true, + }) + if err != nil { + panic(err) + } + sqlDB, _ := db.DB() + sqlDB.SetMaxIdleConns(20) + sqlDB.SetMaxOpenConns(100) + sqlDB.SetConnMaxLifetime(time.Second * 30) + + // 自动迁移任务管理台相关数据库表 + err = db.AutoMigrate( + &model.TaskManagement{}, + &model.TaskAssignRecords{}, + ) + + if err != nil { + log.Printf("[TaskBenchDB] 数据库迁移失败: %v", err) + panic(err) + } + + log.Printf("[TaskBenchDB] 数据库迁移成功,已创建表: task_management, task_assign_records") + return db +} + func DBMigration() { } func addColumn(dst interface{}, column string) { - return } diff --git a/pkg/db/taskBenchDB.go b/pkg/db/taskBenchDB.go new file mode 100644 index 0000000..67f5d6b --- /dev/null +++ b/pkg/db/taskBenchDB.go @@ -0,0 +1,24 @@ +package db + +import ( + bundleConfig "micro-bundle/config" + "strings" + + "github.com/google/wire" + "gorm.io/gorm" +) + +// 定义一个新的类型来区分TaskBenchDB +type TaskBenchDB struct { + *gorm.DB +} + +var TaskBenchProvider = wire.NewSet(NewTaskBenchDB) + +func NewTaskBenchDB() *TaskBenchDB { + connTaskBenchDB := strings.Join([]string{bundleConfig.Data.TaskBenchDB.User, ":", bundleConfig.Data.TaskBenchDB.Password, + "@tcp(", bundleConfig.Data.TaskBenchDB.Host, ":", bundleConfig.Data.TaskBenchDB.Port, ")/", + bundleConfig.Data.TaskBenchDB.DbName, "?charset=utf8mb4&parseTime=true&loc=Local"}, "") + db := loadTaskBenchMysqlConn(connTaskBenchDB) + return &TaskBenchDB{DB: db} +}