syntax = "proto3";

package bundle;
option go_package = "./bundle";


import "pb/descriptor.proto";
import "pb/validator.proto";

service Bundle {
  rpc CreateBundle(BundleProfile) returns (CommonResponse) {}
  rpc UpdateBundle(BundleProfile) returns (CommonResponse) {}
  rpc DeleteBundle(DelBundleRequest) returns (CommonResponse) {}
  rpc HandShelf(HandShelfRequest) returns(CommonResponse) {} //更新套餐上下架状态
  rpc SaveBundle(BundleProfile)returns (SaveResponse) {}


  rpc BundleListV2(BundleListRequest) returns(BundleListResponse) {}
  rpc BundleDetailV2(BundleDetailRequest) returns(BundleDetailResponseV2) {}
  rpc BundleListH5V2(BundleListRequest) returns(BundleListResponse) {}
  rpc BundleLangDetailV2(BundleDetailRequest) returns(BundleProfileLang) {}




  rpc BundleList(BundleListRequest) returns (BundleListResponse) {}
  rpc BundleDetail(BundleDetailRequest) returns (BundleDetailResponse) {}

  rpc  CreateOrderRecord(OrderCreateRecord) returns (CommonResponse) {}
  rpc  UpdateOrderRecord(OrderRecord) returns (CommonResponse) {}
  rpc  UpdateOrderRecordByOrderNo(OrderRecord) returns (CommonResponse) {}
  rpc  OrderRecordsList(OrderRecordsRequest) returns (OrderRecordsResponse) {}
  rpc  OrderRecordsDetail(OrderRecordsDetailRequest) returns (OrderRecordsDetailResponse) {}
  rpc  UpdateFinancialConfirmationStatus(FinancialConfirmationRequest) returns (CommonResponse) {}
  rpc  CreateOrderAddRecord(OrderAddRecord) returns (CommonResponse) {}
  rpc  PackagePriceAndTime(OrderRecord) returns (PackagePriceAndTimeResponse) {}//计算套餐价格和有效时间
  rpc  OrderRecordsListV2(OrderRecordsRequestV2) returns (OrderRecordsResponseV2) {}
  rpc  OrderListByOrderNo(OrderInfoByOrderNoRequest) returns (OrderInfoByOrderNoResp) {}
  rpc  OnlyAddValueListByOrderNo(OnlyAddValueListByOrderNoRequest) returns (OnlyAddValueListByOrderNoResp) {} // 根据orderNo只查增值服务

  //增值套餐 
  rpc CreateValueAddBundle(CreateValueAddBundleRequest) returns (CreateValueAddBundleResponse) {}
  rpc ValueAddBundleList(ValueAddBundleListRequest) returns (ValueAddBundleListResponse) {}
  rpc ValueAddBundleDetail(ValueAddBundleDetailRequest) returns (ValueAddBundleDetailResponse) {}

  //新增值服务
  rpc SaveValueAddService(ValueAddServiceLang) returns (SaveResponse) {}
  rpc ValueAddServiceList(ValueAddServiceListRequest) returns (ValueAddServiceListResponse) {}
  rpc ValueAddServiceDetail(ValueAddServiceDetailRequest) returns (ValueAddServiceDetailResponse) {} 
  rpc ValueAddServiceLangByUuidAndLanguage(ValueAddServiceDetailRequest)returns (ValueAddServiceLang) {}
  rpc CalculatePrice(CalculatePriceRequest) returns (CalculatePriceResponse) {}
  rpc BatchGetValueAddServiceLang(BatchGetValueAddServiceLangRequest) returns (BatchGetValueAddServiceLangResponse) {}
  rpc DeleteValueAddService(DeleteValueAddServiceRequest) returns (CommonResponse) {}


  // 余量管理
  rpc BundleExtend(BundleExtendRequest) returns (BundleExtendResponse) {} // 套餐扩展
  rpc BundleExtendRecordsList(BundleExtendRecordsListRequest) returns (BundleExtendRecordsListResponse) {} // 套餐扩展记录查询
  rpc GetBundleBalanceList(GetBundleBalanceListReq) returns (GetBundleBalanceListResp) {} // 余量信息
  rpc GetBundleBalanceByUserId(GetBundleBalanceByUserIdReq) returns (GetBundleBalanceByUserIdResp) {} // 余量信息
  rpc CreateBundleBalance(CreateBundleBalanceReq) returns (CreateBundleBalanceResp) {} // 创建新的余量信息
  rpc AddBundleBalance(AddBundleBalanceReq) returns (AddBundleBalanceResp) {} // 修改余量信息

  // 使用记录
  rpc GetUsedRecordList(GetUsedRecordListReq) returns (GetUsedRecordListResp) {} // 获取套餐使用记录列表
  rpc GetImageWorkDetail(GetImageWorkDetailReq) returns (GetImageWorkDetailResp) {} // 获取图文作品详情
  rpc GetVedioWorkDetail(GetVedioWorkDetailReq) returns (GetVedioeWorkDetailResp) {} // 获取视频作品详情

  rpc ToBeComfirmedWorks(ToBeComfirmedWorksReq) returns (ToBeComfirmedWorksResp) {} // 待确认作品列表
  rpc ConfirmWork(ConfirmWorkReq) returns (ConfirmWorkResp) {} // 确认作品

  //对账单
  rpc GetReconciliationList(GetReconciliationListReq) returns (GetReconciliationListResp) {} // 获取对账单列表
  rpc CreateReconciliation(ReconciliationInfo) returns (CommonResponse) {} // 创建对账单
  rpc UpdateReconciliation(ReconciliationInfo) returns (CommonResponse) {} // 更新对账单
  rpc UpdateReconciliationStatusBySerialNumber(UpdateStatusAndPayTimeBySerialNumber) returns (CommonResponse) {} // 更新对账单
}
message DeleteValueAddServiceRequest{
  string orderNo = 1;
  uint64 userID = 2;
}
message GetReconciliationListReq{
  string userName = 1;
  string bundleName = 2;
  int32 payStatus = 3;
  int32 payChannel = 4;
  string bundleOrderOn = 5;
  string createdStart = 6;
  string createdEnd = 7;
  string payTimeStart = 8;
  string payTimeEnd = 9;
  string serialNumber = 10;
  int32 page = 11;
  int32 pageSize = 12;
  repeated uint64 userIDS = 13;
  string bundleAddOrderOn = 14;
}
message GetReconciliationListResp{
  repeated ReconciliationInfo list = 1;
  int64 total = 2;
  int32 page = 3;
  int32 pageSize = 4;
}
message ReconciliationInfo{
  uint64 ID = 1;
  string bundleOrderOn = 2;
  string bundleAddOrderOn = 3;
  string CreationTime = 4;
  string userName = 5;
  string userTel = 6;
  string bundleName = 7;
  float payAmount = 8;
  int32 currencyType = 9;
  int32 payChannel = 10;
  string payTime = 11;
  int32 payStatus = 12;
  string serialNumber = 13;
  uint64 userID = 14;
}
message OrderInfoByOrderNoRequest{
  string orderNo = 1;
}
message OrderInfoByOrderNoResp{
  int32 type = 1;
  uint64 userId = 2;
  string orderUUID = 3;
  int32 accountNumber = 4;
  int32 videoNumber = 5;
  int32 imageNumber = 6;
  int32 dataNumber = 7;
  int32 duration = 8;
  string unit = 9;
  string userName = 10;
}

message OrderCreateRecord{
  string bundleUuid = 1 [json_name = "bundleUuid"];
  string language = 2 [json_name = "language"];
  string expirationTime = 3 [json_name = "expirationTime"];
  string bundleName = 4 [json_name = "bundleName"];
  string customerID = 5 [json_name = "customerID"];
  string customerNum = 6 [json_name = "customerNum"];
  string customerName = 7 [json_name = "customerName"];
  float  amount = 8 [json_name = "amount"];
  int64  amountType = 9 [json_name = "amountType"];
  string signContract = 10 [json_name = "signContract"];
  string signature = 11 [json_name = "signature"];
  string signedTime = 12 [json_name = "signedTime"];
  int64 status = 13 [json_name = "status"];
  string payTime = 14 [json_name = "payTime"];
  string contractNo = 15 [json_name = "contractNo"];
  float totalAmount = 16 [json_name = "totalAmount"]; //总金额
  string bundleCommonUid = 17 [json_name = "bundleCommonUid"];
  string snapshot = 18 [json_name = "snapshot"];
  int32 payType = 19 [json_name = "payType"];
  repeated OrderCreateAddRecord addRecords = 20 [json_name = "addRecords"]; //增值服务
}
message OrderCreateAddRecord{
  int32 serviceType = 1 [json_name = "serviceType"];
  string valueUid = 2 [json_name = "valueUid"];
  int64 currencyType = 3 [json_name = "currencyType"];
  float amount = 4 [json_name = "amount"];
  int32 num = 5 [json_name = "num"];
  string unit = 6 [json_name = "unit"];
  int32 source = 7 [json_name = "source"];
  int32 paymentStatus = 8 [json_name = "paymentStatus"];
}
message OrderRecordsRequestV2{
  string customerName = 1;
  string telNum = 2;
  string bundleName = 3;
  int32 payStatus = 4;
  int32 addPayStatus = 5;
  string orderNo = 6;
  string orderAddNo = 7;
  string bundleCreateAtStart = 8;
  string bundleCreateAtEnd = 9;
  string orderAddCreateAtStart = 10;
  string orderAddCreateAtEnd = 11;
  int32 page = 12;
  int32 pageSize = 13;
  repeated int64 userIds = 14;
}
message OrderRecordsResponseV2{
  repeated OrderBundleRecordInfo bundleInfo = 1;
  int32 page = 2;
  int32 pageSize = 3;
  int32 total = 4;
}
message OrderBundleRecordInfo{
  string orderNo = 1;
  string bundleName = 2;
  int32 payStatus = 3;
  string telNum = 4;
  string customerName = 5;
  string bundleCreateAt = 6;
  float amount = 7;
  repeated OrderAddBundleRecordInfo addBundleInfo = 8;
  int64 customerId = 9;
}
message OrderAddBundleRecordInfo{
  string orderAddNo = 1;
  float amount = 2;
  float settlementAmount = 3;
  int32 currencyType = 4;
  float handlingFee = 5;
  float exchangeRate = 6;
  string orderAddCreateAt = 7;
  int32 addPayStatus = 8;
  string contract = 9;
  string snapshot = 10;
  string CheckoutSessionId = 11;
  string CustomerID = 12;
}
message PackagePriceAndTimeResponse{
  float price = 1 [json_name = "price"];
  string time = 2 [json_name = "time"];
}

message CommonResponse {
  string msg = 1 [json_name = "msg"];
  string uuid = 2 [json_name = "uuid"];
  string orderNo = 3 [json_name = "orderNo"];
}

message BundleProfile {
  string uuid = 1 [json_name = "uuid"];
  string name = 2 [json_name = "name"];
  float  price = 3 [json_name = "price"];
  int64  priceType = 4 [json_name = "priceType"];
  string content = 5 [json_name = "content"];
  string contract = 6 [json_name = "contract"];
  string language = 7 [json_name = "language"];
  string createdAt = 8 [json_name = "createdAt"];
  string updatedAt = 9 [json_name = "updatedAt"];
  string companySign = 10 [json_name = "companySign"];
  int64  contractDuration = 11 [json_name = "contractDuration"];
  string bundleCommonUid = 12 [json_name = "bundleCommonUid"];
  int64 sort = 13 [json_name = "sort"];
  string bgImg1 = 14 [json_name = "bgImg1"];
  string bgImg2 = 15 [json_name = "bgImg2"];
  int64 shelfStatus = 16 [json_name = "shelfStatus"]; // 1 上架 2 下架
  repeated SelectValueAddService selectValueAddService = 17 [json_name = "SelectValueAddService"];
  repeated BundleProfileLang bundleProfileLang = 18 [json_name = "bundleProfileLang"];
  int32 imgOption = 19 [json_name = "imgOption"];
  string fontColor = 20 [json_name = "fontColor"];
}
message BundleProfileLang {
  string uuid = 1 [json_name = "uuid"];
  string name = 2 [json_name = "name"];
  float  price = 3 [json_name = "price"];
  int64  priceType = 4 [json_name = "priceType"];
  string content = 5 [json_name = "content"];
  string language = 6 [json_name = "language"];
  string createdAt = 7 [json_name = "createdAt"];
  string updatedAt = 8 [json_name = "updatedAt"];
  string contract = 9 [json_name = "contract"];
  string companySign = 10 [json_name = "companySign"];
  int64  contractDuration = 11 [json_name = "contractDuration"];
  string fontColor = 12 [json_name = "fontColor"];
  int64 sort = 13 [json_name = "sort"];
  string bgImg1 = 14 [json_name = "bgImg1"];
  string bgImg2 = 15 [json_name = "bgImg2"];
  int64 shelfStatus = 16 [json_name = "shelfStatus"]; // 1 上架 2 下架
  int32 imgOption = 17 [json_name = "imgOption"];
  //repeated ValueAddServiceLang valueAddServiceLang = 12 [json_name = "ValueAddServiceLang"];
}
message SaveResponse {
  string msg = 1 [json_name = "msg"];
  string uuid = 2 [json_name = "uuid"];
  int64 cancelNum = 3 [json_name = "cancelNum"];
}
message SelectValueAddService {
	string valueAddUuid = 1 [json_name = "valueAddUuid"];
  string serviceName= 2 [json_name = "serviceName"];
  bool isDisplay = 3 [json_name = "isDisplay"];
  int32 serviceType = 4 [json_name = "serviceType"];

}
message DelBundleRequest {
  string uuid = 1 [json_name = "uuid"];
}

message BundleListRequest {
  int32 page = 1 [json_name = "page"];
  int32 pageSize = 2 [json_name = "pageSize"];
  string name = 3 [json_name = "name"];
  string content = 4 [json_name = "content"];
  string language = 5 [json_name = "language"];
}

message BundleListResponse {
  repeated BundleProfile bundles = 1 [json_name = "bundles"];
  int32 total = 2 [json_name = "total"];
}

message BundleDetailRequest {
  string uuid = 1 [json_name = "uuid"];
  string language = 2 [json_name = "language"]; //语言 默认zh-CN,   zh-CN zh-TW EN de-DE js-JP
}
message HandShelfRequest {
  string uuid = 1 [json_name = "uuid"];
  int64 shelfStatus = 2 [json_name = "shelfStatus"]; // 1 上架 2 下架
}
message BundleDetailResponse {
  BundleProfile bundle = 1 [json_name = "bundle"];
  string msg = 2 [json_name = "msg"];
}
message BundleDetailResponseV2{
  BundleProfile bundle = 1 [json_name = "bundle"];
  string msg =2 [json_name = "msg"];
}
message OrderRecord {
  string uuid = 1 [json_name = "uuid"];
  string bundleUuid = 2 [json_name = "bundleUuid"];
  string customerID = 3 [json_name = "customerID"];
  string customerNum = 4 [json_name = "customerNum"];
  string customerName = 5 [json_name = "customerName"];
  float  amount = 6 [json_name = "amount"];
  int64  amountType = 7 [json_name = "amountType"];
  string signContract = 8 [json_name = "signContract"];
  string signature = 9 [json_name = "signature"];
  string signedTime = 10 [json_name = "signedTime"];
  int64 payType = 11 [json_name = "payType"];
  string payTime = 12 [json_name = "payTime"];
  string checkoutSessionId = 13 [json_name = "checkoutSessionId"];
  string checkoutSessionUrl = 14 [json_name = "checkoutSessionUrl"];
  int64 status = 15 [json_name = "status"];
  string orderNo = 16 [json_name = "orderNo"];
  string bundleName = 17 [json_name = "bundleName"];
  string contractNo = 18 [json_name = "contractNo"];
	string valueAddBundleUuid= 19 [json_name= "valueAddBundleUuid"];   //增值套餐UUID
  float valueAddBundleAmount = 20 [json_name = "valueAddBundleAmount"]; //增值套餐金额
  float valueAddOriginalPrice= 21 [json_name= "valueAddOriginalPrice"];   //原单价
  float valueAddDiscountPrice= 22 [json_name= "valueAddDiscountPrice"];   //优惠单价
  float valueAddSavedAmount= 23 [json_name= "valueAddSavedAmount"];   //节省金额
  int32 num = 24 [json_name = "num"];
  float totalAmount = 25 [json_name = "totalAmount"]; //总金额
  string sex = 26 [json_name = "sex"];
  string nationality = 27 [json_name = "nationality"];
  string certificatePicture = 28 [json_name = "certificatePicture"];
  string placeOfResidence = 29 [json_name = "placeOfResidence"];
  string groupPhoto = 30 [json_name = "groupPhoto"];
  string bundleCommonUid = 31 [json_name = "bundleCommonUid"];
  string addBundleCommonUid = 32 [json_name = "addBundleCommonUid"];
  int32 financialConfirmation = 33 [json_name = "financialConfirmation"];
  string telNum = 34 [json_name = "telNum"];
  string language = 35 [json_name = "language"];
  repeated PriceOptionsInfo priceOptionsInfo = 36 [json_name = "priceOptionsInfo"];
  string expirationTime = 37 [json_name = "expirationTime"];
  string snapshot = 38 [json_name = "snapshot"];
  repeated AddInfo addInfos = 39 [json_name = "addInfos"];
}
message AddInfo{
  string orderNo = 1 [json_name = "orderNo"];
  int32 num = 2 [json_name = "num"];
  string valueAddUUID = 3 [json_name = "valueAddUUID"];
}

message OrderAddRecord{
  string bundleUuid = 1 [json_name = "bundleUuid"];
  repeated AddPriceOptionsInfo addPriceOptionsList = 2 [json_name = "addPriceOptionsList"];
  string language = 3 [json_name = "language"];
  string customerID = 4 [json_name = "customerID"];
  string customerNum = 5 [json_name = "customerNum"];
  string customerName = 6 [json_name = "customerName"];
//  string valueAddUUID = 12 [json_name = "valueAddUUID"];
  int32 source = 7 [json_name = "source"];
  string signContract = 8 [json_name = "signContract"];
  string signature = 9 [json_name = "signature"];
  string signedTime = 10 [json_name = "signedTime"];
  string expirationDate = 11 [json_name = "expirationDate"];
  string snapshot = 38 [json_name = "snapshot"];
  string orderUUID = 39 [json_name = "orderUUID"];
}
message AddPriceOptionsInfo {
  int32 id = 1 [json_name = "id"];
  string valueUid = 2 [json_name = "valueUid"];
  int32 serviceType = 3 [json_name = "serviceType"];
  int64 currencyType = 4 [json_name = "currencyType"];
  float amount = 5 [json_name = "amount"];
  int32 num = 6 [json_name = "num"];
  string unit = 7 [json_name = "unit"];
}
message PriceOptionsInfo {
  int32 id = 1 [json_name = "id"];
  string valueUid = 2 [json_name = "valueUid"];
  int32 num = 3 [json_name = "num"];
}
message OrderRecordsRequest {
  int32 page = 1 [json_name = "page"];
  int32 pageSize = 2 [json_name = "pageSize"];
  string customerNum = 3 [json_name = "customerNum"];
  string customerName = 4 [json_name = "customerName"];
  string bundleUUID = 5 [json_name = "bundleUUID"];
  string orderNo = 6 [json_name = "orderNo"];
  int64  status = 7 [json_name = "status"];
  string bundleName = 8 [json_name = "bundleName"];
  string startSignedTime = 9 [json_name = "startSignedTime"];
  string endSignedTime = 10 [json_name = "endSignedTime"];
  string startPayTime = 11 [json_name = "startPayTime"];
  string endPayTime = 12 [json_name = "endPayTime"];
  string customerID = 13 [json_name = "customerID"];
  int64 isHaveValueAdd = 14 [json_name = "isHaveValueAdd"];//有无增值选项
  int32 financialConfirmation = 15 [json_name = "financialConfirmation"];
  string telNum = 16 [json_name = "telNum"];
}

message OrderRecordsResponse {
  repeated OrderRecord orderRecords = 1 [json_name = "orderRecords"];
  int32 total = 2 [json_name = "total"];
}

message OrderRecordsDetailRequest {
  string uuid = 1 [json_name = "uuid"];
  string orderNo = 2 [json_name = "orderNo"];
  string customerID = 3 [json_name = "customerID"];
  string bundleUUID = 4 [json_name = "bundleUUID"];
}

message OrderRecordsDetailResponse {
  OrderRecord orderRecord = 1 [json_name = "orderRecord"];
  string msg = 2 [json_name = "msg"];
}



// 增值套餐
message ValueAddBundleProfile {
  string uuid = 1 [json_name = "uuid"];
  int32 num = 2 [json_name = "num"];
  float originalPrice = 3 [json_name = "originalPrice"];
  float discountPrice = 4 [json_name = "discountPrice"];
  float totalPrice = 6 [json_name = "totalPrice"];
  float savedAmount = 7 [json_name = "savedAmount"];
  bool discountPriceStatus = 8 [json_name = "discountPriceStatus"];
  bool choose = 9 [json_name = "choose"];
  bool status = 10 [json_name = "status"];
  string addBundleCommonUid = 11 [json_name = "addBundleCommonUid"];
}

message CreateValueAddBundleRequest {
  int32 num = 1 [json_name = "num",(validator.field) = {int_gt: 29, int_lt:101, human_error: "至少数为30,最多数为100"}];
}

message CreateValueAddBundleResponse {
  string uuid = 1 [json_name = "uuid"];
  float totalPrice = 2 [json_name = "totalPrice"];
  float savedAmount = 3 [json_name = "savedAmount"];
  string msg = 4 [json_name = "msg"];
}

// 增值套餐列表请求
message ValueAddBundleListRequest {
  int32 userId = 1 [json_name = "userId"];
  string bundleUuid = 2 [json_name = "bundleUuid"];
  int32 priceType = 3 [json_name = "priceType"];
}

message ValueAddBundleListResponse {
  float originalPrice = 1 [json_name = "originalPrice"];
  int32 total = 2 [json_name = "total"];
  repeated ValueAddBundleProfile data = 3 [json_name = "data"];
  bool status = 4 [json_name = "status"];
  int32 num = 5 [json_name = "num"];
  float price = 6 [json_name = "price"];
  bool orderNo = 7 [json_name = "orderNo"];
  string msg = 8 [json_name = "msg"];
}

message ValueAddBundleDetailRequest {
  string uuid = 1 [json_name = "uuid"];
}

message ValueAddBundleDetailResponse {
  ValueAddBundleProfile data = 1 [json_name = "data"];
  string payTime = 2 [json_name = "payTime"];
  string msg = 3 [json_name = "msg"];
}

message FinancialConfirmationRequest {
  string orderNo = 1 [json_name = "orderNo"];
}

// ****************************************************新增值服务***********************
//增值服务
message ValueAddService {
  string uuid = 1 [json_name = "uuid"];
  string serviceName = 2 [json_name = "serviceName"]; //服务名称
  int32 serviceType = 3 [json_name = "serviceType"];
  repeated ValueAddServiceLang serviceLang = 4 [json_name = "serviceLang"];
}
message ValueAddServiceLang {
  string uuid = 1 [json_name = "uuid"];
  string serviceName = 2 [json_name = "serviceName"]; //服务名称
  int32 serviceType = 3 [json_name = "serviceType"];
  int32 priceMode = 4 [json_name = "priceMode"];
  string originalPrice = 5 [json_name = "originalPrice"];
  string unit = 6 [json_name = "unit"];
  int64  priceType = 7 [json_name = "priceType"];
  string language = 8 [json_name = "language"];
  string createdAt = 9 [json_name = "createdAt"];
  string updatedAt = 10 [json_name = "updatedAt"];
  repeated ValueAddPriceOptions options  = 12 [json_name = "options"];
}
//增值服务价格选项
message ValueAddPriceOptions {
 int64 id = 1 [json_name = "id"];
 int32 num = 2 [json_name = "num"];
 string symbol = 3 [json_name = "symbol"];
 string price = 4 [json_name = "price"];
 string saveAmount = 5 [json_name = "saveAmount"];

}
//增值服务列表
message ValueAddServiceListRequest {
  int32 page = 1 [json_name = "page"];
  int32 pageSize = 2 [json_name = "pageSize"];
  string name = 3 [json_name = "name"];
  string language = 4 [json_name = "language"];
}
message ValueAddServiceListResponse {
int32 total = 1 [json_name = "total"];
string msg = 2 [json_name = "msg"];
repeated ValueAddService valueAddServiceList = 3 [json_name = "valueAddServiceList"];
}
//增值服务详情
message ValueAddServiceDetailRequest {
  string uuid = 1 [json_name = "uuid"];
  string language = 2 [json_name = "language"]; //语言 默认zh-CN,   zh-CN zh-TW EN de-DE js-JP
}
message ValueAddServiceDetailResponse {
  string msg = 1 [json_name = "msg"];
  ValueAddService valueAddService = 2 [json_name = "valueAddService"];
}
message CalculatePriceRequest{
  string uuid = 1;
  int32 num = 2;
  string language = 3;
}
message CalculatePriceResponse{
  string msg = 1;
  float price = 2;
}
message BatchGetValueAddServiceLangRequest{
  repeated string uuids = 1;
  string language = 2;
}
message BatchGetValueAddServiceLangResponse{
  string msg = 1;
  repeated ValueAddServiceLang valueAddServiceLangList = 2;
}
//*********************************新增值服务-over******************************************

message BundleExtendRequest{
  int64 userId = 1;
  uint32 accountAdditional = 2; 
  uint32 videoAdditional = 3; 
  uint32 imagesAdditional = 4; 
  uint32 dataAdditional = 5;
  uint32 availableDurationAdditional = 6; 
  uint32 timeUnit = 7; // 1 日 2 月 3年
  string remark = 8; 
  string associatedorderNumber = 9; 
  uint64 operatorId = 10; 
  string operatorName = 11; 
  string operatorPhoneNumber = 12; 
  int32 type = 13;
}

message BundleExtendResponse{
}

message BundleExtendRecordsListRequest{
  int32 page = 1;
  int32 pageSize = 2;
  string user = 3; 
  string operator = 4;
  uint64 startTime = 5;
  uint64 endTime = 6;
  uint32 type = 7;
  string associatedOrderNumber = 8;
}

message BundleExtendRecordsListResponse{
  int64 total = 1;
  repeated BundleExtendRecordItem data = 2;
}

message BundleExtendRecordItem{
  string userName = 1; 
  string userPhoneNumber = 2; 
  uint32 accountAdditional = 3;
  uint32 videoAdditional = 4; 
  uint32 imagesAdditional = 5; 
  uint32 dataAdditional = 6; 
  uint32 availableDurationAdditional = 7;
  int32 type = 8;
  uint64 createdAt = 9; 
  string remark = 10; 
  string associatedOrderNumber = 11;
  string operatorName = 12; 
  string operatorPhoneNumber = 13; 
}

message GetBundleBalanceListReq{
  string userName = 1;
  int32 status = 2;
  string bundleName = 3;
  int32 bought = 4;
  int64 expiredTimeStart = 5;
  int64 expiredTimeEnd = 6;
  int32 page = 7;
  int32 pageSize = 8;
}

message GetBundleBalanceReq{
  string userName = 1;
  int32 status = 2;
  string bundleName = 3;
  int64 expiredTimeStart = 4;
  int64 expiredTimeEnd = 5;
  int32 page = 6;
  int32 pageSize = 7;
}

message BundleBalanceItem{
  int32 userId = 1;
  string userName = 2;
  string userPhoneNumber = 3;
  int32 status = 4;
  string bundleName = 5;
  int64 expiredTime = 6;
  int32 accountNumber = 7;
  int32 accountConsumptionNumber = 8;
  int32 videoNumber = 9;
  int32 videoConsumptionNumber = 10;
  int32 imageNumber = 11;
  int32 imageConsumptionNumber = 12;
  int32 dataAnalysisNumber = 13;
  int32 dataAnalysisConsumptionNumber = 14;
  int32 expansionPacksNumber = 15;
  int32 bought = 16;
}

message GetBundleBalanceListResp{
  int64 total = 1;
  repeated BundleBalanceItem data = 2;
}

message CreateBundleBalanceReq{
  int32 userId = 1;
  string orderUUID = 2;
  int32 accountNumber = 3;      
  int32 accountConsumptionNumber = 4;  
  int32 videoNumber = 5;                  
  int32 videoConsumptionNumber = 6;       
  int32 imageNumber = 7;                  
  int32 imageConsumptionNumber = 8; 
  int32 dataAnalysisNumber = 9;
  int32 dataAnalysisConsumptionNumber = 10;
  int32 expansionPacksNumber = 11;  
}

message CreateBundleBalanceResp{

}

message AddBundleBalanceReq{
  int32 id = 1;
  int32 userId = 2;
  string orderUUID = 3;
  int32 accountNumber = 4;      
  int32 accountConsumptionNumber = 5;  
  int32 videoNumber = 6;                  
  int32 videoConsumptionNumber = 7;       
  int32 imageNumber = 8;                  
  int32 imageConsumptionNumber = 9; 
  int32 dataAnalysisNumber = 10;
  int32 dataAnalysisConsumptionNumber = 11;
  int32 expansionPacksNumber = 12;  
}

message AddBundleBalanceResp{

}

message GetUsedRecordListReq{
  string user = 1;
  string operator = 2;
  string account = 3;
  int32 platform = 4;
  int32 type = 5;
  string title = 6;
  int64 submitTimeStart = 7;
  int64 submitTimeEnd = 8;
  int32 page = 9;
  int32 pageSize = 10;
}

message GetUsedRecordListResp {
  int64 total = 1;
  repeated WorkCastItem data = 2;
}

message WorkCastItem{
  string artistUuid = 1;     // 艺人ID
  string artistName = 2;     // 艺人名称
  string artistPhone = 3;    // 艺人手机号
  string workUuid = 4;       // 作品uuid
  uint32 workCategory = 5;   // 1 图文 2 视频
  string bundleUuid = 6;     // 套餐ID uuid
  string bundleName = 7;     // 套餐名称
  string platformIDs = 8;    // 发布平台ID集合 (json 格式字符串)
  string mediaNames = 9;     // 自媒体账号名称集合
  string mediaAccIDs = 10;   // 自媒体账号ID集合
  string workTitle = 11;     // 作品标题
  string submitTime = 12;    // 提交时间
  string operatorName = 13;  // 操作人名称
  string operatorPhone = 14; // 操作人手机号
  uint32 status = 15;        // 1 有效 2 失效
}

message GetImageWorkDetailReq {
   string workId = 1;
}

message GetVedioWorkDetailReq {
   string workId = 1;
}

message  GetImageWorkDetailResp{
  string workId = 1;
  string coverUrl = 2;
  string videoUrl = 3;
  int64 createdAt = 4;
}

message  GetVedioeWorkDetailResp{
  string workId = 1;
  repeated string imageUrls = 2;
  int64 createdAt = 3;
}

message ToBeComfirmedWorksReq{
  string artistUuid = 1;
  int32 page = 2;
  int32 pageSize =3;
}

message workItem{
  string uuid = 1;
  string workUuid = 2;
  string title = 3;
  string content = 4;
  uint32 workCategory = 5;
  uint32 workStatus = 6;
  string platformIDs = 7;
  string mediaNames = 8;
  string mediaAccUserIds = 9;
  int64 confirmedAt = 10;    
  int64 createdAt = 11;    // 提交时间
  string artistName = 12;
  string artistUuid = 13;
}

message ToBeComfirmedWorksResp{
  int64 total = 1;
  int64 unconfirmed = 2;
  repeated workItem data = 3;
}

message GetBundleBalanceByUserIdReq{
  int32 userId = 1;
}

message GetBundleBalanceByUserIdResp{
  string orderUUID = 1;
  string bundleUuid = 2;     // 套餐ID uuid
  string bundleName = 3;     // 套餐名称
  string bundleStatus = 4;     // 套餐名称
  int64 payTime = 5;
  int64 expiredTime = 6;
  string paymentAmount = 7;
  int32 paymentType = 8;
  int32 accountNumber = 9;      
  int32 accountAdditional = 10;      
  int32 accountConsumptionNumber = 11;  
  int32 videoNumber = 12;                  
  int32 videoAdditional = 13;                 
  int32 videoConsumptionNumber = 14;       
  int32 imageNumber = 15;                  
  int32 imageAdditional = 16;                 
  int32 imageConsumptionNumber = 17; 
  int32 dataAnalysisNumber = 18;
  int32 dataAnalysisAdditional = 19;
  int32 dataAnalysisConsumptionNumber = 20;
  int32 expansionPacksNumber = 21;  
}

message OnlyAddValueListByOrderNoRequest{
  string orderNo = 1;
}

message OnlyAddValueListByOrderNoResp{
  repeated AddBundleInfo AddBundleInfos = 1;
}

message AddBundleInfo {
  string customerID = 1;
  float amount = 2;
  string checkOutSessionId = 3;
  string orderNo = 4;
  int32 paymentStatus = 5;
}

message UpdateStatusAndPayTimeBySerialNumber {
  string serialNumber = 1;
  string payTime = 2;
  int32 paymentStatus = 3;
}

message ConfirmWorkReq{
    string workUuid = 1;
}

message ConfirmWorkResp{

}