diff --git a/internal/controller/task.go b/internal/controller/task.go index 005a49d..8f9a11f 100644 --- a/internal/controller/task.go +++ b/internal/controller/task.go @@ -268,29 +268,45 @@ func convertToTaskAssignRecordInfo(record *dao.TaskAssignRecordsResponse) *bundl } } -// GetArtistBundleBalance 查询艺人套餐剩余数量 +// GetArtistBundleBalance 查询艺人的当前任务余额与待发数量(区分套餐/增值两类) +// 说明: +// - 查询条件优先使用艺人编号(customerNum),为空时使用手机号(telNum) +// - 返回同时包含“套餐类型”和“增值类型”的余额与待发数量,均按视频/图文/数据分析三类区分 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, + // 组装查询参数(逻辑层/DAO层使用 SubNum 与 TelNum) + pendingReq := &dao.PendingAndBalanceRequest{ + SubNum: req.CustomerNum, // 映射 customerNum -> SubNum + TelNum: req.TelNum, // 映射 telNum -> TelNum } - // 调用logic层 - result, err := logic.GetArtistBundleBalance(daoReq) + // 调用逻辑层:查询待发数量与任务余额(区分套餐/增值) + resp, err := logic.GetPendingAndTaskBalances(pendingReq) if err != nil { return nil, err } - // 转换响应数据 + // 映射为proto响应结构(套餐/增值分别返回视频/图文/数据分析的余额与待发数量) return &bundle.ArtistBundleBalanceResponse{ - RemainingVideoCount: int32(result.RemainingVideoCount), - RemainingImageCount: int32(result.RemainingImageCount), - RemainingDataAnalysisCount: int32(result.RemainingDataAnalysisCount), + // 套餐类型余额 + BundleVideoBalance: int32(resp.BundleVideoBalance), + BundleImageBalance: int32(resp.BundleImageBalance), + BundleDataAnalysisBalance: int32(resp.BundleDataAnalysisBalance), + // 增值类型余额 + IncreaseVideoBalance: int32(resp.IncreaseVideoBalance), + IncreaseImageBalance: int32(resp.IncreaseImageBalance), + IncreaseDataAnalysisBalance: int32(resp.IncreaseDataAnalysisBalance), + // 套餐类型待发数量 + BundlePendingVideoCount: int32(resp.PendingBundleVideoCount), + BundlePendingImageCount: int32(resp.PendingBundleImageCount), + BundlePendingDataAnalysisCount: int32(resp.PendingBundleDataAnalysisCount), + // 增值类型待发数量 + IncreasePendingVideoCount: int32(resp.PendingIncreaseVideoCount), + IncreasePendingImageCount: int32(resp.PendingIncreaseImageCount), + IncreasePendingDataAnalysisCount: int32(resp.PendingIncreaseDataAnalysisCount), }, nil } diff --git a/internal/dao/taskDao.go b/internal/dao/taskDao.go index 8013d56..94bedee 100644 --- a/internal/dao/taskDao.go +++ b/internal/dao/taskDao.go @@ -12,6 +12,90 @@ import ( "gorm.io/gorm" ) +// ===== 聚合和扣减的辅助函数 ===== + +// aggregatePendingVideo 汇总所有视频分类的待发数量 +func aggregatePendingVideo(t *model.TaskManagement) int { + return t.PendingBundleLimitVideoExpiredCount + t.PendingBundleLimitVideoCount + + t.PendingIncreaseLimitVideoExpiredCount + t.PendingIncreaseLimitVideoCount + + t.PendingBundleVideoCount + t.PendingIncreaseVideoCount +} + +// aggregatePendingImage 汇总所有图文分类的待发数量 +func aggregatePendingImage(t *model.TaskManagement) int { + return t.PendingBundleLimitImageExpiredCount + t.PendingBundleLimitImageCount + + t.PendingIncreaseLimitImageExpiredCount + t.PendingIncreaseLimitImageCount + + t.PendingBundleImageCount + t.PendingIncreaseImageCount +} + +// aggregatePendingData 汇总所有数据分析分类的待发数量 +func aggregatePendingData(t *model.TaskManagement) int { + return t.PendingBundleLimitDataAnalysisExpiredCount + t.PendingBundleLimitDataAnalysisCount + + t.PendingIncreaseLimitDataAnalysisExpiredCount + t.PendingIncreaseLimitDataAnalysisCount + + t.PendingBundleDataAnalysisCount + t.PendingIncreaseDataAnalysisCount +} + +// deductCount 按顺序从各个桶中扣减数量,剩余未扣减数量应为0(正常情况) +func deductCount(count *int, buckets ...*int) { + if count == nil { + return + } + for _, b := range buckets { + if *count <= 0 { + break + } + if b == nil || *b <= 0 { + continue + } + if *b >= *count { + *b = *b - *count + *count = 0 + } else { + *count = *count - *b + *b = 0 + } + } +} + +// deductVideo 视频扣减优先级:受限 > 非受限;同类型中:打包 > 增量;受限类型中:过期优先 +func deductVideo(t *model.TaskManagement, n int) { + c := n + deductCount(&c, + &t.PendingBundleLimitVideoExpiredCount, + &t.PendingBundleLimitVideoCount, + &t.PendingIncreaseLimitVideoExpiredCount, + &t.PendingIncreaseLimitVideoCount, + &t.PendingBundleVideoCount, + &t.PendingIncreaseVideoCount, + ) +} + +// deductImage 图文扣减优先级:受限 > 非受限;同类型中:打包 > 增量;受限类型中:过期优先 +func deductImage(t *model.TaskManagement, n int) { + c := n + deductCount(&c, + &t.PendingBundleLimitImageExpiredCount, + &t.PendingBundleLimitImageCount, + &t.PendingIncreaseLimitImageExpiredCount, + &t.PendingIncreaseLimitImageCount, + &t.PendingBundleImageCount, + &t.PendingIncreaseImageCount, + ) +} + +// deductData 数据分析扣减优先级:受限 > 非受限;同类型中:打包 > 增量;受限类型中:过期优先 +func deductData(t *model.TaskManagement, n int) { + c := n + deductCount(&c, + &t.PendingBundleLimitDataAnalysisExpiredCount, + &t.PendingBundleLimitDataAnalysisCount, + &t.PendingIncreaseLimitDataAnalysisExpiredCount, + &t.PendingIncreaseLimitDataAnalysisCount, + &t.PendingBundleDataAnalysisCount, + &t.PendingIncreaseDataAnalysisCount, + ) +} + // TaskQueryRequest 查询待指派任务记录请求参数 type TaskQueryRequest struct { Keyword string `json:"keyword"` // 艺人姓名、编号、手机号搜索关键词 @@ -162,6 +246,147 @@ type ArtistBundleBalanceResponse struct { RemainingDataAnalysisCount int `json:"remainingDataAnalysisCount"` // 剩余数据分析数量 (data_analysis_number - data_analysis_consumption_number) } +// PendingAndBalanceRequest 查询待发与任务余额请求参数 +// 优先使用艺人编号查询,如果为空则使用手机号查询 +type PendingAndBalanceRequest struct { + SubNum string `json:"subNum"` // 艺人编号(推荐使用) + TelNum string `json:"telNum"` // 艺人手机号(备选) +} + +// PendingAndBalanceResponse 查询待发与任务余额响应结构 +// 待发数量为细分待发字段求和;余额为对应总数减已使用数后再按类别(套餐/增值)聚合 +type PendingAndBalanceResponse struct { + // 待发(按类别聚合) + PendingBundleVideoCount int `json:"pendingBundleVideoCount"` // 待发套餐视频数量(非限制+限制非过期+限制会过期) + PendingBundleImageCount int `json:"pendingBundleImageCount"` // 待发套餐图文数量(非限制+限制非过期+限制会过期) + PendingBundleDataAnalysisCount int `json:"pendingBundleDataAnalysisCount"` // 待发套餐数据分析数量(非限制+限制非过期+限制会过期) + + PendingIncreaseVideoCount int `json:"pendingIncreaseVideoCount"` // 待发增值视频数量(非限制+限制非过期+限制会过期) + PendingIncreaseImageCount int `json:"pendingIncreaseImageCount"` // 待发增值图文数量(非限制+限制非过期+限制会过期) + PendingIncreaseDataAnalysisCount int `json:"pendingIncreaseDataAnalysisCount"` // 待发增值数据分析数量(非限制+限制非过期+限制会过期) + + // 任务余额(套餐/增值按类别聚合) + BundleVideoBalance int `json:"bundleVideoBalance"` // 套餐视频余额 + BundleImageBalance int `json:"bundleImageBalance"` // 套餐图文余额 + BundleDataAnalysisBalance int `json:"bundleDataAnalysisBalance"` // 套餐数据分析余额 + + IncreaseVideoBalance int `json:"increaseVideoBalance"` // 增值视频余额 + IncreaseImageBalance int `json:"increaseImageBalance"` // 增值图文余额 + IncreaseDataAnalysisBalance int `json:"increaseDataAnalysisBalance"` // 增值数据分析余额 +} + +// calculateBundleBalances 计算套餐类别下的三类余额(视频/图文/数据分析) +// 余额=对应类别总数-对应类别已使用数;再将非限制、限制非过期、限制会过期三类相加 +func calculateBundleBalances(tb *model.TaskBalance) (video int, image int, data int) { + // 视频套餐余额 + video = (tb.TaskBundleVideoNumber - tb.TaskBundleVideoConsumptionNumber) + + (tb.TaskBundleLimitVideoNumber - tb.TaskBundleLimitVideoConsumptionNumber) + + (tb.TaskBundleLimitVideoExpiredNumber - tb.TaskBundleLimitVideoExpiredConsumptionNumber) + + // 图文套餐余额 + image = (tb.TaskBundleImageNumber - tb.TaskBundleImageConsumptionNumber) + + (tb.TaskBundleLimitImageNumber - tb.TaskBundleLimitImageConsumptionNumber) + + (tb.TaskBundleLimitImageExpiredNumber - tb.TaskBundleLimitImageExpiredConsumptionNumber) + + // 数据分析套餐余额 + data = (tb.TaskBundleDataAnalysisNumber - tb.TaskBundleDataAnalysisConsumptionNumber) + + (tb.TaskBundleLimitDataAnalysisNumber - tb.TaskBundleLimitDataAnalysisConsumptionNumber) + + (tb.TaskBundleLimitDataAnalysisExpiredNumber - tb.TaskBundleLimitDataAnalysisExpiredConsumptionNumber) + + return +} + +// calculateIncreaseBalances 计算增值类别下的三类余额(视频/图文/数据分析) +// 余额=对应类别总数-对应类别已使用数;再将非限制、限制非过期、限制会过期三类相加 +func calculateIncreaseBalances(tb *model.TaskBalance) (video int, image int, data int) { + // 视频增值余额 + video = (tb.TaskIncreaseVideoNumber - tb.TaskIncreaseVideoConsumptionNumber) + + (tb.TaskIncreaseLimitVideoNumber - tb.TaskIncreaseLimitVideoConsumptionNumber) + + (tb.TaskIncreaseLimitVideoExpiredNumber - tb.TaskIncreaseLimitVideoExpiredConsumptionNumber) + + // 图文增值余额 + image = (tb.TaskIncreaseImageNumber - tb.TaskIncreaseImageConsumptionNumber) + + (tb.TaskIncreaseLimitImageNumber - tb.TaskIncreaseLimitImageConsumptionNumber) + + (tb.TaskIncreaseLimitImageExpiredNumber - tb.TaskIncreaseLimitImageExpiredConsumptionNumber) + + // 数据分析增值余额 + data = (tb.TaskIncreaseDataAnalysisNumber - tb.TaskIncreaseDataAnalysisConsumptionNumber) + + (tb.TaskIncreaseLimitDataAnalysisNumber - tb.TaskIncreaseLimitDataAnalysisConsumptionNumber) + + (tb.TaskIncreaseLimitDataAnalysisExpiredNumber - tb.TaskIncreaseLimitDataAnalysisExpiredConsumptionNumber) + + return +} + +// GetUserPendingAndTaskBalances 查询用户待发套餐/增值数量与任务余额(套餐/增值) +// 待发数量来自 task_management,余额来自 task_balance;均按视频/图文/数据分析三类返回 +// 待发聚合口径:将该类别下(套餐或增值)的非限制、限制非过期、限制会过期三类相加 +// 余额聚合口径:对应类别总数减已使用数后,再将三类相加 +func GetUserPendingAndTaskBalances(req *PendingAndBalanceRequest) (*PendingAndBalanceResponse, error) { + // 校验查询条件 + if req.SubNum == "" && req.TelNum == "" { + return nil, commonErr.ReturnError(nil, "查询参数错误", "艺人编号和手机号不能同时为空") + } + + // 查询任务管理表(待发) + var tm model.TaskManagement + tmQuery := app.ModuleClients.TaskBenchDB.Model(&model.TaskManagement{}) + if req.SubNum != "" { + tmQuery = tmQuery.Where("sub_num = ?", req.SubNum) + } else { + tmQuery = tmQuery.Where("tel_num = ?", req.TelNum) + } + // 若不存在,待发视为 0 + _ = tmQuery.Take(&tm).Error + + // 聚合待发(套餐与增值分开统计) + pendingBundleVideo := tm.PendingBundleVideoCount + tm.PendingBundleLimitVideoCount + tm.PendingBundleLimitVideoExpiredCount + pendingBundleImage := tm.PendingBundleImageCount + tm.PendingBundleLimitImageCount + tm.PendingBundleLimitImageExpiredCount + pendingBundleData := tm.PendingBundleDataAnalysisCount + tm.PendingBundleLimitDataAnalysisCount + tm.PendingBundleLimitDataAnalysisExpiredCount + + pendingIncreaseVideo := tm.PendingIncreaseVideoCount + tm.PendingIncreaseLimitVideoCount + tm.PendingIncreaseLimitVideoExpiredCount + pendingIncreaseImage := tm.PendingIncreaseImageCount + tm.PendingIncreaseLimitImageCount + tm.PendingIncreaseLimitImageExpiredCount + pendingIncreaseData := tm.PendingIncreaseDataAnalysisCount + tm.PendingIncreaseLimitDataAnalysisCount + tm.PendingIncreaseLimitDataAnalysisExpiredCount + + // 查询任务余额表(当前有效月份优先) + var tb model.TaskBalance + now := time.Now() + tbQuery := app.ModuleClients.TaskBenchDB.Model(&model.TaskBalance{}) + if req.SubNum != "" { + tbQuery = tbQuery.Where("sub_num = ?", req.SubNum) + } else { + tbQuery = tbQuery.Where("tel_num = ?", req.TelNum) + } + // 选择当前有效区间的记录,若无则回退到最近一条 + err := tbQuery.Where("start_at <= ? AND expired_at >= ?", now, now).Order("start_at DESC").Take(&tb).Error + if err != nil { + // 回退:取最近一条记录(可能没有有效期覆盖 now) + _ = tbQuery.Order("start_at DESC").Take(&tb).Error + } + + // 计算套餐与增值余额 + bundleVideo, bundleImage, bundleData := calculateBundleBalances(&tb) + increaseVideo, increaseImage, increaseData := calculateIncreaseBalances(&tb) + + resp := &PendingAndBalanceResponse{ + PendingBundleVideoCount: pendingBundleVideo, + PendingBundleImageCount: pendingBundleImage, + PendingBundleDataAnalysisCount: pendingBundleData, + + PendingIncreaseVideoCount: pendingIncreaseVideo, + PendingIncreaseImageCount: pendingIncreaseImage, + PendingIncreaseDataAnalysisCount: pendingIncreaseData, + + BundleVideoBalance: bundleVideo, + BundleImageBalance: bundleImage, + BundleDataAnalysisBalance: bundleData, + IncreaseVideoBalance: increaseVideo, + IncreaseImageBalance: increaseImage, + IncreaseDataAnalysisBalance: increaseData, + } + + return resp, nil +} + // GetPendingTaskList 查询待指派任务记录 // 根据套餐没有过期的艺人查询TaskManagement表中的记录,如果不存在则构建默认值 func GetPendingTaskList(req *TaskQueryRequest, validArtist []ValidArtistInfo) ([]*model.TaskManagement, int64, error) { @@ -204,17 +429,53 @@ func GetPendingTaskList(req *TaskQueryRequest, validArtist []ValidArtistInfo) ([ if !existingSubNums[subNum] { artist := artistMap[subNum] // 构建默认任务记录 + // 默认将剩余数量分配到“非限制-套餐权益”类别,其它类别置零 + remainingVideo := artist.VideoNumber - artist.VideoConsumptionNumber + remainingImage := artist.ImageNumber - artist.ImageConsumptionNumber + remainingData := artist.DataAnalysisNumber - artist.DataAnalysisConsumptionNumber + if remainingVideo < 0 { + remainingVideo = 0 + } + if remainingImage < 0 { + remainingImage = 0 + } + if remainingData < 0 { + remainingData = 0 + } + 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(), + SubNum: subNum, + TelNum: artist.UserPhoneNumber, + ArtistName: artist.UserName, + + // 视频 + PendingBundleVideoCount: remainingVideo, + PendingIncreaseVideoCount: 0, + PendingBundleLimitVideoCount: 0, + PendingIncreaseLimitVideoCount: 0, + PendingBundleLimitVideoExpiredCount: 0, + PendingIncreaseLimitVideoExpiredCount: 0, + + // 图片 + PendingBundleImageCount: remainingImage, + PendingIncreaseImageCount: 0, + PendingBundleLimitImageCount: 0, + PendingIncreaseLimitImageCount: 0, + PendingBundleLimitImageExpiredCount: 0, + PendingIncreaseLimitImageExpiredCount: 0, + + // 数据分析 + PendingBundleDataAnalysisCount: remainingData, + PendingIncreaseDataAnalysisCount: 0, + PendingBundleLimitDataAnalysisCount: 0, + PendingIncreaseLimitDataAnalysisCount: 0, + PendingBundleLimitDataAnalysisExpiredCount: 0, + PendingIncreaseLimitDataAnalysisExpiredCount: 0, + + ProgressCount: 0, + CompleteCount: 0, + CreatedAt: time.Now(), + UpdatedAt: time.Now(), } newTasksToCreate = append(newTasksToCreate, defaultTask) } @@ -248,11 +509,25 @@ func GetPendingTaskList(req *TaskQueryRequest, validArtist []ValidArtistInfo) ([ // 排序 if req.SortBy != "" && req.SortType != "" { - orderClause := fmt.Sprintf("%s %s", req.SortBy, req.SortType) + sortBy := req.SortBy + sortType := req.SortType + if sortType != "asc" && sortType != "desc" && sortType != "ASC" && sortType != "DESC" { + sortType = "DESC" + } + // 将常用聚合字段映射为详细字段总和表达式 + switch sortBy { + case "pending_video_count", "pendingVideoCount": + sortBy = "(pending_bundle_limit_video_expired_count + pending_bundle_limit_video_count + pending_increase_limit_video_expired_count + pending_increase_limit_video_count + pending_bundle_video_count + pending_increase_video_count)" + case "pending_post_count", "pendingPostCount": + sortBy = "(pending_bundle_limit_image_expired_count + pending_bundle_limit_image_count + pending_increase_limit_image_expired_count + pending_increase_limit_image_count + pending_bundle_image_count + pending_increase_image_count)" + case "pending_data_count", "pendingDataCount": + sortBy = "(pending_bundle_limit_data_analysis_expired_count + pending_bundle_limit_data_analysis_count + pending_increase_limit_data_analysis_expired_count + pending_increase_limit_data_analysis_count + pending_bundle_data_analysis_count + pending_increase_data_analysis_count)" + } + orderClause := fmt.Sprintf("%s %s", sortBy, sortType) query = query.Order(orderClause) } else { - // 默认按待发视频降序 - query = query.Order("pending_video_count DESC") + // 默认按待发视频总和降序 + query = query.Order("(pending_bundle_limit_video_expired_count + pending_bundle_limit_video_count + pending_increase_limit_video_expired_count + pending_increase_limit_video_count + pending_bundle_video_count + pending_increase_video_count) DESC") } // 分页 @@ -286,14 +561,35 @@ func AssignTask(req *TaskAssignRequest, progressTaskCount int, completeTaskCount 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(), + SubNum: req.SubNum, + TelNum: req.TelNum, + ArtistName: req.ArtistName, + // 待发视频 + PendingBundleVideoCount: 0, + PendingIncreaseVideoCount: 0, + PendingBundleLimitVideoCount: 0, + PendingIncreaseLimitVideoCount: 0, + PendingBundleLimitVideoExpiredCount: 0, + PendingIncreaseLimitVideoExpiredCount: 0, + // 待发图片 + PendingBundleImageCount: 0, + PendingIncreaseImageCount: 0, + PendingBundleLimitImageCount: 0, + PendingIncreaseLimitImageCount: 0, + PendingBundleLimitImageExpiredCount: 0, + PendingIncreaseLimitImageExpiredCount: 0, + // 待发数据分析 + PendingBundleDataAnalysisCount: 0, + PendingIncreaseDataAnalysisCount: 0, + PendingBundleLimitDataAnalysisCount: 0, + PendingIncreaseLimitDataAnalysisCount: 0, + PendingBundleLimitDataAnalysisExpiredCount: 0, + PendingIncreaseLimitDataAnalysisExpiredCount: 0, + // 其他字段 + ProgressCount: 0, + CompleteCount: 0, + CreatedAt: time.Now(), + UpdatedAt: time.Now(), } if err = tx.Create(&taskManagement).Error; err != nil { tx.Rollback() @@ -305,8 +601,8 @@ func AssignTask(req *TaskAssignRequest, progressTaskCount int, completeTaskCount } } - // 2. 检查待发数量是否大于0 - if taskManagement.PendingVideoCount <= 0 && taskManagement.PendingPostCount <= 0 && taskManagement.PendingDataCount <= 0 { + // 2. 检查待发数量是否大于0(聚合总和) + if aggregatePendingVideo(&taskManagement) <= 0 && aggregatePendingImage(&taskManagement) <= 0 && aggregatePendingData(&taskManagement) <= 0 { tx.Rollback() return commonErr.ReturnError(nil, "无可指派任务", "当前艺人待发视频数、图文数、数据数均为0,无法指派任务") } @@ -317,13 +613,13 @@ func AssignTask(req *TaskAssignRequest, progressTaskCount int, completeTaskCount return commonErr.ReturnError(nil, "指派数量不能为负数", "指派数量必须大于等于0") } - if req.AssignVideoCount > taskManagement.PendingVideoCount || - req.AssignPostCount > taskManagement.PendingPostCount || - req.AssignDataCount > taskManagement.PendingDataCount { + if req.AssignVideoCount > aggregatePendingVideo(&taskManagement) || + req.AssignPostCount > aggregatePendingImage(&taskManagement) || + req.AssignDataCount > aggregatePendingData(&taskManagement) { tx.Rollback() return commonErr.ReturnError(nil, "指派数量超出限制", fmt.Sprintf("指派数量不能超过待发数量。当前待发:视频%d,图文%d,数据%d", - taskManagement.PendingVideoCount, taskManagement.PendingPostCount, taskManagement.PendingDataCount)) + aggregatePendingVideo(&taskManagement), aggregatePendingImage(&taskManagement), aggregatePendingData(&taskManagement))) } if req.AssignVideoCount == 0 && req.AssignPostCount == 0 && req.AssignDataCount == 0 { @@ -331,16 +627,46 @@ func AssignTask(req *TaskAssignRequest, progressTaskCount int, completeTaskCount return commonErr.ReturnError(nil, "指派数量不能全为0", "至少需要指派一种类型的任务") } - // 4. 更新TaskManagement表 + // 4. 按优先级扣减详细待发数量 + if req.AssignVideoCount > 0 { + deductVideo(&taskManagement, req.AssignVideoCount) + } + if req.AssignPostCount > 0 { + deductImage(&taskManagement, req.AssignPostCount) + } + if req.AssignDataCount > 0 { + deductData(&taskManagement, req.AssignDataCount) + } + + // 汇总更新字段 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(), + // 视频 + "pending_bundle_limit_video_expired_count": taskManagement.PendingBundleLimitVideoExpiredCount, + "pending_bundle_limit_video_count": taskManagement.PendingBundleLimitVideoCount, + "pending_increase_limit_video_expired_count": taskManagement.PendingIncreaseLimitVideoExpiredCount, + "pending_increase_limit_video_count": taskManagement.PendingIncreaseLimitVideoCount, + "pending_bundle_video_count": taskManagement.PendingBundleVideoCount, + "pending_increase_video_count": taskManagement.PendingIncreaseVideoCount, + // 图片 + "pending_bundle_limit_image_expired_count": taskManagement.PendingBundleLimitImageExpiredCount, + "pending_bundle_limit_image_count": taskManagement.PendingBundleLimitImageCount, + "pending_increase_limit_image_expired_count": taskManagement.PendingIncreaseLimitImageExpiredCount, + "pending_increase_limit_image_count": taskManagement.PendingIncreaseLimitImageCount, + "pending_bundle_image_count": taskManagement.PendingBundleImageCount, + "pending_increase_image_count": taskManagement.PendingIncreaseImageCount, + // 数据分析 + "pending_bundle_limit_data_analysis_expired_count": taskManagement.PendingBundleLimitDataAnalysisExpiredCount, + "pending_bundle_limit_data_analysis_count": taskManagement.PendingBundleLimitDataAnalysisCount, + "pending_increase_limit_data_analysis_expired_count": taskManagement.PendingIncreaseLimitDataAnalysisExpiredCount, + "pending_increase_limit_data_analysis_count": taskManagement.PendingIncreaseLimitDataAnalysisCount, + "pending_bundle_data_analysis_count": taskManagement.PendingBundleDataAnalysisCount, + "pending_increase_data_analysis_count": taskManagement.PendingIncreaseDataAnalysisCount, + // 其他字段 + "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 { @@ -362,9 +688,9 @@ func AssignTask(req *TaskAssignRequest, progressTaskCount int, completeTaskCount OperatorTime: time.Now(), TaskAssignee: req.TaskAssignee, // 指派员工姓名 TaskAssigneeNum: req.TaskAssigneeNum, // 指派员工账号 - PendingVideoCount: taskManagement.PendingVideoCount, - PendingPostCount: taskManagement.PendingPostCount, - PendingDataCount: taskManagement.PendingDataCount, + PendingVideoCount: aggregatePendingVideo(&taskManagement), + PendingPostCount: aggregatePendingImage(&taskManagement), + PendingDataCount: aggregatePendingData(&taskManagement), AssignVideoCount: req.AssignVideoCount, AssignPostCount: req.AssignPostCount, AssignDataCount: req.AssignDataCount, @@ -400,7 +726,14 @@ func UpdatePendingCount(req *UpdatePendingCountRequest) error { // 1. 查询或创建TaskManagement记录 var taskManagement model.TaskManagement - err := tx.Where("sub_num = ? AND tel_num = ?", req.SubNum, req.TelNum).First(&taskManagement).Error + // 与查询余额保持一致:优先使用 sub_num,否则使用 tel_num + tmQuery := tx.Model(&model.TaskManagement{}) + if req.SubNum != "" { + tmQuery = tmQuery.Where("sub_num = ?", req.SubNum) + } else { + tmQuery = tmQuery.Where("tel_num = ?", req.TelNum) + } + err := tmQuery.First(&taskManagement).Error if err != nil { if err == gorm.ErrRecordNotFound { return commonErr.ReturnError(err, "无该艺人任务记录", "无该艺人任务记录") @@ -408,17 +741,355 @@ func UpdatePendingCount(req *UpdatePendingCountRequest) error { tx.Rollback() return commonErr.ReturnError(err, "查询任务记录失败", "查询任务记录失败: ") } + } + + // 2. 查询任务余额记录(当前有效月份优先,若无则回退到最近一条) + var taskBalance model.TaskBalance + now := time.Now() + tbQuery := tx.Model(&model.TaskBalance{}) + if req.SubNum != "" { + tbQuery = tbQuery.Where("sub_num = ?", req.SubNum) } 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 { + tbQuery = tbQuery.Where("tel_num = ?", req.TelNum) + } + tbErr := tbQuery.Where("start_at <= ? AND expired_at >= ?", now, now).Order("start_at DESC").Take(&taskBalance).Error + if tbErr != nil { + // 回退:取最近一条记录 + _ = tbQuery.Order("start_at DESC").Take(&taskBalance).Error + } + + // 若余额记录不存在,且本次需要“扣返余额”(目标小于当前)或“占用余额”(目标大于当前),直接报错 + // 说明:此处不创建余额记录,避免无源数据导致余额错账 + hasBalanceRecord := taskBalance.ID != 0 + + // 3. 计算当前聚合待发与目标值的差异(目标为绝对值,不是增减) + curVideo := aggregatePendingVideo(&taskManagement) + curImage := aggregatePendingImage(&taskManagement) + curData := aggregatePendingData(&taskManagement) + + diffVideo := req.PendingVideoCount - curVideo + diffImage := req.PendingPostCount - curImage + diffData := req.PendingDataCount - curData + + // 4. 若需要增加目标(diff>0),从艺人余额中按优先级占用并分配到待发分类 + // 优先级:受限>非受限;同类型:打包>增量;受限内:过期优先 + if diffVideo > 0 || diffImage > 0 || diffData > 0 { + if !hasBalanceRecord { tx.Rollback() - return commonErr.ReturnError(err, "更新任务记录失败", "更新任务记录失败: ") + return commonErr.ReturnError(nil, "无可用任务余额记录", "该艺人没有任务余额记录,无法占用余额用于增加待发") + } + + // 视频占用 + if diffVideo > 0 { + need := diffVideo + // 可用余额按分类拆分 + availBLE := taskBalance.TaskBundleLimitVideoExpiredNumber - taskBalance.TaskBundleLimitVideoExpiredConsumptionNumber + availILE := taskBalance.TaskIncreaseLimitVideoExpiredNumber - taskBalance.TaskIncreaseLimitVideoExpiredConsumptionNumber + availBL := taskBalance.TaskBundleLimitVideoNumber - taskBalance.TaskBundleLimitVideoConsumptionNumber + availIL := taskBalance.TaskIncreaseLimitVideoNumber - taskBalance.TaskIncreaseLimitVideoConsumptionNumber + availB := taskBalance.TaskBundleVideoNumber - taskBalance.TaskBundleVideoConsumptionNumber + availI := taskBalance.TaskIncreaseVideoNumber - taskBalance.TaskIncreaseVideoConsumptionNumber + + // 逐类占用并写入待发分类与消费数 + if need > 0 && availBLE > 0 { + take := minInt(need, availBLE) + taskManagement.PendingBundleLimitVideoExpiredCount += take + taskBalance.TaskBundleLimitVideoExpiredConsumptionNumber += take + need -= take + } + if need > 0 && availILE > 0 { + take := minInt(need, availILE) + taskManagement.PendingIncreaseLimitVideoExpiredCount += take + taskBalance.TaskIncreaseLimitVideoExpiredConsumptionNumber += take + need -= take + } + if need > 0 && availBL > 0 { + take := minInt(need, availBL) + taskManagement.PendingBundleLimitVideoCount += take + taskBalance.TaskBundleLimitVideoConsumptionNumber += take + need -= take + } + if need > 0 && availIL > 0 { + take := minInt(need, availIL) + taskManagement.PendingIncreaseLimitVideoCount += take + taskBalance.TaskIncreaseLimitVideoConsumptionNumber += take + need -= take + } + if need > 0 && availB > 0 { + take := minInt(need, availB) + taskManagement.PendingBundleVideoCount += take + taskBalance.TaskBundleVideoConsumptionNumber += take + need -= take + } + if need > 0 && availI > 0 { + take := minInt(need, availI) + taskManagement.PendingIncreaseVideoCount += take + taskBalance.TaskIncreaseVideoConsumptionNumber += take + need -= take + } + if need > 0 { + tx.Rollback() + return commonErr.ReturnError(nil, "视频任务余额不足", "可用余额不足以达到目标待发视频数量") + } + } + + // 图片占用 + if diffImage > 0 { + need := diffImage + availBLE := taskBalance.TaskBundleLimitImageExpiredNumber - taskBalance.TaskBundleLimitImageExpiredConsumptionNumber + availILE := taskBalance.TaskIncreaseLimitImageExpiredNumber - taskBalance.TaskIncreaseLimitImageExpiredConsumptionNumber + availBL := taskBalance.TaskBundleLimitImageNumber - taskBalance.TaskBundleLimitImageConsumptionNumber + availIL := taskBalance.TaskIncreaseLimitImageNumber - taskBalance.TaskIncreaseLimitImageConsumptionNumber + availB := taskBalance.TaskBundleImageNumber - taskBalance.TaskBundleImageConsumptionNumber + availI := taskBalance.TaskIncreaseImageNumber - taskBalance.TaskIncreaseImageConsumptionNumber + + if need > 0 && availBLE > 0 { + take := minInt(need, availBLE) + taskManagement.PendingBundleLimitImageExpiredCount += take + taskBalance.TaskBundleLimitImageExpiredConsumptionNumber += take + need -= take + } + if need > 0 && availILE > 0 { + take := minInt(need, availILE) + taskManagement.PendingIncreaseLimitImageExpiredCount += take + taskBalance.TaskIncreaseLimitImageExpiredConsumptionNumber += take + need -= take + } + if need > 0 && availBL > 0 { + take := minInt(need, availBL) + taskManagement.PendingBundleLimitImageCount += take + taskBalance.TaskBundleLimitImageConsumptionNumber += take + need -= take + } + if need > 0 && availIL > 0 { + take := minInt(need, availIL) + taskManagement.PendingIncreaseLimitImageCount += take + taskBalance.TaskIncreaseLimitImageConsumptionNumber += take + need -= take + } + if need > 0 && availB > 0 { + take := minInt(need, availB) + taskManagement.PendingBundleImageCount += take + taskBalance.TaskBundleImageConsumptionNumber += take + need -= take + } + if need > 0 && availI > 0 { + take := minInt(need, availI) + taskManagement.PendingIncreaseImageCount += take + taskBalance.TaskIncreaseImageConsumptionNumber += take + need -= take + } + if need > 0 { + tx.Rollback() + return commonErr.ReturnError(nil, "图文任务余额不足", "可用余额不足以达到目标待发图文数量") + } + } + + // 数据分析占用 + if diffData > 0 { + need := diffData + availBLE := taskBalance.TaskBundleLimitDataAnalysisExpiredNumber - taskBalance.TaskBundleLimitDataAnalysisExpiredConsumptionNumber + availILE := taskBalance.TaskIncreaseLimitDataAnalysisExpiredNumber - taskBalance.TaskIncreaseLimitDataAnalysisExpiredConsumptionNumber + availBL := taskBalance.TaskBundleLimitDataAnalysisNumber - taskBalance.TaskBundleLimitDataAnalysisConsumptionNumber + availIL := taskBalance.TaskIncreaseLimitDataAnalysisNumber - taskBalance.TaskIncreaseLimitDataAnalysisConsumptionNumber + availB := taskBalance.TaskBundleDataAnalysisNumber - taskBalance.TaskBundleDataAnalysisConsumptionNumber + availI := taskBalance.TaskIncreaseDataAnalysisNumber - taskBalance.TaskIncreaseDataAnalysisConsumptionNumber + + if need > 0 && availBLE > 0 { + take := minInt(need, availBLE) + taskManagement.PendingBundleLimitDataAnalysisExpiredCount += take + taskBalance.TaskBundleLimitDataAnalysisExpiredConsumptionNumber += take + need -= take + } + if need > 0 && availILE > 0 { + take := minInt(need, availILE) + taskManagement.PendingIncreaseLimitDataAnalysisExpiredCount += take + taskBalance.TaskIncreaseLimitDataAnalysisExpiredConsumptionNumber += take + need -= take + } + if need > 0 && availBL > 0 { + take := minInt(need, availBL) + taskManagement.PendingBundleLimitDataAnalysisCount += take + taskBalance.TaskBundleLimitDataAnalysisConsumptionNumber += take + need -= take + } + if need > 0 && availIL > 0 { + take := minInt(need, availIL) + taskManagement.PendingIncreaseLimitDataAnalysisCount += take + taskBalance.TaskIncreaseLimitDataAnalysisConsumptionNumber += take + need -= take + } + if need > 0 && availB > 0 { + take := minInt(need, availB) + taskManagement.PendingBundleDataAnalysisCount += take + taskBalance.TaskBundleDataAnalysisConsumptionNumber += take + need -= take + } + if need > 0 && availI > 0 { + take := minInt(need, availI) + taskManagement.PendingIncreaseDataAnalysisCount += take + taskBalance.TaskIncreaseDataAnalysisConsumptionNumber += take + need -= take + } + if need > 0 { + tx.Rollback() + return commonErr.ReturnError(nil, "数据分析任务余额不足", "可用余额不足以达到目标待发数据分析数量") + } + } + } + + // 5. 若需要减少目标(diff<0),先按优先级从待发分类扣减,并将扣减的数量按对应分类冲回余额(减少消费数) + if diffVideo < 0 || diffImage < 0 || diffData < 0 { + if !hasBalanceRecord { + tx.Rollback() + return commonErr.ReturnError(nil, "无可用任务余额记录", "该艺人没有任务余额记录,无法将多余待发冲回余额") + } + + // 视频冲回 + if diffVideo < 0 { + refund := -diffVideo + // 记录扣减前的各分类待发值 + prevBLE := taskManagement.PendingBundleLimitVideoExpiredCount + prevILE := taskManagement.PendingIncreaseLimitVideoExpiredCount + prevBL := taskManagement.PendingBundleLimitVideoCount + prevIL := taskManagement.PendingIncreaseLimitVideoCount + prevB := taskManagement.PendingBundleVideoCount + prevI := taskManagement.PendingIncreaseVideoCount + + deductVideo(&taskManagement, refund) + + // 计算各分类被扣减的数量,并减少对应消费数(不可小于0) + removedBLE := prevBLE - taskManagement.PendingBundleLimitVideoExpiredCount + removedILE := prevILE - taskManagement.PendingIncreaseLimitVideoExpiredCount + removedBL := prevBL - taskManagement.PendingBundleLimitVideoCount + removedIL := prevIL - taskManagement.PendingIncreaseLimitVideoCount + removedB := prevB - taskManagement.PendingBundleVideoCount + removedI := prevI - taskManagement.PendingIncreaseVideoCount + + taskBalance.TaskBundleLimitVideoExpiredConsumptionNumber = maxInt(0, taskBalance.TaskBundleLimitVideoExpiredConsumptionNumber-removedBLE) + taskBalance.TaskIncreaseLimitVideoExpiredConsumptionNumber = maxInt(0, taskBalance.TaskIncreaseLimitVideoExpiredConsumptionNumber-removedILE) + taskBalance.TaskBundleLimitVideoConsumptionNumber = maxInt(0, taskBalance.TaskBundleLimitVideoConsumptionNumber-removedBL) + taskBalance.TaskIncreaseLimitVideoConsumptionNumber = maxInt(0, taskBalance.TaskIncreaseLimitVideoConsumptionNumber-removedIL) + taskBalance.TaskBundleVideoConsumptionNumber = maxInt(0, taskBalance.TaskBundleVideoConsumptionNumber-removedB) + taskBalance.TaskIncreaseVideoConsumptionNumber = maxInt(0, taskBalance.TaskIncreaseVideoConsumptionNumber-removedI) + } + + // 图片冲回 + if diffImage < 0 { + refund := -diffImage + prevBLE := taskManagement.PendingBundleLimitImageExpiredCount + prevILE := taskManagement.PendingIncreaseLimitImageExpiredCount + prevBL := taskManagement.PendingBundleLimitImageCount + prevIL := taskManagement.PendingIncreaseLimitImageCount + prevB := taskManagement.PendingBundleImageCount + prevI := taskManagement.PendingIncreaseImageCount + + deductImage(&taskManagement, refund) + + removedBLE := prevBLE - taskManagement.PendingBundleLimitImageExpiredCount + removedILE := prevILE - taskManagement.PendingIncreaseLimitImageExpiredCount + removedBL := prevBL - taskManagement.PendingBundleLimitImageCount + removedIL := prevIL - taskManagement.PendingIncreaseLimitImageCount + removedB := prevB - taskManagement.PendingBundleImageCount + removedI := prevI - taskManagement.PendingIncreaseImageCount + + taskBalance.TaskBundleLimitImageExpiredConsumptionNumber = maxInt(0, taskBalance.TaskBundleLimitImageExpiredConsumptionNumber-removedBLE) + taskBalance.TaskIncreaseLimitImageExpiredConsumptionNumber = maxInt(0, taskBalance.TaskIncreaseLimitImageExpiredConsumptionNumber-removedILE) + taskBalance.TaskBundleLimitImageConsumptionNumber = maxInt(0, taskBalance.TaskBundleLimitImageConsumptionNumber-removedBL) + taskBalance.TaskIncreaseLimitImageConsumptionNumber = maxInt(0, taskBalance.TaskIncreaseLimitImageConsumptionNumber-removedIL) + taskBalance.TaskBundleImageConsumptionNumber = maxInt(0, taskBalance.TaskBundleImageConsumptionNumber-removedB) + taskBalance.TaskIncreaseImageConsumptionNumber = maxInt(0, taskBalance.TaskIncreaseImageConsumptionNumber-removedI) + } + + // 数据分析冲回 + if diffData < 0 { + refund := -diffData + prevBLE := taskManagement.PendingBundleLimitDataAnalysisExpiredCount + prevILE := taskManagement.PendingIncreaseLimitDataAnalysisExpiredCount + prevBL := taskManagement.PendingBundleLimitDataAnalysisCount + prevIL := taskManagement.PendingIncreaseLimitDataAnalysisCount + prevB := taskManagement.PendingBundleDataAnalysisCount + prevI := taskManagement.PendingIncreaseDataAnalysisCount + + deductData(&taskManagement, refund) + + removedBLE := prevBLE - taskManagement.PendingBundleLimitDataAnalysisExpiredCount + removedILE := prevILE - taskManagement.PendingIncreaseLimitDataAnalysisExpiredCount + removedBL := prevBL - taskManagement.PendingBundleLimitDataAnalysisCount + removedIL := prevIL - taskManagement.PendingIncreaseLimitDataAnalysisCount + removedB := prevB - taskManagement.PendingBundleDataAnalysisCount + removedI := prevI - taskManagement.PendingIncreaseDataAnalysisCount + + taskBalance.TaskBundleLimitDataAnalysisExpiredConsumptionNumber = maxInt(0, taskBalance.TaskBundleLimitDataAnalysisExpiredConsumptionNumber-removedBLE) + taskBalance.TaskIncreaseLimitDataAnalysisExpiredConsumptionNumber = maxInt(0, taskBalance.TaskIncreaseLimitDataAnalysisExpiredConsumptionNumber-removedILE) + taskBalance.TaskBundleLimitDataAnalysisConsumptionNumber = maxInt(0, taskBalance.TaskBundleLimitDataAnalysisConsumptionNumber-removedBL) + taskBalance.TaskIncreaseLimitDataAnalysisConsumptionNumber = maxInt(0, taskBalance.TaskIncreaseLimitDataAnalysisConsumptionNumber-removedIL) + taskBalance.TaskBundleDataAnalysisConsumptionNumber = maxInt(0, taskBalance.TaskBundleDataAnalysisConsumptionNumber-removedB) + taskBalance.TaskIncreaseDataAnalysisConsumptionNumber = maxInt(0, taskBalance.TaskIncreaseDataAnalysisConsumptionNumber-removedI) + } + } + + // 6. 更新TaskManagement表 + updateData := map[string]interface{}{ + // 视频 + "pending_bundle_limit_video_expired_count": taskManagement.PendingBundleLimitVideoExpiredCount, + "pending_bundle_limit_video_count": taskManagement.PendingBundleLimitVideoCount, + "pending_increase_limit_video_expired_count": taskManagement.PendingIncreaseLimitVideoExpiredCount, + "pending_increase_limit_video_count": taskManagement.PendingIncreaseLimitVideoCount, + "pending_bundle_video_count": taskManagement.PendingBundleVideoCount, + "pending_increase_video_count": taskManagement.PendingIncreaseVideoCount, + // 图片 + "pending_bundle_limit_image_expired_count": taskManagement.PendingBundleLimitImageExpiredCount, + "pending_bundle_limit_image_count": taskManagement.PendingBundleLimitImageCount, + "pending_increase_limit_image_expired_count": taskManagement.PendingIncreaseLimitImageExpiredCount, + "pending_increase_limit_image_count": taskManagement.PendingIncreaseLimitImageCount, + "pending_bundle_image_count": taskManagement.PendingBundleImageCount, + "pending_increase_image_count": taskManagement.PendingIncreaseImageCount, + // 数据分析 + "pending_bundle_limit_data_analysis_expired_count": taskManagement.PendingBundleLimitDataAnalysisExpiredCount, + "pending_bundle_limit_data_analysis_count": taskManagement.PendingBundleLimitDataAnalysisCount, + "pending_increase_limit_data_analysis_expired_count": taskManagement.PendingIncreaseLimitDataAnalysisExpiredCount, + "pending_increase_limit_data_analysis_count": taskManagement.PendingIncreaseLimitDataAnalysisCount, + "pending_bundle_data_analysis_count": taskManagement.PendingBundleDataAnalysisCount, + "pending_increase_data_analysis_count": taskManagement.PendingIncreaseDataAnalysisCount, + // 通用 + "updated_at": time.Now(), + } + if err = tx.Model(&taskManagement).Updates(updateData).Error; err != nil { + tx.Rollback() + return commonErr.ReturnError(err, "更新任务记录失败", "更新任务记录失败: ") + } + + // 7. 更新TaskBalance(消费数发生变化时) + if hasBalanceRecord { + updateBal := map[string]interface{}{ + // 视频消费数 + "task_bundle_limit_video_expired_consumption_number": taskBalance.TaskBundleLimitVideoExpiredConsumptionNumber, + "task_increase_limit_video_expired_consumption_number": taskBalance.TaskIncreaseLimitVideoExpiredConsumptionNumber, + "task_bundle_limit_video_consumption_number": taskBalance.TaskBundleLimitVideoConsumptionNumber, + "task_increase_limit_video_consumption_number": taskBalance.TaskIncreaseLimitVideoConsumptionNumber, + "task_bundle_video_consumption_number": taskBalance.TaskBundleVideoConsumptionNumber, + "task_increase_video_consumption_number": taskBalance.TaskIncreaseVideoConsumptionNumber, + // 图片消费数 + "task_bundle_limit_image_expired_consumption_number": taskBalance.TaskBundleLimitImageExpiredConsumptionNumber, + "task_increase_limit_image_expired_consumption_number": taskBalance.TaskIncreaseLimitImageExpiredConsumptionNumber, + "task_bundle_limit_image_consumption_number": taskBalance.TaskBundleLimitImageConsumptionNumber, + "task_increase_limit_image_consumption_number": taskBalance.TaskIncreaseLimitImageConsumptionNumber, + "task_bundle_image_consumption_number": taskBalance.TaskBundleImageConsumptionNumber, + "task_increase_image_consumption_number": taskBalance.TaskIncreaseImageConsumptionNumber, + // 数据分析消费数 + "task_bundle_limit_data_analysis_expired_consumption_number": taskBalance.TaskBundleLimitDataAnalysisExpiredConsumptionNumber, + "task_increase_limit_data_analysis_expired_consumption_number": taskBalance.TaskIncreaseLimitDataAnalysisExpiredConsumptionNumber, + "task_bundle_limit_data_analysis_consumption_number": taskBalance.TaskBundleLimitDataAnalysisConsumptionNumber, + "task_increase_limit_data_analysis_consumption_number": taskBalance.TaskIncreaseLimitDataAnalysisConsumptionNumber, + "task_bundle_data_analysis_consumption_number": taskBalance.TaskBundleDataAnalysisConsumptionNumber, + "task_increase_data_analysis_consumption_number": taskBalance.TaskIncreaseDataAnalysisConsumptionNumber, + // 通用 + "updated_at": time.Now(), + } + if err = tx.Model(&taskBalance).Updates(updateBal).Error; err != nil { + tx.Rollback() + return commonErr.ReturnError(err, "更新任务余额失败", "更新任务余额失败: ") } } @@ -430,6 +1101,22 @@ func UpdatePendingCount(req *UpdatePendingCountRequest) error { return nil } +// minInt 返回两个整数的较小值 +func minInt(a, b int) int { + if a < b { + return a + } + return b +} + +// maxInt 返回两个整数的较大值 +func maxInt(a, b int) int { + if a > b { + return a + } + return b +} + // GetRecentAssignRecords 查询最近被指派记录 // 查询操作类型为"指派"的最近n条不同员工的记录 func GetRecentAssignRecords(limit int) ([]*model.TaskAssignRecords, error) { @@ -752,9 +1439,16 @@ func GetValidArtistList() ([]ValidArtistInfo, error) { 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`). + bor.status, bor.uuid as order_uuid, + (bb.bundle_account_number + bb.increase_account_number + bb.manual_account_number) as account_number, + (bb.bundle_account_consumption_number + bb.increase_account_consumption_number + bb.manual_account_consumption_number) as account_consumption_number, + (bb.bundle_video_number + bb.increase_video_number) as video_number, + (bb.bundle_video_consumption_number + bb.increase_video_consumption_number) as video_consumption_number, + (bb.bundle_image_number + bb.increase_image_number + bb.manual_image_number) as image_number, + (bb.bundle_image_consumption_number + bb.increase_image_consumption_number + bb.manual_image_consumption_number) as image_consumption_number, + (bb.bundle_data_analysis_number + bb.increase_data_analysis_number + bb.manual_data_analysis_number) as data_analysis_number, + (bb.bundle_data_analysis_consumption_number + bb.increase_data_analysis_consumption_number + bb.manual_data_analysis_consumption_number) as 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"). @@ -866,13 +1560,13 @@ func GetArtistBundleBalance(req *ArtistBundleBalanceRequest) (*ArtistBundleBalan // 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"` // 如果记录不存在是否创建 + 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 调整待发数量(增加或减少) @@ -892,29 +1586,53 @@ func AdjustPendingCount(req *AdjustPendingCountRequest) error { if err != nil { if err == gorm.ErrRecordNotFound { if req.CreateIfNotExists { - // 创建新记录 + // 创建新记录,正数增加分配到“非限制-套餐权益”,负数忽略(置0) + video := req.AdjustVideoCount + post := req.AdjustPostCount + data := req.AdjustDataCount + if video < 0 { + video = 0 + } + if post < 0 { + post = 0 + } + if data < 0 { + data = 0 + } + 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 + SubNum: req.SubNum, + TelNum: req.TelNum, + ArtistName: req.ArtistName, + + // 视频 + PendingBundleVideoCount: video, + PendingIncreaseVideoCount: 0, + PendingBundleLimitVideoCount: 0, + PendingIncreaseLimitVideoCount: 0, + PendingBundleLimitVideoExpiredCount: 0, + PendingIncreaseLimitVideoExpiredCount: 0, + // 图片 + PendingBundleImageCount: post, + PendingIncreaseImageCount: 0, + PendingBundleLimitImageCount: 0, + PendingIncreaseLimitImageCount: 0, + PendingBundleLimitImageExpiredCount: 0, + PendingIncreaseLimitImageExpiredCount: 0, + // 数据分析 + PendingBundleDataAnalysisCount: data, + PendingIncreaseDataAnalysisCount: 0, + PendingBundleLimitDataAnalysisCount: 0, + PendingIncreaseLimitDataAnalysisCount: 0, + PendingBundleLimitDataAnalysisExpiredCount: 0, + PendingIncreaseLimitDataAnalysisExpiredCount: 0, + + ProgressCount: 0, + CompleteCount: 0, + CreatedAt: time.Now(), + UpdatedAt: time.Now(), } + if err = tx.Create(&taskManagement).Error; err != nil { tx.Rollback() return commonErr.ReturnError(err, "创建任务记录失败", "创建任务记录失败: ") @@ -928,28 +1646,50 @@ func AdjustPendingCount(req *AdjustPendingCountRequest) error { return commonErr.ReturnError(err, "查询任务记录失败", "查询任务记录失败: ") } } else { - // 2. 计算调整后的数量 - newVideoCount := taskManagement.PendingVideoCount + req.AdjustVideoCount - newPostCount := taskManagement.PendingPostCount + req.AdjustPostCount - newDataCount := taskManagement.PendingDataCount + req.AdjustDataCount + // 2. 计算调整:正数增加分配到“非限制-套餐权益”;负数按优先级扣减 + if req.AdjustVideoCount > 0 { + taskManagement.PendingBundleVideoCount += req.AdjustVideoCount + } else if req.AdjustVideoCount < 0 { + deductVideo(&taskManagement, -req.AdjustVideoCount) + } - // 3. 确保调整后的数量不为负数 - if newVideoCount < 0 { - newVideoCount = 0 + if req.AdjustPostCount > 0 { + taskManagement.PendingBundleImageCount += req.AdjustPostCount + } else if req.AdjustPostCount < 0 { + deductImage(&taskManagement, -req.AdjustPostCount) } - if newPostCount < 0 { - newPostCount = 0 - } - if newDataCount < 0 { - newDataCount = 0 + + if req.AdjustDataCount > 0 { + taskManagement.PendingBundleDataAnalysisCount += req.AdjustDataCount + } else if req.AdjustDataCount < 0 { + deductData(&taskManagement, -req.AdjustDataCount) } // 4. 更新TaskManagement表 updateData := map[string]interface{}{ - "pending_video_count": newVideoCount, - "pending_post_count": newPostCount, - "pending_data_count": newDataCount, - "updated_at": time.Now(), + // 视频 + "pending_bundle_limit_video_expired_count": taskManagement.PendingBundleLimitVideoExpiredCount, + "pending_bundle_limit_video_count": taskManagement.PendingBundleLimitVideoCount, + "pending_increase_limit_video_expired_count": taskManagement.PendingIncreaseLimitVideoExpiredCount, + "pending_increase_limit_video_count": taskManagement.PendingIncreaseLimitVideoCount, + "pending_bundle_video_count": taskManagement.PendingBundleVideoCount, + "pending_increase_video_count": taskManagement.PendingIncreaseVideoCount, + // 图片 + "pending_bundle_limit_image_expired_count": taskManagement.PendingBundleLimitImageExpiredCount, + "pending_bundle_limit_image_count": taskManagement.PendingBundleLimitImageCount, + "pending_increase_limit_image_expired_count": taskManagement.PendingIncreaseLimitImageExpiredCount, + "pending_increase_limit_image_count": taskManagement.PendingIncreaseLimitImageCount, + "pending_bundle_image_count": taskManagement.PendingBundleImageCount, + "pending_increase_image_count": taskManagement.PendingIncreaseImageCount, + // 数据分析 + "pending_bundle_limit_data_analysis_expired_count": taskManagement.PendingBundleLimitDataAnalysisExpiredCount, + "pending_bundle_limit_data_analysis_count": taskManagement.PendingBundleLimitDataAnalysisCount, + "pending_increase_limit_data_analysis_expired_count": taskManagement.PendingIncreaseLimitDataAnalysisExpiredCount, + "pending_increase_limit_data_analysis_count": taskManagement.PendingIncreaseLimitDataAnalysisCount, + "pending_bundle_data_analysis_count": taskManagement.PendingBundleDataAnalysisCount, + "pending_increase_data_analysis_count": taskManagement.PendingIncreaseDataAnalysisCount, + // 通用 + "updated_at": time.Now(), } if err = tx.Model(&taskManagement).Updates(updateData).Error; err != nil { diff --git a/internal/logic/taskLogic.go b/internal/logic/taskLogic.go index 1773251..31d7e26 100644 --- a/internal/logic/taskLogic.go +++ b/internal/logic/taskLogic.go @@ -1,6 +1,7 @@ package logic import ( + "fmt" "micro-bundle/internal/dao" commonErr "micro-bundle/pkg/err" ) @@ -77,6 +78,11 @@ func GetPendingTaskList(req *dao.TaskQueryRequest) ([]*dao.TaskQueryResponse, in // 3. 转换为响应结构体 var recordResponse []*dao.TaskQueryResponse for _, record := range record { + // 计算聚合的待发数量:视频、图文、数据分析 + videoTotal := record.PendingBundleLimitVideoExpiredCount + record.PendingBundleLimitVideoCount + record.PendingIncreaseLimitVideoExpiredCount + record.PendingIncreaseLimitVideoCount + record.PendingBundleVideoCount + record.PendingIncreaseVideoCount + imageTotal := record.PendingBundleLimitImageExpiredCount + record.PendingBundleLimitImageCount + record.PendingIncreaseLimitImageExpiredCount + record.PendingIncreaseLimitImageCount + record.PendingBundleImageCount + record.PendingIncreaseImageCount + dataTotal := record.PendingBundleLimitDataAnalysisExpiredCount + record.PendingBundleLimitDataAnalysisCount + record.PendingIncreaseLimitDataAnalysisExpiredCount + record.PendingIncreaseLimitDataAnalysisCount + record.PendingBundleDataAnalysisCount + record.PendingIncreaseDataAnalysisCount + // 根据 SubNum 和 TelNum 查询对应的员工正在进行中的任务和已完成任务数量 progressTaskCount, completeTaskCount, err := dao.GetTaskAssigneeInfo(record.TaskAssigneeNum) if err != nil { @@ -85,9 +91,9 @@ func GetPendingTaskList(req *dao.TaskQueryRequest) ([]*dao.TaskQueryResponse, in TelNum: record.TelNum, ArtistName: record.ArtistName, TaskAssigneeNum: record.TaskAssigneeNum, - PendingPostCount: record.PendingPostCount, - PendingVideoCount: record.PendingVideoCount, - PendingDataCount: record.PendingDataCount, + PendingPostCount: imageTotal, + PendingVideoCount: videoTotal, + PendingDataCount: dataTotal, ProgressTaskCount: 0, CompleteTaskCount: 0, LastTaskAssignee: record.LastTaskAssignee, @@ -98,9 +104,9 @@ func GetPendingTaskList(req *dao.TaskQueryRequest) ([]*dao.TaskQueryResponse, in TelNum: record.TelNum, ArtistName: record.ArtistName, TaskAssigneeNum: record.TaskAssigneeNum, - PendingPostCount: record.PendingPostCount, - PendingVideoCount: record.PendingVideoCount, - PendingDataCount: record.PendingDataCount, + PendingPostCount: imageTotal, + PendingVideoCount: videoTotal, + PendingDataCount: dataTotal, ProgressTaskCount: progressTaskCount, CompleteTaskCount: completeTaskCount, LastTaskAssignee: record.LastTaskAssignee, @@ -154,7 +160,46 @@ func UpdatePendingCount(req *dao.UpdatePendingCountRequest) error { return commonErr.ReturnError(nil, "艺人套餐已过期", "该艺人没有有效的套餐,无法修改待发数量") } - // todo 需要调用套餐的接口,判断艺人是否有那么数量可以修改 + // 查询艺人当前任务余额与待发汇总,校验待发数量和余额的总和是否足够 + resp, err := dao.GetUserPendingAndTaskBalances(&dao.PendingAndBalanceRequest{ + SubNum: req.SubNum, + TelNum: req.TelNum, + }) + if err != nil { + return commonErr.ReturnError(err, "查询艺人任务余额失败", "查询艺人任务余额失败: ") + } + + // 计算当前待发数量(聚合所有类型) + curVideo := resp.PendingBundleVideoCount + resp.PendingIncreaseVideoCount + curImage := resp.PendingBundleImageCount + resp.PendingIncreaseImageCount + curData := resp.PendingBundleDataAnalysisCount + resp.PendingIncreaseDataAnalysisCount + + // 计算可用余额(套餐 + 增值) + availVideo := resp.BundleVideoBalance + resp.IncreaseVideoBalance + availImage := resp.BundleImageBalance + resp.IncreaseImageBalance + availData := resp.BundleDataAnalysisBalance + resp.IncreaseDataAnalysisBalance + + // 校验:当前待发数量 + 艺人余额 >= 目标数量 + // 这确保了可以优先扣减待发数量,不足时再扣减余额 + totalAvailVideo := curVideo + availVideo + totalAvailImage := curImage + availImage + totalAvailData := curData + availData + + if req.PendingVideoCount > totalAvailVideo { + return commonErr.ReturnError(nil, "视频任务数量不足", + fmt.Sprintf("目标待发视频数量(%d)超出当前待发数量(%d)和可用余额(%d)的总和(%d)", + req.PendingVideoCount, curVideo, availVideo, totalAvailVideo)) + } + if req.PendingPostCount > totalAvailImage { + return commonErr.ReturnError(nil, "图文任务数量不足", + fmt.Sprintf("目标待发图文数量(%d)超出当前待发数量(%d)和可用余额(%d)的总和(%d)", + req.PendingPostCount, curImage, availImage, totalAvailImage)) + } + if req.PendingDataCount > totalAvailData { + return commonErr.ReturnError(nil, "数据分析任务数量不足", + fmt.Sprintf("目标待发数据分析数量(%d)超出当前待发数量(%d)和可用余额(%d)的总和(%d)", + req.PendingDataCount, curData, availData, totalAvailData)) + } // 2. 调用DAO层更新待发数量 return dao.UpdatePendingCount(req) @@ -212,11 +257,11 @@ func GetEmployeeAssignedTasks(req *dao.EmployeeTaskQueryRequest) ([]*dao.TaskAss // CompleteTaskManually 员工手动点击完成任务 func CompleteTaskManually(assignRecordsUUID string, taskAssigneeNum string) error { - // 第一步,批量更新记录被指派的员工为taskAssigneeNum的待完成任务数量和已经完成任务的数量 - err := dao.UpdateTaskRecordsByAssigneeNum(taskAssigneeNum) - if err != nil { - return err - } + // // 第一步,批量更新记录被指派的员工为taskAssigneeNum的待完成任务数量和已经完成任务的数量 + // err := dao.UpdateTaskRecordsByAssigneeNum(taskAssigneeNum) + // if err != nil { + // return err + // } return dao.CompleteTaskManually(assignRecordsUUID) } @@ -225,55 +270,6 @@ 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) @@ -308,7 +304,14 @@ func GetTaskAssignRecordsList(req *dao.TaskAssignRecordsQueryRequest) ([]*dao.Ta return recordResponse, total, nil } -// GetArtistBundleBalance 查询艺人套餐剩余数量 -func GetArtistBundleBalance(req *dao.ArtistBundleBalanceRequest) (*dao.ArtistBundleBalanceResponse, error) { - return dao.GetArtistBundleBalance(req) +// // GetArtistBundleBalance 查询艺人套餐剩余数量 +// func GetArtistBundleBalance(req *dao.ArtistBundleBalanceRequest) (*dao.ArtistBundleBalanceResponse, error) { +// return dao.GetArtistBundleBalance(req) +// } + +// GetPendingAndTaskBalances 查询艺人当前的待发数量与任务余额(区分套餐/增值) +// 根据艺人的编号 SubNum 或手机号 TelNum 进行查询,优先使用编号 +// 返回的数据会区分为“套餐类型”和“增值类型”两大类,涵盖视频/图文/数据分析三种任务 +func GetPendingAndTaskBalances(req *dao.PendingAndBalanceRequest) (*dao.PendingAndBalanceResponse, error) { + return dao.GetUserPendingAndTaskBalances(req) } diff --git a/internal/model/task.go b/internal/model/task.go index 0e17ae7..6c1fc7b 100644 --- a/internal/model/task.go +++ b/internal/model/task.go @@ -7,20 +7,42 @@ import ( ) 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"` + 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"` + + // ===== 待发视频类任务 ===== + PendingBundleVideoCount int `gorm:"column:pending_bundle_video_count;comment:待发非限制类型套餐权益视频数量" json:"pendingBundleVideoCount"` + PendingIncreaseVideoCount int `gorm:"column:pending_increase_video_count;comment:待发非限制类型增值权益视频数量" json:"pendingIncreaseVideoCount"` + PendingBundleLimitVideoCount int `gorm:"column:pending_bundle_limit_video_count;comment:待发套餐权益限制类型非过期视频数量" json:"pendingBundleLimitVideoCount"` + PendingIncreaseLimitVideoCount int `gorm:"column:pending_increase_limit_video_count;comment:待发增值权益限制类型非过期视频数量" json:"pendingIncreaseLimitVideoCount"` + PendingBundleLimitVideoExpiredCount int `gorm:"column:pending_bundle_limit_video_expired_count;comment:待发套餐权益限制类型会过期视频数量" json:"pendingBundleLimitVideoExpiredCount"` + PendingIncreaseLimitVideoExpiredCount int `gorm:"column:pending_increase_limit_video_expired_count;comment:待发增值权益限制类型会过期视频数量" json:"pendingIncreaseLimitVideoExpiredCount"` + + // ===== 待发图片类任务 ===== + PendingBundleImageCount int `gorm:"column:pending_bundle_image_count;comment:待发非限制类型套餐权益图片数量" json:"pendingBundleImageCount"` + PendingIncreaseImageCount int `gorm:"column:pending_increase_image_count;comment:待发非限制类型增值权益图片数量" json:"pendingIncreaseImageCount"` + PendingBundleLimitImageCount int `gorm:"column:pending_bundle_limit_image_count;comment:待发套餐权益限制类型非过期图片数量" json:"pendingBundleLimitImageCount"` + PendingIncreaseLimitImageCount int `gorm:"column:pending_increase_limit_image_count;comment:待发增值权益限制类型非过期图片数量" json:"pendingIncreaseLimitImageCount"` + PendingBundleLimitImageExpiredCount int `gorm:"column:pending_bundle_limit_image_expired_count;comment:待发套餐权益限制类型会过期图片数量" json:"pendingBundleLimitImageExpiredCount"` + PendingIncreaseLimitImageExpiredCount int `gorm:"column:pending_increase_limit_image_expired_count;comment:待发增值权益限制类型会过期图片数量" json:"pendingIncreaseLimitImageExpiredCount"` + + // ===== 待发数据分析类任务 ===== + PendingBundleDataAnalysisCount int `gorm:"column:pending_bundle_data_analysis_count;comment:待发非限制类型套餐权益数据分析数量" json:"pendingBundleDataAnalysisCount"` + PendingIncreaseDataAnalysisCount int `gorm:"column:pending_increase_data_analysis_count;comment:待发非限制类型增值权益数据分析数量" json:"pendingIncreaseDataAnalysisCount"` + PendingBundleLimitDataAnalysisCount int `gorm:"column:pending_bundle_limit_data_analysis_count;comment:待发套餐权益限制类型非过期数据分析数量" json:"pendingBundleLimitDataAnalysisCount"` + PendingIncreaseLimitDataAnalysisCount int `gorm:"column:pending_increase_limit_data_analysis_count;comment:待发增值权益限制类型非过期数据分析数量" json:"pendingIncreaseLimitDataAnalysisCount"` + PendingBundleLimitDataAnalysisExpiredCount int `gorm:"column:pending_bundle_limit_data_analysis_expired_count;comment:待发套餐权益限制类型会过期数据分析数量" json:"pendingBundleLimitDataAnalysisExpiredCount"` + PendingIncreaseLimitDataAnalysisExpiredCount int `gorm:"column:pending_increase_limit_data_analysis_expired_count;comment:待发增值权益限制类型会过期数据分析数量" json:"pendingIncreaseLimitDataAnalysisExpiredCount"` + + 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 { @@ -60,3 +82,131 @@ type TaskAssignRecords struct { func (t *TaskAssignRecords) TableName() string { return "task_assign_records" } + +// 任务余额表 +type TaskBalance struct { + ID int64 `gorm:"primarykey"` + SubNum string `gorm:"column:sub_num;comment:用户编号;index:idx_task_sub_num;not null" json:"subNum"` + TelNum string `gorm:"column:tel_num;comment:手机号;index:idx_task_tel_num;not null" json:"telNum"` + Month string `gorm:"column:month;type:varchar(32);comment:月份;index:idx_task_month;not null" json:"month"` + ExpiredAt time.Time `gorm:"column:expired_at;type:datetime;comment:任务过期时间" json:"expiredAt"` + StartAt time.Time `gorm:"column:start_at;type:datetime;comment:任务开始时间" json:"startAt"` + + // ===== 任务视频类 ===== + TaskBundleVideoNumber int `gorm:"column:task_bundle_video_number;not null;comment:任务非限制类型套餐权益视频总数" json:"taskBundleVideoNumber"` + TaskIncreaseVideoNumber int `gorm:"column:task_increase_video_number;not null;comment:任务非限制类型增值权益视频总数" json:"taskIncreaseVideoNumber"` + TaskBundleLimitVideoNumber int `gorm:"column:task_bundle_limit_video_number;not null;comment:任务套餐权益限制类型非过期总数" json:"taskBundleLimitVideoNumber"` + TaskIncreaseLimitVideoNumber int `gorm:"column:task_increase_limit_video_number;not null;comment:任务增值权益限制类型非过期总数" json:"taskIncreaseLimitVideoNumber"` + TaskBundleLimitVideoExpiredNumber int `gorm:"column:task_bundle_limit_video_expired_number;not null;comment:任务套餐权益限制类型会过期总数" json:"taskBundleLimitVideoExpiredNumber"` + TaskIncreaseLimitVideoExpiredNumber int `gorm:"column:task_increase_limit_video_expired_number;not null;comment:任务增值权益限制类型会过期总数" json:"taskIncreaseLimitVideoExpiredNumber"` + TaskMonthlyInvalidBundleVideoNumber int `gorm:"column:task_monthly_invalid_bundle_video_number;not null;comment:任务当月失效的套餐权益视频总数" json:"taskMonthlyInvalidBundleVideoNumber"` + TaskInvalidBundleVideoNumber int `gorm:"column:task_invalid_bundle_video_number;not null;comment:任务历史失效的套餐权益视频总数" json:"taskInvalidBundleVideoNumber"` + TaskMonthlyInvalidIncreaseVideoNumber int `gorm:"column:task_monthly_invalid_increase_video_number;not null;comment:任务当月失效的增值权益视频总数" json:"taskMonthlyInvalidIncreaseVideoNumber"` + TaskInvalidIncreaseVideoNumber int `gorm:"column:task_invalid_increase_video_number;not null;comment:任务历史失效的增值权益视频总数" json:"taskInvalidIncreaseVideoNumber"` + TaskBundleVideoConsumptionNumber int `gorm:"column:task_bundle_video_consumption_number;not null;comment:任务非限制类型套餐权益视频使用数" json:"taskBundleVideoConsumptionNumber"` + TaskIncreaseVideoConsumptionNumber int `gorm:"column:task_increase_video_consumption_number;not null;comment:任务非限制类型增值权益视频使用数" json:"taskIncreaseVideoConsumptionNumber"` + TaskBundleLimitVideoConsumptionNumber int `gorm:"column:task_bundle_limit_video_consumption_number;not null;comment:任务套餐权益限制类型非过期使用数" json:"taskBundleLimitVideoConsumptionNumber"` + TaskIncreaseLimitVideoConsumptionNumber int `gorm:"column:task_increase_limit_video_consumption_number;not null;comment:任务增值权益限制类型非过期使用数" json:"taskIncreaseLimitVideoConsumptionNumber"` + TaskBundleLimitVideoExpiredConsumptionNumber int `gorm:"column:task_bundle_limit_video_expired_consumption_number;not null;comment:任务套餐权益限制类型会过期使用数" json:"taskBundleLimitVideoExpiredConsumptionNumber"` + TaskIncreaseLimitVideoExpiredConsumptionNumber int `gorm:"column:task_increase_limit_video_expired_consumption_number;not null;comment:任务增值权益限制类型会过期使用数" json:"taskIncreaseLimitVideoExpiredConsumptionNumber"` + TaskMonthlyLimitVideoNumber int `gorm:"column:task_monthly_limit_video_number;not null;comment:任务当月限制类型视频可用数" json:"taskMonthlyLimitVideoNumber"` + TaskMonthlyLimitVideoConsumptionNumber int `gorm:"column:task_monthly_limit_video_consumption_number;not null;comment:任务当月限制类型视频已使用额度" json:"taskMonthlyLimitVideoConsumptionNumber"` + TaskMonthlyLimitVideoExpireNumber int `gorm:"column:task_monthly_limit_video_expired_number;not null;comment:任务当月限制类型视频会过期可用数" json:"taskMonthlyLimitVideoExpireNumber"` + TaskMonthlyLimitVideoExpireConsumptionNumber int `gorm:"column:task_monthly_limit_video_expired_consumption_number;not null;comment:任务当月限制类型视频会过期已使用额度" json:"taskMonthlyLimitVideoExpireConsumptionNumber"` + TaskMonthlyBundleVideoConsumptionNumber int `gorm:"column:task_monthly_bundle_video_consumption_number;not null;comment:任务当月套餐类型总使用数" json:"taskMonthlyBundleVideoConsumptionNumber"` + TaskMonthlyIncreaseVideoConsumptionNumber int `gorm:"column:task_monthly_increase_video_consumption_number;not null;comment:任务当月增值类型总使用数" json:"taskMonthlyIncreaseVideoConsumptionNumber"` + TaskMonthlyLimitVideoQuotaNumber int `gorm:"column:task_monthly_limit_video_quota_number;not null;comment:任务当月限制类型视频额度" json:"taskMonthlyLimitVideoQuotaNumber"` + + // ===== 任务图片类 ===== + TaskBundleImageNumber int `gorm:"column:task_bundle_image_number;not null;comment:任务非限制类型套餐权益图片总数" json:"taskBundleImageNumber"` + TaskIncreaseImageNumber int `gorm:"column:task_increase_image_number;not null;comment:任务非限制类型增值权益图片总数" json:"taskIncreaseImageNumber"` + TaskBundleLimitImageNumber int `gorm:"column:task_bundle_limit_image_number;not null;comment:任务套餐权益限制类型非过期总数" json:"taskBundleLimitImageNumber"` + TaskIncreaseLimitImageNumber int `gorm:"column:task_increase_limit_image_number;not null;comment:任务增值权益限制类型非过期总数" json:"taskIncreaseLimitImageNumber"` + TaskBundleLimitImageExpiredNumber int `gorm:"column:task_bundle_limit_image_expired_number;not null;comment:任务套餐权益限制类型会过期总数" json:"taskBundleLimitImageExpiredNumber"` + TaskIncreaseLimitImageExpiredNumber int `gorm:"column:task_increase_limit_image_expired_number;not null;comment:任务增值权益限制类型会过期总数" json:"taskIncreaseLimitImageExpiredNumber"` + TaskMonthlyInvalidBundleImageNumber int `gorm:"column:task_monthly_invalid_bundle_image_number;not null;comment:任务当月失效的套餐权益图片总数" json:"taskMonthlyInvalidBundleImageNumber"` + TaskInvalidBundleImageNumber int `gorm:"column:task_invalid_bundle_image_number;not null;comment:任务历史失效的套餐权益图片总数" json:"taskInvalidBundleImageNumber"` + TaskMonthlyInvalidIncreaseImageNumber int `gorm:"column:task_monthly_invalid_increase_image_number;not null;comment:任务当月失效的增值权益图片总数" json:"taskMonthlyInvalidIncreaseImageNumber"` + TaskInvalidIncreaseImageNumber int `gorm:"column:task_invalid_increase_image_number;not null;comment:任务历史失效的增值权益图片总数" json:"taskInvalidIncreaseImageNumber"` + TaskBundleImageConsumptionNumber int `gorm:"column:task_bundle_image_consumption_number;not null;comment:任务非限制类型套餐权益图片使用数" json:"taskBundleImageConsumptionNumber"` + TaskIncreaseImageConsumptionNumber int `gorm:"column:task_increase_image_consumption_number;not null;comment:任务非限制类型增值权益图片使用数" json:"taskIncreaseImageConsumptionNumber"` + TaskBundleLimitImageConsumptionNumber int `gorm:"column:task_bundle_limit_image_consumption_number;not null;comment:任务套餐权益限制类型非过期使用数" json:"taskBundleLimitImageConsumptionNumber"` + TaskIncreaseLimitImageConsumptionNumber int `gorm:"column:task_increase_limit_image_consumption_number;not null;comment:任务增值权益限制类型非过期使用数" json:"taskIncreaseLimitImageConsumptionNumber"` + TaskBundleLimitImageExpiredConsumptionNumber int `gorm:"column:task_bundle_limit_image_expired_consumption_number;not null;comment:任务套餐权益限制类型会过期使用数" json:"taskBundleLimitImageExpiredConsumptionNumber"` + TaskIncreaseLimitImageExpiredConsumptionNumber int `gorm:"column:task_increase_limit_image_expired_consumption_number;not null;comment:任务增值权益限制类型会过期使用数" json:"taskIncreaseLimitImageExpiredConsumptionNumber"` + TaskMonthlyLimitImageNumber int `gorm:"column:task_monthly_limit_image_number;not null;comment:任务当月限制类型图片可使用额度" json:"taskMonthlyLimitImageNumber"` + TaskMonthlyLimitImageConsumptionNumber int `gorm:"column:task_monthly_limit_image_consumption_number;not null;comment:任务当月限制类型图片已使用额度" json:"taskMonthlyLimitImageConsumptionNumber"` + TaskMonthlyLimitImageExpireNumber int `gorm:"column:task_monthly_limit_image_expired_number;not null;comment:任务当月限制类型图片会过期可用数" json:"taskMonthlyLimitImageExpireNumber"` + TaskMonthlyLimitImageExpireConsumptionNumber int `gorm:"column:task_monthly_limit_image_expired_consumption_number;not null;comment:任务当月限制类型图片会过期已使用额度" json:"taskMonthlyLimitImageExpireConsumptionNumber"` + TaskMonthlyBundleImageConsumptionNumber int `gorm:"column:task_monthly_bundle_image_consumption_number;not null;comment:任务当月套餐类型总使用数" json:"taskMonthlyBundleImageConsumptionNumber"` + TaskMonthlyIncreaseImageConsumptionNumber int `gorm:"column:task_monthly_increase_image_consumption_number;not null;comment:任务当月增值类型总使用数" json:"taskMonthlyIncreaseImageConsumptionNumber"` + TaskMonthlyLimitImageQuotaNumber int `gorm:"column:task_monthly_limit_image_quota_number;not null;comment:任务当月限制类型图片额度" json:"taskMonthlyLimitImageQuotaNumber"` + + // ===== 任务数据分析类 ===== + TaskBundleDataAnalysisNumber int `gorm:"column:task_bundle_data_analysis_number;not null;comment:任务非限制类型套餐权益数据分析总数" json:"taskBundleDataAnalysisNumber"` + TaskIncreaseDataAnalysisNumber int `gorm:"column:task_increase_data_analysis_number;not null;comment:任务非限制类型增值权益数据分析总数" json:"taskIncreaseDataAnalysisNumber"` + TaskBundleLimitDataAnalysisNumber int `gorm:"column:task_bundle_limit_data_analysis_number;not null;comment:任务套餐权益限制类型非过期总数" json:"taskBundleLimitDataAnalysisNumber"` + TaskIncreaseLimitDataAnalysisNumber int `gorm:"column:task_increase_limit_data_analysis_number;not null;comment:任务增值权益限制类型非过期总数" json:"taskIncreaseLimitDataAnalysisNumber"` + TaskBundleLimitDataAnalysisExpiredNumber int `gorm:"column:task_bundle_limit_data_analysis_expired_number;not null;comment:任务套餐权益限制类型会过期总数" json:"taskBundleLimitDataAnalysisExpiredNumber"` + TaskIncreaseLimitDataAnalysisExpiredNumber int `gorm:"column:task_increase_limit_data_analysis_expired_number;not null;comment:任务增值权益限制类型会过期总数" json:"taskIncreaseLimitDataAnalysisExpiredNumber"` + TaskMonthlyInvalidBundleDataAnalysisNumber int `gorm:"column:task_monthly_invalid_bundle_data_analysis_number;not null;comment:任务当月失效的套餐权益数据分析总数" json:"taskMonthlyInvalidBundleDataAnalysisNumber"` + TaskInvalidBundleDataAnalysisNumber int `gorm:"column:task_invalid_bundle_data_analysis_number;not null;comment:任务历史失效的套餐权益数据分析总数" json:"taskInvalidBundleDataAnalysisNumber"` + TaskMonthlyInvalidIncreaseDataAnalysisNumber int `gorm:"column:task_monthly_invalid_increase_data_analysis_number;not null;comment:任务当月失效的增值权益数据分析总数" json:"taskMonthlyInvalidIncreaseDataAnalysisNumber"` + TaskInvalidIncreaseDataAnalysisNumber int `gorm:"column:task_invalid_increase_data_analysis_number;not null;comment:任务历史失效的增值权益数据分析总数" json:"taskInvalidIncreaseDataAnalysisNumber"` + TaskBundleDataAnalysisConsumptionNumber int `gorm:"column:task_bundle_data_analysis_consumption_number;not null;comment:任务非限制类型套餐权益数据分析使用数" json:"taskBundleDataAnalysisConsumptionNumber"` + TaskIncreaseDataAnalysisConsumptionNumber int `gorm:"column:task_increase_data_analysis_consumption_number;not null;comment:任务非限制类型增值权益数据分析使用数" json:"taskIncreaseDataAnalysisConsumptionNumber"` + TaskBundleLimitDataAnalysisConsumptionNumber int `gorm:"column:task_bundle_limit_data_analysis_consumption_number;not null;comment:任务套餐权益限制类型非过期使用数" json:"taskBundleLimitDataAnalysisConsumptionNumber"` + TaskIncreaseLimitDataAnalysisConsumptionNumber int `gorm:"column:task_increase_limit_data_analysis_consumption_number;not null;comment:任务增值权益限制类型非过期使用数" json:"taskIncreaseLimitDataAnalysisConsumptionNumber"` + TaskBundleLimitDataAnalysisExpiredConsumptionNumber int `gorm:"column:task_bundle_limit_data_analysis_expired_consumption_number;not null;comment:任务套餐权益限制类型会过期使用数" json:"taskBundleLimitDataAnalysisExpiredConsumptionNumber"` + TaskIncreaseLimitDataAnalysisExpiredConsumptionNumber int `gorm:"column:task_increase_limit_data_analysis_expired_consumption_number;not null;comment:任务增值权益限制类型会过期使用数" json:"taskIncreaseLimitDataAnalysisExpiredConsumptionNumber"` + TaskMonthlyLimitDataAnalysisNumber int `gorm:"column:task_monthly_limit_data_analysis_number;not null;comment:任务当月限制类型数据分析可使用额度" json:"taskMonthlyLimitDataAnalysisNumber"` + TaskMonthlyLimitDataAnalysisConsumptionNumber int `gorm:"column:task_monthly_limit_data_analysis_consumption_number;not null;comment:任务当月限制类型数据分析已使用额度" json:"taskMonthlyLimitDataAnalysisConsumptionNumber"` + TaskMonthlyLimitDataAnalysisExpireNumber int `gorm:"column:task_monthly_limit_data_analysis_expired_number;not null;comment:任务当月限制类型数据分析会过期可用数" json:"taskMonthlyLimitDataAnalysisExpireNumber"` + TaskMonthlyLimitDataAnalysisExpireConsumptionNumber int `gorm:"column:task_monthly_limit_data_analysis_expired_consumption_number;not null;comment:任务当月限制类型数据分析会过期已使用额度" json:"taskMonthlyLimitDataAnalysisExpireConsumptionNumber"` + TaskMonthlyBundleDataAnalysisConsumptionNumber int `gorm:"column:task_monthly_bundle_data_analysis_consumption_number;not null;comment:任务当月套餐类型总使用数" json:"taskMonthlyBundleDataAnalysisConsumptionNumber"` + TaskMonthlyIncreaseDataAnalysisConsumptionNumber int `gorm:"column:task_monthly_increase_data_analysis_consumption_number;not null;comment:任务当月增值类型总使用数" json:"taskMonthlyIncreaseDataAnalysisConsumptionNumber"` + TaskMonthlyLimitDataAnalysisQuotaNumber int `gorm:"column:task_monthly_limit_data_analysis_quota_number;not null;comment:任务当月限制类型数据分析额度" json:"taskMonthlyLimitDataAnalysisQuotaNumber"` + + 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_task_balance_deleted_at" json:"deletedAt"` +} + +func (t *TaskBalance) TableName() string { + return "task_balance" +} + +// 任务日志表 +type TaskLog struct { + LogUUID string `gorm:"column:log_uuid;type:varchar(50)comment:任务日志UUID;uniqueIndex:idx_task_log_uuid;not null" json:"taskLogUUID"` + SubNum string `gorm:"column:sub_num;comment:任务用户编号;index:idx_task_log_sub_num;not null" json:"taskSubNum"` + TelNum string `gorm:"column:tel_num;comment:任务用户手机号;index:idx_task_log_tel_num;not null" json:"taskTelNum"` + ArtistName string `gorm:"column:artist_name;comment:任务艺人名称;index:idx_task_log_artist_name" json:"taskArtistName"` + + // ===== 操作信息 ===== + OperationType int `gorm:"column:operation_type;type:int(11);comment:任务操作类型 1:加任务 2:消耗任务 3:完成任务;4:任务过期;index:idx_task_operation_type;not null" json:"taskOperationType"` + TaskType int `gorm:"column:task_type;type:int(11);comment:任务类型 1:视频 2:图片 3:数据分析;index:idx_task_type;not null" json:"taskType"` + TaskCount int `gorm:"column:task_count;type:int(11);comment:任务数量;not null" json:"taskCount"` + Remark string `gorm:"column:remark;type:varchar(500);comment:任务备注" json:"taskRemark"` + + // ===== 操作人信息 ===== + OperatorName string `gorm:"column:operator_name;comment:任务操作人姓名;index:idx_task_operator_name" json:"taskOperatorName"` + OperatorNum string `gorm:"column:operator_num;comment:任务操作人账号;index:idx_task_operator_num" json:"taskOperatorNum"` + CompletorName string `gorm:"column:completor_name;comment:任务完成人姓名;index:idx_task_completor_name" json:"taskCompletorName"` + CompletorNum string `gorm:"column:completor_num;comment:任务完成人账号;index:idx_task_completor_num" json:"taskCompletorNum"` + + // ===== 关联ID字段 ===== + VideoPublishUUID string `gorm:"column:video_publish_id;type:varchar(50);comment:任务关联的发布视频UUID;index:idx_task_video_publish_id" json:"taskVideoPublishID"` + PostPublishUUID string `gorm:"column:post_publish_id;type:varchar(50);comment:任务关联的图文发布UUID;index:idx_task_post_publish_id" json:"taskPostPublishID"` + DataAnalysisUUID string `gorm:"column:data_analysis_id;type:varchar(50);comment:任务关联的数据分析UUID;index:idx_task_data_analysis_id" json:"taskDataAnalysisID"` + + // ===== 时间字段 ===== + OperationTime int `gorm:"column:operation_time;type:int(11);comment:任务操作时间;index:idx_task_operation_time;not null" json:"taskOperationTime"` + CreatedAt int `gorm:"column:created_at;type:int(11);comment:任务日志创建时间" json:"taskCreatedAt"` + UpdatedAt int `gorm:"column:updated_at;type:int(11);comment:任务日志更新时间" json:"taskUpdatedAt"` + DeletedAt soft_delete.DeletedAt `gorm:"column:deleted_at;type:int(11);index:idx_task_log_deleted_at" json:"taskDeletedAt"` +} + +func (t *TaskLog) TableName() string { + return "task_log" +} diff --git a/pb/bundle.proto b/pb/bundle.proto index c4be051..83a89b6 100644 --- a/pb/bundle.proto +++ b/pb/bundle.proto @@ -999,7 +999,7 @@ message TaskAssignRecordInfo { int32 pendingVideoCount = 14 [json_name = "pendingVideoCount"]; // 待发视频数量 int32 pendingPostCount = 15 [json_name = "pendingPostCount"]; // 待发图文数量 int32 pendingDataCount = 16 [json_name = "pendingDataCount"]; // 待发数据数量 - string updatedAt = 24 [json_name = "updatedAt"]; // 更新时间 + string updatedAt = 17 [json_name = "updatedAt"]; // 更新时间 } // 手动完成任务 @@ -1046,7 +1046,26 @@ message ArtistBundleBalanceRequest { // 艺人套餐剩余数量响应 message ArtistBundleBalanceResponse { - int32 remainingVideoCount = 1 [json_name = "remainingVideoCount"]; // 剩余视频数量 - int32 remainingImageCount = 2 [json_name = "remainingImageCount"]; // 剩余图片数量 - int32 remainingDataAnalysisCount = 3 [json_name = "remainingDataAnalysisCount"]; // 剩余数据分析数量 + // 以下返回值同时包含“套餐类型”和“增值类型”两类的任务余额与待发数量 + // 余额来自任务余额表(task_balance),待发数量来自任务管理表(task_management),均按视频/图文/数据分析三类区分 + + // 套餐类型 - 任务余额(视频/图文/数据分析) + int32 bundleVideoBalance = 1 [json_name = "bundleVideoBalance"]; // 套餐类型视频余额 + int32 bundleImageBalance = 2 [json_name = "bundleImageBalance"]; // 套餐类型图文余额 + int32 bundleDataAnalysisBalance = 3 [json_name = "bundleDataAnalysisBalance"]; // 套餐类型数据分析余额 + + // 增值类型 - 任务余额(视频/图文/数据分析) + int32 increaseVideoBalance = 4 [json_name = "increaseVideoBalance"]; // 增值类型视频余额 + int32 increaseImageBalance = 5 [json_name = "increaseImageBalance"]; // 增值类型图文余额 + int32 increaseDataAnalysisBalance = 6 [json_name = "increaseDataAnalysisBalance"]; // 增值类型数据分析余额 + + // 套餐类型 - 待发数量(视频/图文/数据分析) + int32 bundlePendingVideoCount = 7 [json_name = "bundlePendingVideoCount"]; // 套餐类型待发视频数量 + int32 bundlePendingImageCount = 8 [json_name = "bundlePendingImageCount"]; // 套餐类型待发图文数量 + int32 bundlePendingDataAnalysisCount = 9 [json_name = "bundlePendingDataAnalysisCount"]; // 套餐类型待发数据分析数量 + + // 增值类型 - 待发数量(视频/图文/数据分析) + int32 increasePendingVideoCount = 10 [json_name = "increasePendingVideoCount"]; // 增值类型待发视频数量 + int32 increasePendingImageCount = 11 [json_name = "increasePendingImageCount"]; // 增值类型待发图文数量 + int32 increasePendingDataAnalysisCount = 12 [json_name = "increasePendingDataAnalysisCount"]; // 增值类型待发数据分析数量 } \ No newline at end of file diff --git a/pb/bundle/bundle.pb.go b/pb/bundle/bundle.pb.go index 605a349..b437232 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.29.1 -// protoc v3.12.4 +// protoc-gen-go v1.27.1 +// protoc v3.21.1 // source: pb/bundle.proto package bundle @@ -27,8 +27,8 @@ type DeleteValueAddServiceRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - OrderNo string `protobuf:"bytes,1,opt,name=orderNo,proto3" json:"orderNo,omitempty,omitempty"` - UserID uint64 `protobuf:"varint,2,opt,name=userID,proto3" json:"userID,omitempty,omitempty"` + OrderNo string `protobuf:"bytes,1,opt,name=orderNo,proto3" json:"orderNo"` + UserID uint64 `protobuf:"varint,2,opt,name=userID,proto3" json:"userID"` } func (x *DeleteValueAddServiceRequest) Reset() { @@ -82,20 +82,20 @@ type GetReconciliationListReq struct { 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"` + 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"` } func (x *GetReconciliationListReq) Reset() { @@ -233,10 +233,10 @@ type GetReconciliationListResp struct { 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"` + 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"` } func (x *GetReconciliationListResp) Reset() { @@ -304,22 +304,22 @@ type ReconciliationInfo struct { 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"` + 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"` } func (x *ReconciliationInfo) Reset() { @@ -471,7 +471,7 @@ type OrderInfoByOrderNoRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - OrderNo string `protobuf:"bytes,1,opt,name=orderNo,proto3" json:"orderNo,omitempty"` + OrderNo string `protobuf:"bytes,1,opt,name=orderNo,proto3" json:"orderNo"` } func (x *OrderInfoByOrderNoRequest) Reset() { @@ -518,16 +518,16 @@ type OrderInfoByOrderNoResp struct { 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"` + 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"` } func (x *OrderInfoByOrderNoResp) Reset() { @@ -637,27 +637,27 @@ type OrderCreateRecord struct { 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"` + 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"` } func (x *OrderCreateRecord) Reset() { @@ -844,15 +844,15 @@ type OrderCreateAddRecord struct { 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"` + 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"` } func (x *OrderCreateAddRecord) Reset() { @@ -955,22 +955,22 @@ type OrderRecordsRequestV2 struct { 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"` + 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"` } func (x *OrderRecordsRequestV2) Reset() { @@ -1122,10 +1122,10 @@ type OrderRecordsResponseV2 struct { 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"` + 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"` } func (x *OrderRecordsResponseV2) Reset() { @@ -1193,17 +1193,17 @@ type OrderBundleRecordInfo struct { 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"` + 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"` } func (x *OrderBundleRecordInfo) Reset() { @@ -1320,19 +1320,19 @@ type OrderAddBundleRecordInfo struct { 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"` + 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"` } func (x *OrderAddBundleRecordInfo) Reset() { @@ -1463,8 +1463,8 @@ type PackagePriceAndTimeResponse struct { 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"` + Price float32 `protobuf:"fixed32,1,opt,name=price,proto3" json:"price"` + Time string `protobuf:"bytes,2,opt,name=time,proto3" json:"time"` } func (x *PackagePriceAndTimeResponse) Reset() { @@ -1518,9 +1518,9 @@ type CommonResponse struct { 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"` + 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"` } func (x *CommonResponse) Reset() { @@ -1581,26 +1581,26 @@ type BundleProfile struct { 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"` + 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"` } func (x *BundleProfile) Reset() { @@ -1780,23 +1780,23 @@ type BundleProfileLang struct { 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"]; + 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"]; } func (x *BundleProfileLang) Reset() { @@ -1955,9 +1955,9 @@ type SaveResponse struct { 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"` + 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"` } func (x *SaveResponse) Reset() { @@ -2018,10 +2018,10 @@ type SelectValueAddService struct { 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"` + 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"` } func (x *SelectValueAddService) Reset() { @@ -2089,7 +2089,7 @@ type DelBundleRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` } func (x *DelBundleRequest) Reset() { @@ -2136,11 +2136,11 @@ type BundleListRequest struct { 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"` + 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"` } func (x *BundleListRequest) Reset() { @@ -2215,8 +2215,8 @@ type BundleListResponse struct { 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"` + Bundles []*BundleProfile `protobuf:"bytes,1,rep,name=bundles,proto3" json:"bundles"` + Total int32 `protobuf:"varint,2,opt,name=total,proto3" json:"total"` } func (x *BundleListResponse) Reset() { @@ -2270,8 +2270,8 @@ type BundleDetailRequest struct { 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 + 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 } func (x *BundleDetailRequest) Reset() { @@ -2325,8 +2325,8 @@ type HandShelfRequest struct { 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 下架 + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` + ShelfStatus int64 `protobuf:"varint,2,opt,name=shelfStatus,proto3" json:"shelfStatus"` // 1 上架 2 下架 } func (x *HandShelfRequest) Reset() { @@ -2380,8 +2380,8 @@ type BundleDetailResponse struct { 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"` + Bundle *BundleProfile `protobuf:"bytes,1,opt,name=bundle,proto3" json:"bundle"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg"` } func (x *BundleDetailResponse) Reset() { @@ -2435,8 +2435,8 @@ type BundleDetailResponseV2 struct { 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"` + Bundle *BundleProfile `protobuf:"bytes,1,opt,name=bundle,proto3" json:"bundle"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg"` } func (x *BundleDetailResponseV2) Reset() { @@ -2490,45 +2490,45 @@ type OrderRecord struct { 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"` + 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"` } func (x *OrderRecord) Reset() { @@ -2841,9 +2841,9 @@ type AddInfo struct { 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"` + 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"` } func (x *AddInfo) Reset() { @@ -2904,20 +2904,20 @@ type OrderAddRecord struct { 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"` + 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"` // string valueAddUUID = 12 [json_name = "valueAddUUID"]; - 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"` + 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"` } func (x *OrderAddRecord) Reset() { @@ -3048,13 +3048,13 @@ type AddPriceOptionsInfo struct { 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"` + 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"` } func (x *AddPriceOptionsInfo) Reset() { @@ -3143,9 +3143,9 @@ type PriceOptionsInfo struct { 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"` + 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"` } func (x *PriceOptionsInfo) Reset() { @@ -3206,22 +3206,22 @@ type OrderRecordsRequest struct { 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"` + 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"` } func (x *OrderRecordsRequest) Reset() { @@ -3373,8 +3373,8 @@ type OrderRecordsResponse struct { 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"` + OrderRecords []*OrderRecord `protobuf:"bytes,1,rep,name=orderRecords,proto3" json:"orderRecords"` + Total int32 `protobuf:"varint,2,opt,name=total,proto3" json:"total"` } func (x *OrderRecordsResponse) Reset() { @@ -3428,11 +3428,11 @@ type OrderRecordsDetailRequest struct { 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"` + 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"` } func (x *OrderRecordsDetailRequest) Reset() { @@ -3507,8 +3507,8 @@ type OrderRecordsDetailResponse struct { 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"` + OrderRecord *OrderRecord `protobuf:"bytes,1,opt,name=orderRecord,proto3" json:"orderRecord"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg"` } func (x *OrderRecordsDetailResponse) Reset() { @@ -3563,16 +3563,16 @@ type ValueAddBundleProfile struct { 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"` + 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"` } func (x *ValueAddBundleProfile) Reset() { @@ -3682,7 +3682,7 @@ type CreateValueAddBundleRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Num int32 `protobuf:"varint,1,opt,name=num,proto3" json:"num,omitempty"` + Num int32 `protobuf:"varint,1,opt,name=num,proto3" json:"num"` } func (x *CreateValueAddBundleRequest) Reset() { @@ -3729,10 +3729,10 @@ type CreateValueAddBundleResponse struct { 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"` + 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"` } func (x *CreateValueAddBundleResponse) Reset() { @@ -3801,9 +3801,9 @@ type ValueAddBundleListRequest struct { 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"` + 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"` } func (x *ValueAddBundleListRequest) Reset() { @@ -3864,14 +3864,14 @@ type ValueAddBundleListResponse struct { 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"` + 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"` } func (x *ValueAddBundleListResponse) Reset() { @@ -3967,7 +3967,7 @@ type ValueAddBundleDetailRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` } func (x *ValueAddBundleDetailRequest) Reset() { @@ -4014,9 +4014,9 @@ type ValueAddBundleDetailResponse struct { 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"` + 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"` } func (x *ValueAddBundleDetailResponse) Reset() { @@ -4077,7 +4077,7 @@ type FinancialConfirmationRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - OrderNo string `protobuf:"bytes,1,opt,name=orderNo,proto3" json:"orderNo,omitempty"` + OrderNo string `protobuf:"bytes,1,opt,name=orderNo,proto3" json:"orderNo"` } func (x *FinancialConfirmationRequest) Reset() { @@ -4126,10 +4126,10 @@ type ValueAddService struct { 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"` + 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"` } func (x *ValueAddService) Reset() { @@ -4197,17 +4197,17 @@ type ValueAddServiceLang struct { 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"` + 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"` } func (x *ValueAddServiceLang) Reset() { @@ -4319,18 +4319,18 @@ func (x *ValueAddServiceLang) GetOptions() []*ValueAddPriceOptions { return nil } -// 增值服务价格选项 +// 增值服务价格选项 type ValueAddPriceOptions struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty,omitempty"` - Num int32 `protobuf:"varint,2,opt,name=num,proto3" json:"num,omitempty,omitempty"` - Symbol string `protobuf:"bytes,3,opt,name=symbol,proto3" json:"symbol,omitempty,omitempty"` - Price string `protobuf:"bytes,4,opt,name=price,proto3" json:"price,omitempty,omitempty"` - SaveAmount string `protobuf:"bytes,5,opt,name=saveAmount,proto3" json:"saveAmount,omitempty,omitempty"` - TotalPrice string `protobuf:"bytes,6,opt,name=totalPrice,proto3" json:"totalPrice,omitempty"` + 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"` + TotalPrice string `protobuf:"bytes,6,opt,name=totalPrice,proto3" json:"totalPrice"` } func (x *ValueAddPriceOptions) Reset() { @@ -4413,10 +4413,10 @@ type ValueAddServiceListRequest struct { 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"` + 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"` } func (x *ValueAddServiceListRequest) Reset() { @@ -4484,9 +4484,9 @@ type ValueAddServiceListResponse struct { 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"` + 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"` } func (x *ValueAddServiceListResponse) Reset() { @@ -4548,8 +4548,8 @@ type ValueAddServiceDetailRequest struct { 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 + 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 } func (x *ValueAddServiceDetailRequest) Reset() { @@ -4603,8 +4603,8 @@ type ValueAddServiceDetailResponse struct { 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"` + Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg"` + ValueAddService *ValueAddService `protobuf:"bytes,2,opt,name=valueAddService,proto3" json:"valueAddService"` } func (x *ValueAddServiceDetailResponse) Reset() { @@ -4658,9 +4658,9 @@ type CalculatePriceRequest struct { 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"` + 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"` } func (x *CalculatePriceRequest) Reset() { @@ -4721,8 +4721,8 @@ type CalculatePriceResponse struct { 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"` + Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg"` + Price float32 `protobuf:"fixed32,2,opt,name=price,proto3" json:"price"` } func (x *CalculatePriceResponse) Reset() { @@ -4776,8 +4776,8 @@ type BatchGetValueAddServiceLangRequest struct { 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"` + Uuids []string `protobuf:"bytes,1,rep,name=uuids,proto3" json:"uuids"` + Language string `protobuf:"bytes,2,opt,name=language,proto3" json:"language"` } func (x *BatchGetValueAddServiceLangRequest) Reset() { @@ -4831,8 +4831,8 @@ type BatchGetValueAddServiceLangResponse struct { 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"` + Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg"` + ValueAddServiceLangList []*ValueAddServiceLang `protobuf:"bytes,2,rep,name=valueAddServiceLangList,proto3" json:"valueAddServiceLangList"` } func (x *BatchGetValueAddServiceLangResponse) Reset() { @@ -4886,19 +4886,19 @@ type BundleExtendRequest struct { 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"` + 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"` } func (x *BundleExtendRequest) Reset() { @@ -5067,14 +5067,14 @@ type BundleExtendRecordsListRequest struct { 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"` + 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"` } func (x *BundleExtendRecordsListRequest) Reset() { @@ -5170,8 +5170,8 @@ type BundleExtendRecordsListResponse struct { 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"` + Total int64 `protobuf:"varint,1,opt,name=total,proto3" json:"total"` + Data []*BundleExtendRecordItem `protobuf:"bytes,2,rep,name=data,proto3" json:"data"` } func (x *BundleExtendRecordsListResponse) Reset() { @@ -5225,20 +5225,20 @@ type BundleExtendRecordItem struct { 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"` + 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"` } func (x *BundleExtendRecordItem) Reset() { @@ -5376,14 +5376,14 @@ type GetBundleBalanceListReq struct { 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"` + 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"` } func (x *GetBundleBalanceListReq) Reset() { @@ -5479,13 +5479,13 @@ type GetBundleBalanceReq struct { 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"` + 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"` } func (x *GetBundleBalanceReq) Reset() { @@ -5574,22 +5574,22 @@ type BundleBalanceItem struct { 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"` + 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"` } func (x *BundleBalanceItem) Reset() { @@ -5741,8 +5741,8 @@ type GetBundleBalanceListResp struct { 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"` + Total int64 `protobuf:"varint,1,opt,name=total,proto3" json:"total"` + Data []*BundleBalanceItem `protobuf:"bytes,2,rep,name=data,proto3" json:"data"` } func (x *GetBundleBalanceListResp) Reset() { @@ -5796,17 +5796,17 @@ type CreateBundleBalanceReq struct { 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"` + 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"` } func (x *CreateBundleBalanceReq) Reset() { @@ -5961,18 +5961,18 @@ type AddBundleBalanceReq struct { 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"` + 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"` } func (x *AddBundleBalanceReq) Reset() { @@ -6134,17 +6134,17 @@ type GetUsedRecordListReq struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - User string `protobuf:"bytes,1,opt,name=user,proto3" json:"user,omitempty,omitempty"` - Operator string `protobuf:"bytes,2,opt,name=operator,proto3" json:"operator,omitempty,omitempty"` - Account string `protobuf:"bytes,3,opt,name=account,proto3" json:"account,omitempty,omitempty"` - Platform int32 `protobuf:"varint,4,opt,name=platform,proto3" json:"platform,omitempty,omitempty"` - Type int32 `protobuf:"varint,5,opt,name=type,proto3" json:"type,omitempty,omitempty"` - WorkTitle string `protobuf:"bytes,6,opt,name=workTitle,proto3" json:"workTitle,omitempty,omitempty"` - SubmitTimeStart int64 `protobuf:"varint,7,opt,name=submitTimeStart,proto3" json:"submitTimeStart,omitempty,omitempty"` - SubmitTimeEnd int64 `protobuf:"varint,8,opt,name=submitTimeEnd,proto3" json:"submitTimeEnd,omitempty,omitempty"` - Page int32 `protobuf:"varint,9,opt,name=page,proto3" json:"page,omitempty,omitempty"` - PageSize int32 `protobuf:"varint,10,opt,name=pageSize,proto3" json:"pageSize,omitempty,omitempty"` - CostType int32 `protobuf:"varint,11,opt,name=costType,proto3" json:"costType,omitempty"` + 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"` + WorkTitle string `protobuf:"bytes,6,opt,name=workTitle,proto3" json:"workTitle"` + 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"` + CostType int32 `protobuf:"varint,11,opt,name=costType,proto3" json:"costType"` } func (x *GetUsedRecordListReq) Reset() { @@ -6261,8 +6261,8 @@ type GetUsedRecordListResp struct { 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"` + Total int64 `protobuf:"varint,1,opt,name=total,proto3" json:"total"` + Data []*WorkCastItem `protobuf:"bytes,2,rep,name=data,proto3" json:"data"` } func (x *GetUsedRecordListResp) Reset() { @@ -6316,22 +6316,22 @@ type WorkCastItem struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ArtistUuid string `protobuf:"bytes,1,opt,name=artistUuid,proto3" json:"artistUuid,omitempty,omitempty"` // 艺人ID - ArtistName string `protobuf:"bytes,2,opt,name=artistName,proto3" json:"artistName,omitempty,omitempty"` // 艺人名称 - ArtistPhone string `protobuf:"bytes,3,opt,name=artistPhone,proto3" json:"artistPhone,omitempty,omitempty"` // 艺人手机号 - WorkUuid string `protobuf:"bytes,4,opt,name=workUuid,proto3" json:"workUuid,omitempty,omitempty"` // 作品uuid - WorkCategory uint32 `protobuf:"varint,5,opt,name=workCategory,proto3" json:"workCategory,omitempty,omitempty"` // 1 图文 2 视频 - BundleUuid string `protobuf:"bytes,6,opt,name=bundleUuid,proto3" json:"bundleUuid,omitempty,omitempty"` // 套餐ID uuid - BundleName string `protobuf:"bytes,7,opt,name=bundleName,proto3" json:"bundleName,omitempty,omitempty"` // 套餐名称 - PlatformIds string `protobuf:"bytes,8,opt,name=platformIds,proto3" json:"platformIds,omitempty,omitempty"` // 发布平台ID集合 (json 格式字符串) - MediaNames string `protobuf:"bytes,9,opt,name=mediaNames,proto3" json:"mediaNames,omitempty,omitempty"` // 自媒体账号名称集合 - MediaAccIDs string `protobuf:"bytes,10,opt,name=mediaAccIDs,proto3" json:"mediaAccIDs,omitempty,omitempty"` // 自媒体账号ID集合 - WorkTitle string `protobuf:"bytes,11,opt,name=workTitle,proto3" json:"workTitle,omitempty,omitempty"` // 作品标题 - SubmitTime string `protobuf:"bytes,12,opt,name=submitTime,proto3" json:"submitTime,omitempty,omitempty"` // 提交时间 - OperatorName string `protobuf:"bytes,13,opt,name=operatorName,proto3" json:"operatorName,omitempty,omitempty"` // 操作人名称 - OperatorPhone string `protobuf:"bytes,14,opt,name=operatorPhone,proto3" json:"operatorPhone,omitempty,omitempty"` // 操作人手机号 - Status uint32 `protobuf:"varint,15,opt,name=status,proto3" json:"status,omitempty,omitempty"` // 1 有效 2 失效 - CostType uint32 `protobuf:"varint,16,opt,name=costType,proto3" json:"costType,omitempty"` + 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 失效 + CostType uint32 `protobuf:"varint,16,opt,name=costType,proto3" json:"costType"` } func (x *WorkCastItem) Reset() { @@ -6483,7 +6483,7 @@ type GetImageWorkDetailReq struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - WorkId string `protobuf:"bytes,1,opt,name=workId,proto3" json:"workId,omitempty"` + WorkId string `protobuf:"bytes,1,opt,name=workId,proto3" json:"workId"` } func (x *GetImageWorkDetailReq) Reset() { @@ -6530,7 +6530,7 @@ type GetVedioWorkDetailReq struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - WorkId string `protobuf:"bytes,1,opt,name=workId,proto3" json:"workId,omitempty"` + WorkId string `protobuf:"bytes,1,opt,name=workId,proto3" json:"workId"` } func (x *GetVedioWorkDetailReq) Reset() { @@ -6577,10 +6577,10 @@ type GetImageWorkDetailResp struct { 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"` + 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"` } func (x *GetImageWorkDetailResp) Reset() { @@ -6648,9 +6648,9 @@ type GetVedioeWorkDetailResp struct { 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"` + 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"` } func (x *GetVedioeWorkDetailResp) Reset() { @@ -6711,9 +6711,9 @@ type ToBeComfirmedWorksReq struct { 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"` + 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"` } func (x *ToBeComfirmedWorksReq) Reset() { @@ -6774,20 +6774,20 @@ type WorkItem struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty,omitempty"` - WorkUuid string `protobuf:"bytes,2,opt,name=workUuid,proto3" json:"workUuid,omitempty,omitempty"` - Title string `protobuf:"bytes,3,opt,name=title,proto3" json:"title,omitempty,omitempty"` - Content string `protobuf:"bytes,4,opt,name=content,proto3" json:"content,omitempty,omitempty"` - WorkCategory uint32 `protobuf:"varint,5,opt,name=workCategory,proto3" json:"workCategory,omitempty,omitempty"` - WorkStatus uint32 `protobuf:"varint,6,opt,name=workStatus,proto3" json:"workStatus,omitempty,omitempty"` - PlatformIds string `protobuf:"bytes,7,opt,name=platformIds,proto3" json:"platformIds,omitempty,omitempty"` - MediaNames string `protobuf:"bytes,8,opt,name=mediaNames,proto3" json:"mediaNames,omitempty,omitempty"` - MediaAccUserIds string `protobuf:"bytes,9,opt,name=mediaAccUserIds,proto3" json:"mediaAccUserIds,omitempty,omitempty"` - ConfirmedAt int64 `protobuf:"varint,10,opt,name=confirmedAt,proto3" json:"confirmedAt,omitempty,omitempty"` - CreatedAt int64 `protobuf:"varint,11,opt,name=createdAt,proto3" json:"createdAt,omitempty,omitempty"` // 提交时间 - ArtistName string `protobuf:"bytes,12,opt,name=artistName,proto3" json:"artistName,omitempty,omitempty"` - ArtistUuid string `protobuf:"bytes,13,opt,name=artistUuid,proto3" json:"artistUuid,omitempty,omitempty"` - CostType uint32 `protobuf:"varint,14,opt,name=costType,proto3" json:"costType,omitempty"` + 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"` + CostType uint32 `protobuf:"varint,14,opt,name=costType,proto3" json:"costType"` } func (x *WorkItem) Reset() { @@ -6925,9 +6925,9 @@ type ToBeComfirmedWorksResp struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Total int64 `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty,omitempty"` - Unconfirmed int64 `protobuf:"varint,2,opt,name=unconfirmed,proto3" json:"unconfirmed,omitempty,omitempty"` - Data []*WorkItem `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty,omitempty"` + 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"` } func (x *ToBeComfirmedWorksResp) Reset() { @@ -6988,7 +6988,7 @@ type GetBundleBalanceByUserIdReq struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - UserId int32 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` + UserId int32 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId"` } func (x *GetBundleBalanceByUserIdReq) Reset() { @@ -7035,27 +7035,27 @@ type GetBundleBalanceByUserIdResp struct { 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"` + 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"` } func (x *GetBundleBalanceByUserIdResp) Reset() { @@ -7242,7 +7242,7 @@ type OnlyAddValueListByOrderNoRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - OrderNo string `protobuf:"bytes,1,opt,name=orderNo,proto3" json:"orderNo,omitempty"` + OrderNo string `protobuf:"bytes,1,opt,name=orderNo,proto3" json:"orderNo"` } func (x *OnlyAddValueListByOrderNoRequest) Reset() { @@ -7289,7 +7289,7 @@ type OnlyAddValueListByOrderNoResp struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - AddBundleInfos []*AddBundleInfo `protobuf:"bytes,1,rep,name=AddBundleInfos,proto3" json:"AddBundleInfos,omitempty"` + AddBundleInfos []*AddBundleInfo `protobuf:"bytes,1,rep,name=AddBundleInfos,proto3" json:"AddBundleInfos"` } func (x *OnlyAddValueListByOrderNoResp) Reset() { @@ -7336,11 +7336,11 @@ type AddBundleInfo struct { 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"` + 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"` } func (x *AddBundleInfo) Reset() { @@ -7415,9 +7415,9 @@ type UpdateStatusAndPayTimeBySerialNumber struct { 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"` + 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"` } func (x *UpdateStatusAndPayTimeBySerialNumber) Reset() { @@ -7478,7 +7478,7 @@ type ConfirmWorkReq struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - WorkUuid string `protobuf:"bytes,1,opt,name=workUuid,proto3" json:"workUuid,omitempty"` + WorkUuid string `protobuf:"bytes,1,opt,name=workUuid,proto3" json:"workUuid"` } func (x *ConfirmWorkReq) Reset() { @@ -7563,7 +7563,7 @@ type AutoCreateUserAndOrderRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Num int32 `protobuf:"varint,1,opt,name=num,proto3" json:"num,omitempty"` // 处理数量 + Num int32 `protobuf:"varint,1,opt,name=num,proto3" json:"num"` // 处理数量 } func (x *AutoCreateUserAndOrderRequest) Reset() { @@ -7610,7 +7610,7 @@ type UnfinishedInfos struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - UnfinishedInfos []*UnfinishedInfo `protobuf:"bytes,1,rep,name=unfinishedInfos,proto3" json:"unfinishedInfos,omitempty"` + UnfinishedInfos []*UnfinishedInfo `protobuf:"bytes,1,rep,name=unfinishedInfos,proto3" json:"unfinishedInfos"` } func (x *UnfinishedInfos) Reset() { @@ -7657,25 +7657,25 @@ type UnfinishedInfo struct { 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"` + 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"` } func (x *UnfinishedInfo) Reset() { @@ -7848,7 +7848,7 @@ type SoftDeleteUnfinishedInfoRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ID uint32 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` + ID uint32 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID"` } func (x *SoftDeleteUnfinishedInfoRequest) Reset() { @@ -7896,11 +7896,11 @@ type TaskQueryRequest struct { 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 + Keyword string `protobuf:"bytes,1,opt,name=keyword,proto3" json:"keyword"` // 艺人姓名、编号、手机号搜索关键词 + Page int32 `protobuf:"varint,2,opt,name=page,proto3" json:"page"` // 页码 + PageSize int32 `protobuf:"varint,3,opt,name=pageSize,proto3" json:"pageSize"` // 每页数量 + SortBy string `protobuf:"bytes,4,opt,name=sortBy,proto3" json:"sortBy"` // 排序字段 + SortType string `protobuf:"bytes,5,opt,name=sortType,proto3" json:"sortType"` // 排序类型 asc/desc } func (x *TaskQueryRequest) Reset() { @@ -7975,10 +7975,10 @@ type TaskQueryResponse struct { 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"` + Tasks []*TaskManagementInfo `protobuf:"bytes,1,rep,name=tasks,proto3" json:"tasks"` + 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"` } func (x *TaskQueryResponse) Reset() { @@ -8046,16 +8046,16 @@ type TaskManagementInfo struct { 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"` // 任务指派人账号 + SubNum string `protobuf:"bytes,1,opt,name=subNum,proto3" json:"subNum"` // 艺人编号 + TelNum string `protobuf:"bytes,2,opt,name=telNum,proto3" json:"telNum"` // 手机号 + ArtistName string `protobuf:"bytes,3,opt,name=artistName,proto3" json:"artistName"` // 艺人姓名 + PendingVideoCount int32 `protobuf:"varint,4,opt,name=pendingVideoCount,proto3" json:"pendingVideoCount"` // 待发视频数量 + PendingPostCount int32 `protobuf:"varint,5,opt,name=pendingPostCount,proto3" json:"pendingPostCount"` // 待发图文数量 + PendingDataCount int32 `protobuf:"varint,6,opt,name=pendingDataCount,proto3" json:"pendingDataCount"` // 待发数据数量 + ProgressTaskCount int32 `protobuf:"varint,7,opt,name=progressTaskCount,proto3" json:"progressTaskCount"` // 进行中任务数量 + CompleteTaskCount int32 `protobuf:"varint,8,opt,name=completeTaskCount,proto3" json:"completeTaskCount"` // 已完成任务数量 + LastTaskAssignee string `protobuf:"bytes,9,opt,name=lastTaskAssignee,proto3" json:"lastTaskAssignee"` // 最后一次任务指派人 + TaskAssigneeNum string `protobuf:"bytes,10,opt,name=taskAssigneeNum,proto3" json:"taskAssigneeNum"` // 任务指派人账号 } func (x *TaskManagementInfo) Reset() { @@ -8166,16 +8166,16 @@ type TaskAssignRequest struct { 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"` // 指派数据数 + SubNum string `protobuf:"bytes,1,opt,name=subNum,proto3" json:"subNum"` // 艺人编号 + TelNum string `protobuf:"bytes,2,opt,name=telNum,proto3" json:"telNum"` // 艺人手机号 + ArtistName string `protobuf:"bytes,3,opt,name=artistName,proto3" json:"artistName"` // 艺人姓名 + TaskAssignee string `protobuf:"bytes,4,opt,name=taskAssignee,proto3" json:"taskAssignee"` // 任务指派人 + TaskAssigneeNum string `protobuf:"bytes,5,opt,name=taskAssigneeNum,proto3" json:"taskAssigneeNum"` // 任务指派人账号 + Operator string `protobuf:"bytes,6,opt,name=operator,proto3" json:"operator"` // 操作人 + OperatorNum string `protobuf:"bytes,7,opt,name=operatorNum,proto3" json:"operatorNum"` // 操作人账号 + AssignVideoCount int32 `protobuf:"varint,8,opt,name=assignVideoCount,proto3" json:"assignVideoCount"` // 指派视频数 + AssignPostCount int32 `protobuf:"varint,9,opt,name=assignPostCount,proto3" json:"assignPostCount"` // 指派图文数 + AssignDataCount int32 `protobuf:"varint,10,opt,name=assignDataCount,proto3" json:"assignDataCount"` // 指派数据数 } func (x *TaskAssignRequest) Reset() { @@ -8286,14 +8286,14 @@ type UpdatePendingCountRequest struct { 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"` // 操作人账号 + SubNum string `protobuf:"bytes,1,opt,name=subNum,proto3" json:"subNum"` // 艺人编号 + TelNum string `protobuf:"bytes,2,opt,name=telNum,proto3" json:"telNum"` // 艺人手机号 + ArtistName string `protobuf:"bytes,3,opt,name=artistName,proto3" json:"artistName"` // 艺人姓名 + PendingVideoCount int32 `protobuf:"varint,4,opt,name=pendingVideoCount,proto3" json:"pendingVideoCount"` // 待发视频数量 + PendingPostCount int32 `protobuf:"varint,5,opt,name=pendingPostCount,proto3" json:"pendingPostCount"` // 待发图文数量 + PendingDataCount int32 `protobuf:"varint,6,opt,name=pendingDataCount,proto3" json:"pendingDataCount"` // 待发数据数量 + Operator string `protobuf:"bytes,7,opt,name=operator,proto3" json:"operator"` // 操作人 + OperatorNum string `protobuf:"bytes,8,opt,name=operatorNum,proto3" json:"operatorNum"` // 操作人账号 } func (x *UpdatePendingCountRequest) Reset() { @@ -8390,7 +8390,7 @@ type RecentAssignRecordsRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Limit int32 `protobuf:"varint,1,opt,name=limit,proto3" json:"limit,omitempty"` // 查询数量限制 + Limit int32 `protobuf:"varint,1,opt,name=limit,proto3" json:"limit"` // 查询数量限制 } func (x *RecentAssignRecordsRequest) Reset() { @@ -8437,7 +8437,7 @@ type RecentAssignRecordsResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - OperatorList []string `protobuf:"bytes,1,rep,name=operatorList,proto3" json:"operatorList,omitempty"` + OperatorList []string `protobuf:"bytes,1,rep,name=operatorList,proto3" json:"operatorList"` } func (x *RecentAssignRecordsResponse) Reset() { @@ -8485,17 +8485,17 @@ type EmployeeTaskQueryRequest struct { 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"` // 每页数量 + TaskAssigneeNum string `protobuf:"bytes,1,opt,name=taskAssigneeNum,proto3" json:"taskAssigneeNum"` // 被指派人账号 + Keyword string `protobuf:"bytes,2,opt,name=keyword,proto3" json:"keyword"` // 艺人姓名、编号、手机号搜索关键词 + Operator string `protobuf:"bytes,3,opt,name=operator,proto3" json:"operator"` // 操作人 + SortBy string `protobuf:"bytes,4,opt,name=sortBy,proto3" json:"sortBy"` // 排序字段 + StartTime string `protobuf:"bytes,5,opt,name=startTime,proto3" json:"startTime"` // 指派开始时间 + EndTime string `protobuf:"bytes,6,opt,name=endTime,proto3" json:"endTime"` // 指派结束时间 + StartCompleteTime string `protobuf:"bytes,7,opt,name=startCompleteTime,proto3" json:"startCompleteTime"` // 开始完成时间 + EndCompleteTime string `protobuf:"bytes,8,opt,name=endCompleteTime,proto3" json:"endCompleteTime"` // 结束完成时间 + Status int32 `protobuf:"varint,9,opt,name=status,proto3" json:"status"` // 反馈完成状态 + Page int32 `protobuf:"varint,10,opt,name=page,proto3" json:"page"` // 页码 + PageSize int32 `protobuf:"varint,11,opt,name=pageSize,proto3" json:"pageSize"` // 每页数量 } func (x *EmployeeTaskQueryRequest) Reset() { @@ -8612,10 +8612,10 @@ type EmployeeTaskQueryResponse struct { 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"` + Records []*TaskAssignRecordInfo `protobuf:"bytes,1,rep,name=records,proto3" json:"records"` + 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"` } func (x *EmployeeTaskQueryResponse) Reset() { @@ -8684,23 +8684,23 @@ type TaskAssignRecordInfo struct { 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"` // 更新时间 + AssignRecordsUUID string `protobuf:"bytes,1,opt,name=assignRecordsUUID,proto3" json:"assignRecordsUUID"` // 指派记录UUID + SubNum string `protobuf:"bytes,2,opt,name=subNum,proto3" json:"subNum"` // 艺人编号 + TelNum string `protobuf:"bytes,3,opt,name=telNum,proto3" json:"telNum"` // 艺人手机号 + ArtistName string `protobuf:"bytes,4,opt,name=artistName,proto3" json:"artistName"` // 艺人姓名 + Status int32 `protobuf:"varint,5,opt,name=status,proto3" json:"status"` // 反馈完成状态 + ActualStatus int32 `protobuf:"varint,6,opt,name=actualStatus,proto3" json:"actualStatus"` // 实际完成状态 + CompleteTime string `protobuf:"bytes,7,opt,name=completeTime,proto3" json:"completeTime"` // 反馈完成时间 + OperatorType int32 `protobuf:"varint,8,opt,name=operatorType,proto3" json:"operatorType"` // 操作类型 + Operator string `protobuf:"bytes,9,opt,name=operator,proto3" json:"operator"` // 操作人 + OperatorNum string `protobuf:"bytes,10,opt,name=operatorNum,proto3" json:"operatorNum"` // 操作人账号 + OperatorTime string `protobuf:"bytes,11,opt,name=operatorTime,proto3" json:"operatorTime"` // 操作时间 + TaskAssignee string `protobuf:"bytes,12,opt,name=taskAssignee,proto3" json:"taskAssignee"` // 任务指派人 + TaskAssigneeNum string `protobuf:"bytes,13,opt,name=taskAssigneeNum,proto3" json:"taskAssigneeNum"` // 任务指派人账号 + PendingVideoCount int32 `protobuf:"varint,14,opt,name=pendingVideoCount,proto3" json:"pendingVideoCount"` // 待发视频数量 + PendingPostCount int32 `protobuf:"varint,15,opt,name=pendingPostCount,proto3" json:"pendingPostCount"` // 待发图文数量 + PendingDataCount int32 `protobuf:"varint,16,opt,name=pendingDataCount,proto3" json:"pendingDataCount"` // 待发数据数量 + UpdatedAt string `protobuf:"bytes,17,opt,name=updatedAt,proto3" json:"updatedAt"` // 更新时间 } func (x *TaskAssignRecordInfo) Reset() { @@ -8860,8 +8860,8 @@ type CompleteTaskManuallyRequest struct { 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"` // 被指派完成该任务人的账号 + AssignRecordsUUID string `protobuf:"bytes,1,opt,name=assignRecordsUUID,proto3" json:"assignRecordsUUID"` // 指派记录UUID + TaskAssigneeNum string `protobuf:"bytes,2,opt,name=taskAssigneeNum,proto3" json:"taskAssigneeNum"` // 被指派完成该任务人的账号 } func (x *CompleteTaskManuallyRequest) Reset() { @@ -8916,11 +8916,11 @@ type UpdateTaskProgressRequest struct { 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"` // 完成数量 + AssignRecordsUUID string `protobuf:"bytes,1,opt,name=assignRecordsUUID,proto3" json:"assignRecordsUUID"` // 指派记录UUID(可选) + EmployeeName string `protobuf:"bytes,2,opt,name=employeeName,proto3" json:"employeeName"` // 员工姓名(必要) + EmployeeNum string `protobuf:"bytes,3,opt,name=employeeNum,proto3" json:"employeeNum"` // 员工工号(必要) + TaskType string `protobuf:"bytes,4,opt,name=taskType,proto3" json:"taskType"` // 任务类型: video/post/data + CompleteCount int32 `protobuf:"varint,5,opt,name=completeCount,proto3" json:"completeCount"` // 完成数量 } func (x *UpdateTaskProgressRequest) Reset() { @@ -8996,16 +8996,16 @@ type TaskAssignRecordsQueryRequest struct { 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"` // 每页数量 + Keyword string `protobuf:"bytes,1,opt,name=keyword,proto3" json:"keyword"` // 艺人姓名、编号、手机号搜索关键词 + TaskAssignee string `protobuf:"bytes,2,opt,name=taskAssignee,proto3" json:"taskAssignee"` // 指派人姓名 + Operator string `protobuf:"bytes,3,opt,name=operator,proto3" json:"operator"` // 操作人姓名 + OperatorNum string `protobuf:"bytes,4,opt,name=operatorNum,proto3" json:"operatorNum"` // 操作人手机号 + StartTime string `protobuf:"bytes,5,opt,name=startTime,proto3" json:"startTime"` // 操作开始时间 + EndTime string `protobuf:"bytes,6,opt,name=endTime,proto3" json:"endTime"` // 操作结束时间 + Status int32 `protobuf:"varint,7,opt,name=status,proto3" json:"status"` // 反馈完成状态 + ActualStatus int32 `protobuf:"varint,8,opt,name=actualStatus,proto3" json:"actualStatus"` // 实际完成状态 + Page int32 `protobuf:"varint,9,opt,name=page,proto3" json:"page"` // 页码 + PageSize int32 `protobuf:"varint,10,opt,name=pageSize,proto3" json:"pageSize"` // 每页数量 } func (x *TaskAssignRecordsQueryRequest) Reset() { @@ -9115,10 +9115,10 @@ type TaskAssignRecordsQueryResponse struct { 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"` + Records []*TaskAssignRecordInfo `protobuf:"bytes,1,rep,name=records,proto3" json:"records"` + 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"` } func (x *TaskAssignRecordsQueryResponse) Reset() { @@ -9187,8 +9187,8 @@ type ArtistBundleBalanceRequest struct { 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"` // 艺人手机号(备选) + CustomerNum string `protobuf:"bytes,1,opt,name=customerNum,proto3" json:"customerNum"` // 艺人编号(推荐使用) + TelNum string `protobuf:"bytes,2,opt,name=telNum,proto3" json:"telNum"` // 艺人手机号(备选) } func (x *ArtistBundleBalanceRequest) Reset() { @@ -9243,9 +9243,22 @@ type ArtistBundleBalanceResponse struct { 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"` // 剩余数据分析数量 + // 套餐类型 - 任务余额(视频/图文/数据分析) + BundleVideoBalance int32 `protobuf:"varint,1,opt,name=bundleVideoBalance,proto3" json:"bundleVideoBalance"` // 套餐类型视频余额 + BundleImageBalance int32 `protobuf:"varint,2,opt,name=bundleImageBalance,proto3" json:"bundleImageBalance"` // 套餐类型图文余额 + BundleDataAnalysisBalance int32 `protobuf:"varint,3,opt,name=bundleDataAnalysisBalance,proto3" json:"bundleDataAnalysisBalance"` // 套餐类型数据分析余额 + // 增值类型 - 任务余额(视频/图文/数据分析) + IncreaseVideoBalance int32 `protobuf:"varint,4,opt,name=increaseVideoBalance,proto3" json:"increaseVideoBalance"` // 增值类型视频余额 + IncreaseImageBalance int32 `protobuf:"varint,5,opt,name=increaseImageBalance,proto3" json:"increaseImageBalance"` // 增值类型图文余额 + IncreaseDataAnalysisBalance int32 `protobuf:"varint,6,opt,name=increaseDataAnalysisBalance,proto3" json:"increaseDataAnalysisBalance"` // 增值类型数据分析余额 + // 套餐类型 - 待发数量(视频/图文/数据分析) + BundlePendingVideoCount int32 `protobuf:"varint,7,opt,name=bundlePendingVideoCount,proto3" json:"bundlePendingVideoCount"` // 套餐类型待发视频数量 + BundlePendingImageCount int32 `protobuf:"varint,8,opt,name=bundlePendingImageCount,proto3" json:"bundlePendingImageCount"` // 套餐类型待发图文数量 + BundlePendingDataAnalysisCount int32 `protobuf:"varint,9,opt,name=bundlePendingDataAnalysisCount,proto3" json:"bundlePendingDataAnalysisCount"` // 套餐类型待发数据分析数量 + // 增值类型 - 待发数量(视频/图文/数据分析) + IncreasePendingVideoCount int32 `protobuf:"varint,10,opt,name=increasePendingVideoCount,proto3" json:"increasePendingVideoCount"` // 增值类型待发视频数量 + IncreasePendingImageCount int32 `protobuf:"varint,11,opt,name=increasePendingImageCount,proto3" json:"increasePendingImageCount"` // 增值类型待发图文数量 + IncreasePendingDataAnalysisCount int32 `protobuf:"varint,12,opt,name=increasePendingDataAnalysisCount,proto3" json:"increasePendingDataAnalysisCount"` // 增值类型待发数据分析数量 } func (x *ArtistBundleBalanceResponse) Reset() { @@ -9280,23 +9293,86 @@ func (*ArtistBundleBalanceResponse) Descriptor() ([]byte, []int) { return file_pb_bundle_proto_rawDescGZIP(), []int{103} } -func (x *ArtistBundleBalanceResponse) GetRemainingVideoCount() int32 { +func (x *ArtistBundleBalanceResponse) GetBundleVideoBalance() int32 { if x != nil { - return x.RemainingVideoCount + return x.BundleVideoBalance } return 0 } -func (x *ArtistBundleBalanceResponse) GetRemainingImageCount() int32 { +func (x *ArtistBundleBalanceResponse) GetBundleImageBalance() int32 { if x != nil { - return x.RemainingImageCount + return x.BundleImageBalance } return 0 } -func (x *ArtistBundleBalanceResponse) GetRemainingDataAnalysisCount() int32 { +func (x *ArtistBundleBalanceResponse) GetBundleDataAnalysisBalance() int32 { if x != nil { - return x.RemainingDataAnalysisCount + return x.BundleDataAnalysisBalance + } + return 0 +} + +func (x *ArtistBundleBalanceResponse) GetIncreaseVideoBalance() int32 { + if x != nil { + return x.IncreaseVideoBalance + } + return 0 +} + +func (x *ArtistBundleBalanceResponse) GetIncreaseImageBalance() int32 { + if x != nil { + return x.IncreaseImageBalance + } + return 0 +} + +func (x *ArtistBundleBalanceResponse) GetIncreaseDataAnalysisBalance() int32 { + if x != nil { + return x.IncreaseDataAnalysisBalance + } + return 0 +} + +func (x *ArtistBundleBalanceResponse) GetBundlePendingVideoCount() int32 { + if x != nil { + return x.BundlePendingVideoCount + } + return 0 +} + +func (x *ArtistBundleBalanceResponse) GetBundlePendingImageCount() int32 { + if x != nil { + return x.BundlePendingImageCount + } + return 0 +} + +func (x *ArtistBundleBalanceResponse) GetBundlePendingDataAnalysisCount() int32 { + if x != nil { + return x.BundlePendingDataAnalysisCount + } + return 0 +} + +func (x *ArtistBundleBalanceResponse) GetIncreasePendingVideoCount() int32 { + if x != nil { + return x.IncreasePendingVideoCount + } + return 0 +} + +func (x *ArtistBundleBalanceResponse) GetIncreasePendingImageCount() int32 { + if x != nil { + return x.IncreasePendingImageCount + } + return 0 +} + +func (x *ArtistBundleBalanceResponse) GetIncreasePendingDataAnalysisCount() int32 { + if x != nil { + return x.IncreasePendingDataAnalysisCount } return 0 } @@ -10601,272 +10677,591 @@ var file_pb_bundle_proto_rawDesc = []byte{ 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, - 0x32, 0x86, 0x21, 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, + 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, 0x11, 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, 0xe9, 0x05, 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, 0x2e, 0x0a, 0x12, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x69, 0x64, + 0x65, 0x6f, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6d, 0x61, + 0x67, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x3c, 0x0a, 0x19, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x42, + 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x19, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, + 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x32, 0x0a, 0x14, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, + 0x69, 0x64, 0x65, 0x6f, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x32, 0x0a, 0x14, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x42, 0x61, 0x6c, 0x61, + 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x61, 0x73, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, + 0x40, 0x0a, 0x1b, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, + 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x1b, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x44, 0x61, + 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, + 0x65, 0x12, 0x38, 0x0a, 0x17, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x65, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x17, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x38, 0x0a, 0x17, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x6d, 0x61, 0x67, + 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x17, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x6d, 0x61, 0x67, 0x65, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x1e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, + 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, + 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1e, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, + 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3c, 0x0a, + 0x19, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x19, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3c, 0x0a, 0x19, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x6d, + 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x19, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x49, + 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x20, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x61, 0x73, 0x65, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, + 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x20, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x50, 0x65, 0x6e, + 0x64, 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, 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, + 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, 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, + 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, 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, 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x2f, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 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 ( diff --git a/pb/bundle/bundle_triple.pb.go b/pb/bundle/bundle_triple.pb.go index eaf46d2..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.8 -// - protoc v3.12.4 +// - protoc v3.21.1 // source: pb/bundle.proto package bundle @@ -50,7 +50,7 @@ type BundleClient interface { OrderRecordsListV2(ctx context.Context, in *OrderRecordsRequestV2, opts ...grpc_go.CallOption) (*OrderRecordsResponseV2, common.ErrorWithAttachment) OrderListByOrderNo(ctx context.Context, in *OrderInfoByOrderNoRequest, opts ...grpc_go.CallOption) (*OrderInfoByOrderNoResp, common.ErrorWithAttachment) OnlyAddValueListByOrderNo(ctx context.Context, in *OnlyAddValueListByOrderNoRequest, opts ...grpc_go.CallOption) (*OnlyAddValueListByOrderNoResp, common.ErrorWithAttachment) - // 增值套餐 + // 增值套餐 CreateValueAddBundle(ctx context.Context, in *CreateValueAddBundleRequest, opts ...grpc_go.CallOption) (*CreateValueAddBundleResponse, common.ErrorWithAttachment) ValueAddBundleList(ctx context.Context, in *ValueAddBundleListRequest, opts ...grpc_go.CallOption) (*ValueAddBundleListResponse, common.ErrorWithAttachment) ValueAddBundleDetail(ctx context.Context, in *ValueAddBundleDetailRequest, opts ...grpc_go.CallOption) (*ValueAddBundleDetailResponse, common.ErrorWithAttachment)