// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.34.2 // protoc v5.27.2 // source: crm_aps.proto package crm_aps import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) const ( // Verify that this generated code is sufficiently up-to-date. _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) // Verify that runtime/protoimpl is sufficiently up-to-date. _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) type GetApsProjectListRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *GetApsProjectListRequest) Reset() { *x = GetApsProjectListRequest{} if protoimpl.UnsafeEnabled { mi := &file_crm_aps_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetApsProjectListRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetApsProjectListRequest) ProtoMessage() {} func (x *GetApsProjectListRequest) ProtoReflect() protoreflect.Message { mi := &file_crm_aps_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetApsProjectListRequest.ProtoReflect.Descriptor instead. func (*GetApsProjectListRequest) Descriptor() ([]byte, []int) { return file_crm_aps_proto_rawDescGZIP(), []int{0} } type ApsProject struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ProjectId string `protobuf:"bytes,1,opt,name=projectId,proto3" json:"projectId,omitempty"` ProjectName string `protobuf:"bytes,2,opt,name=projectName,proto3" json:"projectName,omitempty"` } func (x *ApsProject) Reset() { *x = ApsProject{} if protoimpl.UnsafeEnabled { mi := &file_crm_aps_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ApsProject) String() string { return protoimpl.X.MessageStringOf(x) } func (*ApsProject) ProtoMessage() {} func (x *ApsProject) ProtoReflect() protoreflect.Message { mi := &file_crm_aps_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ApsProject.ProtoReflect.Descriptor instead. func (*ApsProject) Descriptor() ([]byte, []int) { return file_crm_aps_proto_rawDescGZIP(), []int{1} } func (x *ApsProject) GetProjectId() string { if x != nil { return x.ProjectId } return "" } func (x *ApsProject) GetProjectName() string { if x != nil { return x.ProjectName } return "" } type GetApsProjectListResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields List []*ApsProject `protobuf:"bytes,1,rep,name=List,proto3" json:"List,omitempty"` } func (x *GetApsProjectListResponse) Reset() { *x = GetApsProjectListResponse{} if protoimpl.UnsafeEnabled { mi := &file_crm_aps_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetApsProjectListResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetApsProjectListResponse) ProtoMessage() {} func (x *GetApsProjectListResponse) ProtoReflect() protoreflect.Message { mi := &file_crm_aps_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetApsProjectListResponse.ProtoReflect.Descriptor instead. func (*GetApsProjectListResponse) Descriptor() ([]byte, []int) { return file_crm_aps_proto_rawDescGZIP(), []int{2} } func (x *GetApsProjectListResponse) GetList() []*ApsProject { if x != nil { return x.List } return nil } type SalesDetailsProduct struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ProductId string `protobuf:"bytes,1,opt,name=ProductId,proto3" json:"ProductId,omitempty"` Amount int64 `protobuf:"varint,2,opt,name=Amount,proto3" json:"Amount,omitempty"` } func (x *SalesDetailsProduct) Reset() { *x = SalesDetailsProduct{} if protoimpl.UnsafeEnabled { mi := &file_crm_aps_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SalesDetailsProduct) String() string { return protoimpl.X.MessageStringOf(x) } func (*SalesDetailsProduct) ProtoMessage() {} func (x *SalesDetailsProduct) ProtoReflect() protoreflect.Message { mi := &file_crm_aps_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SalesDetailsProduct.ProtoReflect.Descriptor instead. func (*SalesDetailsProduct) Descriptor() ([]byte, []int) { return file_crm_aps_proto_rawDescGZIP(), []int{3} } func (x *SalesDetailsProduct) GetProductId() string { if x != nil { return x.ProductId } return "" } func (x *SalesDetailsProduct) GetAmount() int64 { if x != nil { return x.Amount } return 0 } type SendSalesDetailsToApsProjectRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Number string `protobuf:"bytes,1,opt,name=Number,proto3" json:"Number,omitempty"` //销售明细单号 ClientName string `protobuf:"bytes,2,opt,name=ClientName,proto3" json:"ClientName,omitempty"` MemberName string `protobuf:"bytes,3,opt,name=MemberName,proto3" json:"MemberName,omitempty"` //销售负责人 SignTime string `protobuf:"bytes,4,opt,name=SignTime,proto3" json:"SignTime,omitempty"` //签单时间 DeliveryDate string `protobuf:"bytes,5,opt,name=DeliveryDate,proto3" json:"DeliveryDate,omitempty"` //交货日期 Source string `protobuf:"bytes,6,opt,name=Source,proto3" json:"Source,omitempty"` //订单来源 ProductTotal int64 `protobuf:"varint,7,opt,name=ProductTotal,proto3" json:"ProductTotal,omitempty"` //产品总数 ProjectId string `protobuf:"bytes,8,opt,name=ProjectId,proto3" json:"ProjectId,omitempty"` //项目id Products []*SalesDetailsProduct `protobuf:"bytes,9,rep,name=Products,proto3" json:"Products,omitempty"` DeliverType int64 `protobuf:"varint,10,opt,name=DeliverType,proto3" json:"DeliverType,omitempty"` //交付类型:1.一次发货,2.多次发货 } func (x *SendSalesDetailsToApsProjectRequest) Reset() { *x = SendSalesDetailsToApsProjectRequest{} if protoimpl.UnsafeEnabled { mi := &file_crm_aps_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SendSalesDetailsToApsProjectRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*SendSalesDetailsToApsProjectRequest) ProtoMessage() {} func (x *SendSalesDetailsToApsProjectRequest) ProtoReflect() protoreflect.Message { mi := &file_crm_aps_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SendSalesDetailsToApsProjectRequest.ProtoReflect.Descriptor instead. func (*SendSalesDetailsToApsProjectRequest) Descriptor() ([]byte, []int) { return file_crm_aps_proto_rawDescGZIP(), []int{4} } func (x *SendSalesDetailsToApsProjectRequest) GetNumber() string { if x != nil { return x.Number } return "" } func (x *SendSalesDetailsToApsProjectRequest) GetClientName() string { if x != nil { return x.ClientName } return "" } func (x *SendSalesDetailsToApsProjectRequest) GetMemberName() string { if x != nil { return x.MemberName } return "" } func (x *SendSalesDetailsToApsProjectRequest) GetSignTime() string { if x != nil { return x.SignTime } return "" } func (x *SendSalesDetailsToApsProjectRequest) GetDeliveryDate() string { if x != nil { return x.DeliveryDate } return "" } func (x *SendSalesDetailsToApsProjectRequest) GetSource() string { if x != nil { return x.Source } return "" } func (x *SendSalesDetailsToApsProjectRequest) GetProductTotal() int64 { if x != nil { return x.ProductTotal } return 0 } func (x *SendSalesDetailsToApsProjectRequest) GetProjectId() string { if x != nil { return x.ProjectId } return "" } func (x *SendSalesDetailsToApsProjectRequest) GetProducts() []*SalesDetailsProduct { if x != nil { return x.Products } return nil } func (x *SendSalesDetailsToApsProjectRequest) GetDeliverType() int64 { if x != nil { return x.DeliverType } return 0 } type SendSalesDetailsToApsProjectResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *SendSalesDetailsToApsProjectResponse) Reset() { *x = SendSalesDetailsToApsProjectResponse{} if protoimpl.UnsafeEnabled { mi := &file_crm_aps_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SendSalesDetailsToApsProjectResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*SendSalesDetailsToApsProjectResponse) ProtoMessage() {} func (x *SendSalesDetailsToApsProjectResponse) ProtoReflect() protoreflect.Message { mi := &file_crm_aps_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SendSalesDetailsToApsProjectResponse.ProtoReflect.Descriptor instead. func (*SendSalesDetailsToApsProjectResponse) Descriptor() ([]byte, []int) { return file_crm_aps_proto_rawDescGZIP(), []int{5} } type GetCrmSalesDetailsListRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields TimeType string `protobuf:"bytes,1,opt,name=TimeType,proto3" json:"TimeType,omitempty"` //时间类型:签约日期,交付日期 StartTime string `protobuf:"bytes,2,opt,name=StartTime,proto3" json:"StartTime,omitempty"` EndTime string `protobuf:"bytes,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` ClientName string `protobuf:"bytes,4,opt,name=ClientName,proto3" json:"ClientName,omitempty"` Page int64 `protobuf:"varint,5,opt,name=Page,proto3" json:"Page,omitempty"` PageSize int64 `protobuf:"varint,6,opt,name=PageSize,proto3" json:"PageSize,omitempty"` } func (x *GetCrmSalesDetailsListRequest) Reset() { *x = GetCrmSalesDetailsListRequest{} if protoimpl.UnsafeEnabled { mi := &file_crm_aps_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetCrmSalesDetailsListRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetCrmSalesDetailsListRequest) ProtoMessage() {} func (x *GetCrmSalesDetailsListRequest) ProtoReflect() protoreflect.Message { mi := &file_crm_aps_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetCrmSalesDetailsListRequest.ProtoReflect.Descriptor instead. func (*GetCrmSalesDetailsListRequest) Descriptor() ([]byte, []int) { return file_crm_aps_proto_rawDescGZIP(), []int{6} } func (x *GetCrmSalesDetailsListRequest) GetTimeType() string { if x != nil { return x.TimeType } return "" } func (x *GetCrmSalesDetailsListRequest) GetStartTime() string { if x != nil { return x.StartTime } return "" } func (x *GetCrmSalesDetailsListRequest) GetEndTime() string { if x != nil { return x.EndTime } return "" } func (x *GetCrmSalesDetailsListRequest) GetClientName() string { if x != nil { return x.ClientName } return "" } func (x *GetCrmSalesDetailsListRequest) GetPage() int64 { if x != nil { return x.Page } return 0 } func (x *GetCrmSalesDetailsListRequest) GetPageSize() int64 { if x != nil { return x.PageSize } return 0 } type CrmSalesDetails struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Number string `protobuf:"bytes,1,opt,name=number,proto3" json:"number,omitempty"` //销售明细单号 ClientName string `protobuf:"bytes,2,opt,name=clientName,proto3" json:"clientName,omitempty"` MemberName string `protobuf:"bytes,3,opt,name=memberName,proto3" json:"memberName,omitempty"` //销售负责人 SignTime string `protobuf:"bytes,4,opt,name=signTime,proto3" json:"signTime,omitempty"` //签单时间 DeliveryDate string `protobuf:"bytes,5,opt,name=deliveryDate,proto3" json:"deliveryDate,omitempty"` //交货日期 } func (x *CrmSalesDetails) Reset() { *x = CrmSalesDetails{} if protoimpl.UnsafeEnabled { mi := &file_crm_aps_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CrmSalesDetails) String() string { return protoimpl.X.MessageStringOf(x) } func (*CrmSalesDetails) ProtoMessage() {} func (x *CrmSalesDetails) ProtoReflect() protoreflect.Message { mi := &file_crm_aps_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CrmSalesDetails.ProtoReflect.Descriptor instead. func (*CrmSalesDetails) Descriptor() ([]byte, []int) { return file_crm_aps_proto_rawDescGZIP(), []int{7} } func (x *CrmSalesDetails) GetNumber() string { if x != nil { return x.Number } return "" } func (x *CrmSalesDetails) GetClientName() string { if x != nil { return x.ClientName } return "" } func (x *CrmSalesDetails) GetMemberName() string { if x != nil { return x.MemberName } return "" } func (x *CrmSalesDetails) GetSignTime() string { if x != nil { return x.SignTime } return "" } func (x *CrmSalesDetails) GetDeliveryDate() string { if x != nil { return x.DeliveryDate } return "" } type GetCrmSalesDetailsListResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SalesDetails []*CrmSalesDetails `protobuf:"bytes,1,rep,name=SalesDetails,proto3" json:"SalesDetails,omitempty"` Total int64 `protobuf:"varint,2,opt,name=Total,proto3" json:"Total,omitempty"` } func (x *GetCrmSalesDetailsListResponse) Reset() { *x = GetCrmSalesDetailsListResponse{} if protoimpl.UnsafeEnabled { mi := &file_crm_aps_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetCrmSalesDetailsListResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetCrmSalesDetailsListResponse) ProtoMessage() {} func (x *GetCrmSalesDetailsListResponse) ProtoReflect() protoreflect.Message { mi := &file_crm_aps_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetCrmSalesDetailsListResponse.ProtoReflect.Descriptor instead. func (*GetCrmSalesDetailsListResponse) Descriptor() ([]byte, []int) { return file_crm_aps_proto_rawDescGZIP(), []int{8} } func (x *GetCrmSalesDetailsListResponse) GetSalesDetails() []*CrmSalesDetails { if x != nil { return x.SalesDetails } return nil } func (x *GetCrmSalesDetailsListResponse) GetTotal() int64 { if x != nil { return x.Total } return 0 } type SendSalesDetailsAndProjectToCrmRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SalesDetailsNumbers []string `protobuf:"bytes,1,rep,name=SalesDetailsNumbers,proto3" json:"SalesDetailsNumbers,omitempty"` ProjectId string `protobuf:"bytes,2,opt,name=ProjectId,proto3" json:"ProjectId,omitempty"` } func (x *SendSalesDetailsAndProjectToCrmRequest) Reset() { *x = SendSalesDetailsAndProjectToCrmRequest{} if protoimpl.UnsafeEnabled { mi := &file_crm_aps_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SendSalesDetailsAndProjectToCrmRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*SendSalesDetailsAndProjectToCrmRequest) ProtoMessage() {} func (x *SendSalesDetailsAndProjectToCrmRequest) ProtoReflect() protoreflect.Message { mi := &file_crm_aps_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SendSalesDetailsAndProjectToCrmRequest.ProtoReflect.Descriptor instead. func (*SendSalesDetailsAndProjectToCrmRequest) Descriptor() ([]byte, []int) { return file_crm_aps_proto_rawDescGZIP(), []int{9} } func (x *SendSalesDetailsAndProjectToCrmRequest) GetSalesDetailsNumbers() []string { if x != nil { return x.SalesDetailsNumbers } return nil } func (x *SendSalesDetailsAndProjectToCrmRequest) GetProjectId() string { if x != nil { return x.ProjectId } return "" } type SendSalesDetailsAndProjectToCrmResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *SendSalesDetailsAndProjectToCrmResponse) Reset() { *x = SendSalesDetailsAndProjectToCrmResponse{} if protoimpl.UnsafeEnabled { mi := &file_crm_aps_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SendSalesDetailsAndProjectToCrmResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*SendSalesDetailsAndProjectToCrmResponse) ProtoMessage() {} func (x *SendSalesDetailsAndProjectToCrmResponse) ProtoReflect() protoreflect.Message { mi := &file_crm_aps_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SendSalesDetailsAndProjectToCrmResponse.ProtoReflect.Descriptor instead. func (*SendSalesDetailsAndProjectToCrmResponse) Descriptor() ([]byte, []int) { return file_crm_aps_proto_rawDescGZIP(), []int{10} } type GetClientListRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Page int64 `protobuf:"varint,1,opt,name=page,proto3" json:"page,omitempty"` PageSize int64 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` Keyword string `protobuf:"bytes,3,opt,name=keyword,proto3" json:"keyword,omitempty"` } func (x *GetClientListRequest) Reset() { *x = GetClientListRequest{} if protoimpl.UnsafeEnabled { mi := &file_crm_aps_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetClientListRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetClientListRequest) ProtoMessage() {} func (x *GetClientListRequest) ProtoReflect() protoreflect.Message { mi := &file_crm_aps_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetClientListRequest.ProtoReflect.Descriptor instead. func (*GetClientListRequest) Descriptor() ([]byte, []int) { return file_crm_aps_proto_rawDescGZIP(), []int{11} } func (x *GetClientListRequest) GetPage() int64 { if x != nil { return x.Page } return 0 } func (x *GetClientListRequest) GetPageSize() int64 { if x != nil { return x.PageSize } return 0 } func (x *GetClientListRequest) GetKeyword() string { if x != nil { return x.Keyword } return "" } type GetClientListResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Total int64 `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"` List []*Client `protobuf:"bytes,2,rep,name=list,proto3" json:"list,omitempty"` } func (x *GetClientListResponse) Reset() { *x = GetClientListResponse{} if protoimpl.UnsafeEnabled { mi := &file_crm_aps_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetClientListResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetClientListResponse) ProtoMessage() {} func (x *GetClientListResponse) ProtoReflect() protoreflect.Message { mi := &file_crm_aps_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetClientListResponse.ProtoReflect.Descriptor instead. func (*GetClientListResponse) Descriptor() ([]byte, []int) { return file_crm_aps_proto_rawDescGZIP(), []int{12} } func (x *GetClientListResponse) GetTotal() int64 { if x != nil { return x.Total } return 0 } func (x *GetClientListResponse) GetList() []*Client { if x != nil { return x.List } return nil } type Client struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Number string `protobuf:"bytes,1,opt,name=number,proto3" json:"number,omitempty"` Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` Id int64 `protobuf:"varint,3,opt,name=id,proto3" json:"id,omitempty"` } func (x *Client) Reset() { *x = Client{} if protoimpl.UnsafeEnabled { mi := &file_crm_aps_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Client) String() string { return protoimpl.X.MessageStringOf(x) } func (*Client) ProtoMessage() {} func (x *Client) ProtoReflect() protoreflect.Message { mi := &file_crm_aps_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Client.ProtoReflect.Descriptor instead. func (*Client) Descriptor() ([]byte, []int) { return file_crm_aps_proto_rawDescGZIP(), []int{13} } func (x *Client) GetNumber() string { if x != nil { return x.Number } return "" } func (x *Client) GetName() string { if x != nil { return x.Name } return "" } func (x *Client) GetId() int64 { if x != nil { return x.Id } return 0 } type ClientMaxIdRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ClientMaxIdRequest) Reset() { *x = ClientMaxIdRequest{} if protoimpl.UnsafeEnabled { mi := &file_crm_aps_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ClientMaxIdRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ClientMaxIdRequest) ProtoMessage() {} func (x *ClientMaxIdRequest) ProtoReflect() protoreflect.Message { mi := &file_crm_aps_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ClientMaxIdRequest.ProtoReflect.Descriptor instead. func (*ClientMaxIdRequest) Descriptor() ([]byte, []int) { return file_crm_aps_proto_rawDescGZIP(), []int{14} } type ClientMaxIdResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` } func (x *ClientMaxIdResponse) Reset() { *x = ClientMaxIdResponse{} if protoimpl.UnsafeEnabled { mi := &file_crm_aps_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ClientMaxIdResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*ClientMaxIdResponse) ProtoMessage() {} func (x *ClientMaxIdResponse) ProtoReflect() protoreflect.Message { mi := &file_crm_aps_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ClientMaxIdResponse.ProtoReflect.Descriptor instead. func (*ClientMaxIdResponse) Descriptor() ([]byte, []int) { return file_crm_aps_proto_rawDescGZIP(), []int{15} } func (x *ClientMaxIdResponse) GetId() int64 { if x != nil { return x.Id } return 0 } type AddClientRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` Number string `protobuf:"bytes,2,opt,name=number,proto3" json:"number,omitempty"` // 客户编号 Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` // 客户名称 DetailAddress string `protobuf:"bytes,4,opt,name=detailAddress,proto3" json:"detailAddress,omitempty"` // 详细地址 Remark string `protobuf:"bytes,5,opt,name=remark,proto3" json:"remark,omitempty"` // 备注 CreatorId int64 `protobuf:"varint,6,opt,name=creatorId,proto3" json:"creatorId,omitempty"` // 创建人id } func (x *AddClientRequest) Reset() { *x = AddClientRequest{} if protoimpl.UnsafeEnabled { mi := &file_crm_aps_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AddClientRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*AddClientRequest) ProtoMessage() {} func (x *AddClientRequest) ProtoReflect() protoreflect.Message { mi := &file_crm_aps_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use AddClientRequest.ProtoReflect.Descriptor instead. func (*AddClientRequest) Descriptor() ([]byte, []int) { return file_crm_aps_proto_rawDescGZIP(), []int{16} } func (x *AddClientRequest) GetId() int64 { if x != nil { return x.Id } return 0 } func (x *AddClientRequest) GetNumber() string { if x != nil { return x.Number } return "" } func (x *AddClientRequest) GetName() string { if x != nil { return x.Name } return "" } func (x *AddClientRequest) GetDetailAddress() string { if x != nil { return x.DetailAddress } return "" } func (x *AddClientRequest) GetRemark() string { if x != nil { return x.Remark } return "" } func (x *AddClientRequest) GetCreatorId() int64 { if x != nil { return x.CreatorId } return 0 } type EditClientRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` Number string `protobuf:"bytes,2,opt,name=number,proto3" json:"number,omitempty"` // 客户编号 Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` // 客户名称 DetailAddress string `protobuf:"bytes,4,opt,name=detailAddress,proto3" json:"detailAddress,omitempty"` // 详细地址 Remark string `protobuf:"bytes,5,opt,name=remark,proto3" json:"remark,omitempty"` // 备注 CreatorId int64 `protobuf:"varint,6,opt,name=creatorId,proto3" json:"creatorId,omitempty"` // 创建人id } func (x *EditClientRequest) Reset() { *x = EditClientRequest{} if protoimpl.UnsafeEnabled { mi := &file_crm_aps_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *EditClientRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*EditClientRequest) ProtoMessage() {} func (x *EditClientRequest) ProtoReflect() protoreflect.Message { mi := &file_crm_aps_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use EditClientRequest.ProtoReflect.Descriptor instead. func (*EditClientRequest) Descriptor() ([]byte, []int) { return file_crm_aps_proto_rawDescGZIP(), []int{17} } func (x *EditClientRequest) GetId() int64 { if x != nil { return x.Id } return 0 } func (x *EditClientRequest) GetNumber() string { if x != nil { return x.Number } return "" } func (x *EditClientRequest) GetName() string { if x != nil { return x.Name } return "" } func (x *EditClientRequest) GetDetailAddress() string { if x != nil { return x.DetailAddress } return "" } func (x *EditClientRequest) GetRemark() string { if x != nil { return x.Remark } return "" } func (x *EditClientRequest) GetCreatorId() int64 { if x != nil { return x.CreatorId } return 0 } type DelClientRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` Number string `protobuf:"bytes,2,opt,name=number,proto3" json:"number,omitempty"` } func (x *DelClientRequest) Reset() { *x = DelClientRequest{} if protoimpl.UnsafeEnabled { mi := &file_crm_aps_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DelClientRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*DelClientRequest) ProtoMessage() {} func (x *DelClientRequest) ProtoReflect() protoreflect.Message { mi := &file_crm_aps_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DelClientRequest.ProtoReflect.Descriptor instead. func (*DelClientRequest) Descriptor() ([]byte, []int) { return file_crm_aps_proto_rawDescGZIP(), []int{18} } func (x *DelClientRequest) GetId() int64 { if x != nil { return x.Id } return 0 } func (x *DelClientRequest) GetNumber() string { if x != nil { return x.Number } return "" } type ClientMsgResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Code int64 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` Id string `protobuf:"bytes,3,opt,name=id,proto3" json:"id,omitempty"` } func (x *ClientMsgResponse) Reset() { *x = ClientMsgResponse{} if protoimpl.UnsafeEnabled { mi := &file_crm_aps_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ClientMsgResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*ClientMsgResponse) ProtoMessage() {} func (x *ClientMsgResponse) ProtoReflect() protoreflect.Message { mi := &file_crm_aps_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ClientMsgResponse.ProtoReflect.Descriptor instead. func (*ClientMsgResponse) Descriptor() ([]byte, []int) { return file_crm_aps_proto_rawDescGZIP(), []int{19} } func (x *ClientMsgResponse) GetCode() int64 { if x != nil { return x.Code } return 0 } func (x *ClientMsgResponse) GetMsg() string { if x != nil { return x.Msg } return "" } func (x *ClientMsgResponse) GetId() string { if x != nil { return x.Id } return "" } type UpdateSalesDetailRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Number string `protobuf:"bytes,1,opt,name=number,proto3" json:"number,omitempty"` //销售明细单号 Status int32 `protobuf:"varint,2,opt,name=status,proto3" json:"status,omitempty"` //状态 } func (x *UpdateSalesDetailRequest) Reset() { *x = UpdateSalesDetailRequest{} if protoimpl.UnsafeEnabled { mi := &file_crm_aps_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateSalesDetailRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateSalesDetailRequest) ProtoMessage() {} func (x *UpdateSalesDetailRequest) ProtoReflect() protoreflect.Message { mi := &file_crm_aps_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UpdateSalesDetailRequest.ProtoReflect.Descriptor instead. func (*UpdateSalesDetailRequest) Descriptor() ([]byte, []int) { return file_crm_aps_proto_rawDescGZIP(), []int{20} } func (x *UpdateSalesDetailRequest) GetNumber() string { if x != nil { return x.Number } return "" } func (x *UpdateSalesDetailRequest) GetStatus() int32 { if x != nil { return x.Status } return 0 } type UpdateSalesDetailResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *UpdateSalesDetailResponse) Reset() { *x = UpdateSalesDetailResponse{} if protoimpl.UnsafeEnabled { mi := &file_crm_aps_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateSalesDetailResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateSalesDetailResponse) ProtoMessage() {} func (x *UpdateSalesDetailResponse) ProtoReflect() protoreflect.Message { mi := &file_crm_aps_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UpdateSalesDetailResponse.ProtoReflect.Descriptor instead. func (*UpdateSalesDetailResponse) Descriptor() ([]byte, []int) { return file_crm_aps_proto_rawDescGZIP(), []int{21} } type RemoveSalesDetailRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Number string `protobuf:"bytes,1,opt,name=number,proto3" json:"number,omitempty"` //销售明细单号 } func (x *RemoveSalesDetailRequest) Reset() { *x = RemoveSalesDetailRequest{} if protoimpl.UnsafeEnabled { mi := &file_crm_aps_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RemoveSalesDetailRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*RemoveSalesDetailRequest) ProtoMessage() {} func (x *RemoveSalesDetailRequest) ProtoReflect() protoreflect.Message { mi := &file_crm_aps_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RemoveSalesDetailRequest.ProtoReflect.Descriptor instead. func (*RemoveSalesDetailRequest) Descriptor() ([]byte, []int) { return file_crm_aps_proto_rawDescGZIP(), []int{22} } func (x *RemoveSalesDetailRequest) GetNumber() string { if x != nil { return x.Number } return "" } type RemoveSalesDetailResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *RemoveSalesDetailResponse) Reset() { *x = RemoveSalesDetailResponse{} if protoimpl.UnsafeEnabled { mi := &file_crm_aps_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RemoveSalesDetailResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*RemoveSalesDetailResponse) ProtoMessage() {} func (x *RemoveSalesDetailResponse) ProtoReflect() protoreflect.Message { mi := &file_crm_aps_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RemoveSalesDetailResponse.ProtoReflect.Descriptor instead. func (*RemoveSalesDetailResponse) Descriptor() ([]byte, []int) { return file_crm_aps_proto_rawDescGZIP(), []int{23} } type CrmGetMakeAndOutsourcingProductInfoRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SalesDetailsNumber string `protobuf:"bytes,1,opt,name=SalesDetailsNumber,proto3" json:"SalesDetailsNumber,omitempty"` } func (x *CrmGetMakeAndOutsourcingProductInfoRequest) Reset() { *x = CrmGetMakeAndOutsourcingProductInfoRequest{} if protoimpl.UnsafeEnabled { mi := &file_crm_aps_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CrmGetMakeAndOutsourcingProductInfoRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CrmGetMakeAndOutsourcingProductInfoRequest) ProtoMessage() {} func (x *CrmGetMakeAndOutsourcingProductInfoRequest) ProtoReflect() protoreflect.Message { mi := &file_crm_aps_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CrmGetMakeAndOutsourcingProductInfoRequest.ProtoReflect.Descriptor instead. func (*CrmGetMakeAndOutsourcingProductInfoRequest) Descriptor() ([]byte, []int) { return file_crm_aps_proto_rawDescGZIP(), []int{24} } func (x *CrmGetMakeAndOutsourcingProductInfoRequest) GetSalesDetailsNumber() string { if x != nil { return x.SalesDetailsNumber } return "" } type CrmGetMakeAndOutsourcingProductInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Amount int64 `protobuf:"varint,1,opt,name=Amount,proto3" json:"Amount,omitempty"` FinishAmount int64 `protobuf:"varint,2,opt,name=FinishAmount,proto3" json:"FinishAmount,omitempty"` ProductId string `protobuf:"bytes,3,opt,name=ProductId,proto3" json:"ProductId,omitempty"` Type int64 `protobuf:"varint,4,opt,name=Type,proto3" json:"Type,omitempty"` } func (x *CrmGetMakeAndOutsourcingProductInfo) Reset() { *x = CrmGetMakeAndOutsourcingProductInfo{} if protoimpl.UnsafeEnabled { mi := &file_crm_aps_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CrmGetMakeAndOutsourcingProductInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*CrmGetMakeAndOutsourcingProductInfo) ProtoMessage() {} func (x *CrmGetMakeAndOutsourcingProductInfo) ProtoReflect() protoreflect.Message { mi := &file_crm_aps_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CrmGetMakeAndOutsourcingProductInfo.ProtoReflect.Descriptor instead. func (*CrmGetMakeAndOutsourcingProductInfo) Descriptor() ([]byte, []int) { return file_crm_aps_proto_rawDescGZIP(), []int{25} } func (x *CrmGetMakeAndOutsourcingProductInfo) GetAmount() int64 { if x != nil { return x.Amount } return 0 } func (x *CrmGetMakeAndOutsourcingProductInfo) GetFinishAmount() int64 { if x != nil { return x.FinishAmount } return 0 } func (x *CrmGetMakeAndOutsourcingProductInfo) GetProductId() string { if x != nil { return x.ProductId } return "" } func (x *CrmGetMakeAndOutsourcingProductInfo) GetType() int64 { if x != nil { return x.Type } return 0 } type CrmGetMakeAndOutsourcingProductInfoResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Info []*CrmGetMakeAndOutsourcingProductInfo `protobuf:"bytes,1,rep,name=Info,proto3" json:"Info,omitempty"` } func (x *CrmGetMakeAndOutsourcingProductInfoResponse) Reset() { *x = CrmGetMakeAndOutsourcingProductInfoResponse{} if protoimpl.UnsafeEnabled { mi := &file_crm_aps_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CrmGetMakeAndOutsourcingProductInfoResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*CrmGetMakeAndOutsourcingProductInfoResponse) ProtoMessage() {} func (x *CrmGetMakeAndOutsourcingProductInfoResponse) ProtoReflect() protoreflect.Message { mi := &file_crm_aps_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CrmGetMakeAndOutsourcingProductInfoResponse.ProtoReflect.Descriptor instead. func (*CrmGetMakeAndOutsourcingProductInfoResponse) Descriptor() ([]byte, []int) { return file_crm_aps_proto_rawDescGZIP(), []int{26} } func (x *CrmGetMakeAndOutsourcingProductInfoResponse) GetInfo() []*CrmGetMakeAndOutsourcingProductInfo { if x != nil { return x.Info } return nil } type GetCrmSalesDetailsProductInfoRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SalesDetailsNumber string `protobuf:"bytes,1,opt,name=SalesDetailsNumber,proto3" json:"SalesDetailsNumber,omitempty"` } func (x *GetCrmSalesDetailsProductInfoRequest) Reset() { *x = GetCrmSalesDetailsProductInfoRequest{} if protoimpl.UnsafeEnabled { mi := &file_crm_aps_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetCrmSalesDetailsProductInfoRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetCrmSalesDetailsProductInfoRequest) ProtoMessage() {} func (x *GetCrmSalesDetailsProductInfoRequest) ProtoReflect() protoreflect.Message { mi := &file_crm_aps_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetCrmSalesDetailsProductInfoRequest.ProtoReflect.Descriptor instead. func (*GetCrmSalesDetailsProductInfoRequest) Descriptor() ([]byte, []int) { return file_crm_aps_proto_rawDescGZIP(), []int{27} } func (x *GetCrmSalesDetailsProductInfoRequest) GetSalesDetailsNumber() string { if x != nil { return x.SalesDetailsNumber } return "" } type CrmSalesDetailsProductInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ProductId string `protobuf:"bytes,1,opt,name=ProductId,proto3" json:"ProductId,omitempty"` ProductName string `protobuf:"bytes,2,opt,name=ProductName,proto3" json:"ProductName,omitempty"` Specs string `protobuf:"bytes,3,opt,name=Specs,proto3" json:"Specs,omitempty"` Unit string `protobuf:"bytes,4,opt,name=Unit,proto3" json:"Unit,omitempty"` Amount int64 `protobuf:"varint,5,opt,name=Amount,proto3" json:"Amount,omitempty"` Cost string `protobuf:"bytes,6,opt,name=Cost,proto3" json:"Cost,omitempty"` //产品成本 Price int64 `protobuf:"varint,7,opt,name=Price,proto3" json:"Price,omitempty"` //产品价格 Total int64 `protobuf:"varint,8,opt,name=Total,proto3" json:"Total,omitempty"` //产品总价 Profit string `protobuf:"bytes,9,opt,name=Profit,proto3" json:"Profit,omitempty"` //毛利 Margin string `protobuf:"bytes,10,opt,name=Margin,proto3" json:"Margin,omitempty"` //毛利率 } func (x *CrmSalesDetailsProductInfo) Reset() { *x = CrmSalesDetailsProductInfo{} if protoimpl.UnsafeEnabled { mi := &file_crm_aps_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CrmSalesDetailsProductInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*CrmSalesDetailsProductInfo) ProtoMessage() {} func (x *CrmSalesDetailsProductInfo) ProtoReflect() protoreflect.Message { mi := &file_crm_aps_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CrmSalesDetailsProductInfo.ProtoReflect.Descriptor instead. func (*CrmSalesDetailsProductInfo) Descriptor() ([]byte, []int) { return file_crm_aps_proto_rawDescGZIP(), []int{28} } func (x *CrmSalesDetailsProductInfo) GetProductId() string { if x != nil { return x.ProductId } return "" } func (x *CrmSalesDetailsProductInfo) GetProductName() string { if x != nil { return x.ProductName } return "" } func (x *CrmSalesDetailsProductInfo) GetSpecs() string { if x != nil { return x.Specs } return "" } func (x *CrmSalesDetailsProductInfo) GetUnit() string { if x != nil { return x.Unit } return "" } func (x *CrmSalesDetailsProductInfo) GetAmount() int64 { if x != nil { return x.Amount } return 0 } func (x *CrmSalesDetailsProductInfo) GetCost() string { if x != nil { return x.Cost } return "" } func (x *CrmSalesDetailsProductInfo) GetPrice() int64 { if x != nil { return x.Price } return 0 } func (x *CrmSalesDetailsProductInfo) GetTotal() int64 { if x != nil { return x.Total } return 0 } func (x *CrmSalesDetailsProductInfo) GetProfit() string { if x != nil { return x.Profit } return "" } func (x *CrmSalesDetailsProductInfo) GetMargin() string { if x != nil { return x.Margin } return "" } type GetCrmSalesDetailsProductInfoResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields List []*CrmSalesDetailsProductInfo `protobuf:"bytes,1,rep,name=List,proto3" json:"List,omitempty"` } func (x *GetCrmSalesDetailsProductInfoResponse) Reset() { *x = GetCrmSalesDetailsProductInfoResponse{} if protoimpl.UnsafeEnabled { mi := &file_crm_aps_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetCrmSalesDetailsProductInfoResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetCrmSalesDetailsProductInfoResponse) ProtoMessage() {} func (x *GetCrmSalesDetailsProductInfoResponse) ProtoReflect() protoreflect.Message { mi := &file_crm_aps_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetCrmSalesDetailsProductInfoResponse.ProtoReflect.Descriptor instead. func (*GetCrmSalesDetailsProductInfoResponse) Descriptor() ([]byte, []int) { return file_crm_aps_proto_rawDescGZIP(), []int{29} } func (x *GetCrmSalesDetailsProductInfoResponse) GetList() []*CrmSalesDetailsProductInfo { if x != nil { return x.List } return nil } var File_crm_aps_proto protoreflect.FileDescriptor var file_crm_aps_proto_rawDesc = []byte{ 0x0a, 0x0d, 0x63, 0x72, 0x6d, 0x5f, 0x61, 0x70, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x1a, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x41, 0x70, 0x73, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x4c, 0x0a, 0x0a, 0x41, 0x70, 0x73, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3c, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x41, 0x70, 0x73, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x41, 0x70, 0x73, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x4b, 0x0a, 0x13, 0x53, 0x61, 0x6c, 0x65, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xeb, 0x02, 0x0a, 0x23, 0x53, 0x65, 0x6e, 0x64, 0x53, 0x61, 0x6c, 0x65, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x54, 0x6f, 0x41, 0x70, 0x73, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x69, 0x67, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x53, 0x69, 0x67, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x44, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x44, 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x53, 0x61, 0x6c, 0x65, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x08, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x26, 0x0a, 0x24, 0x53, 0x65, 0x6e, 0x64, 0x53, 0x61, 0x6c, 0x65, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x54, 0x6f, 0x41, 0x70, 0x73, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xc3, 0x01, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x43, 0x72, 0x6d, 0x53, 0x61, 0x6c, 0x65, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x50, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x50, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, 0xa9, 0x01, 0x0a, 0x0f, 0x43, 0x72, 0x6d, 0x53, 0x61, 0x6c, 0x65, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x69, 0x67, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x69, 0x67, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x44, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x44, 0x61, 0x74, 0x65, 0x22, 0x6c, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x43, 0x72, 0x6d, 0x53, 0x61, 0x6c, 0x65, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x0c, 0x53, 0x61, 0x6c, 0x65, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x43, 0x72, 0x6d, 0x53, 0x61, 0x6c, 0x65, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x0c, 0x53, 0x61, 0x6c, 0x65, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0x78, 0x0a, 0x26, 0x53, 0x65, 0x6e, 0x64, 0x53, 0x61, 0x6c, 0x65, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x6f, 0x43, 0x72, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x13, 0x53, 0x61, 0x6c, 0x65, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x13, 0x53, 0x61, 0x6c, 0x65, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x22, 0x29, 0x0a, 0x27, 0x53, 0x65, 0x6e, 0x64, 0x53, 0x61, 0x6c, 0x65, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x6f, 0x43, 0x72, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x61, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x4a, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x1b, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x44, 0x0a, 0x06, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x22, 0x14, 0x0a, 0x12, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x61, 0x78, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x25, 0x0a, 0x13, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x61, 0x78, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x22, 0xaa, 0x01, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x22, 0xab, 0x01, 0x0a, 0x11, 0x45, 0x64, 0x69, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x22, 0x3a, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x49, 0x0a, 0x11, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x4a, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x61, 0x6c, 0x65, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x1b, 0x0a, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x61, 0x6c, 0x65, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, 0x0a, 0x18, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x61, 0x6c, 0x65, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x1b, 0x0a, 0x19, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x61, 0x6c, 0x65, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5c, 0x0a, 0x2a, 0x43, 0x72, 0x6d, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x6b, 0x65, 0x41, 0x6e, 0x64, 0x4f, 0x75, 0x74, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x53, 0x61, 0x6c, 0x65, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x53, 0x61, 0x6c, 0x65, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x93, 0x01, 0x0a, 0x23, 0x43, 0x72, 0x6d, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x6b, 0x65, 0x41, 0x6e, 0x64, 0x4f, 0x75, 0x74, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0x67, 0x0a, 0x2b, 0x43, 0x72, 0x6d, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x6b, 0x65, 0x41, 0x6e, 0x64, 0x4f, 0x75, 0x74, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x43, 0x72, 0x6d, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x6b, 0x65, 0x41, 0x6e, 0x64, 0x4f, 0x75, 0x74, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x56, 0x0a, 0x24, 0x47, 0x65, 0x74, 0x43, 0x72, 0x6d, 0x53, 0x61, 0x6c, 0x65, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x53, 0x61, 0x6c, 0x65, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x53, 0x61, 0x6c, 0x65, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x8e, 0x02, 0x0a, 0x1a, 0x43, 0x72, 0x6d, 0x53, 0x61, 0x6c, 0x65, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x70, 0x65, 0x63, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x53, 0x70, 0x65, 0x63, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x6e, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x73, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x43, 0x6f, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x22, 0x58, 0x0a, 0x25, 0x47, 0x65, 0x74, 0x43, 0x72, 0x6d, 0x53, 0x61, 0x6c, 0x65, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x43, 0x72, 0x6d, 0x53, 0x61, 0x6c, 0x65, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x32, 0xe0, 0x08, 0x0a, 0x14, 0x43, 0x72, 0x6d, 0x41, 0x6e, 0x64, 0x41, 0x70, 0x73, 0x47, 0x72, 0x70, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x4c, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x41, 0x70, 0x73, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x19, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x70, 0x73, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x70, 0x73, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6d, 0x0a, 0x1c, 0x53, 0x65, 0x6e, 0x64, 0x53, 0x61, 0x6c, 0x65, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x54, 0x6f, 0x41, 0x70, 0x73, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x24, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x53, 0x61, 0x6c, 0x65, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x54, 0x6f, 0x41, 0x70, 0x73, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x53, 0x61, 0x6c, 0x65, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x54, 0x6f, 0x41, 0x70, 0x73, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5b, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x43, 0x72, 0x6d, 0x53, 0x61, 0x6c, 0x65, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1e, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x72, 0x6d, 0x53, 0x61, 0x6c, 0x65, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x72, 0x6d, 0x53, 0x61, 0x6c, 0x65, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x76, 0x0a, 0x1f, 0x53, 0x65, 0x6e, 0x64, 0x53, 0x61, 0x6c, 0x65, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x6f, 0x43, 0x72, 0x6d, 0x12, 0x27, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x53, 0x61, 0x6c, 0x65, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x6f, 0x43, 0x72, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x53, 0x61, 0x6c, 0x65, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x6f, 0x43, 0x72, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x40, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x15, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x61, 0x78, 0x49, 0x64, 0x12, 0x13, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x61, 0x78, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x61, 0x78, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x34, 0x0a, 0x09, 0x41, 0x64, 0x64, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x11, 0x2e, 0x41, 0x64, 0x64, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x12, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x0a, 0x45, 0x64, 0x69, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x12, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x34, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x11, 0x2e, 0x44, 0x65, 0x6c, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x12, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x61, 0x6c, 0x65, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x19, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x61, 0x6c, 0x65, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x61, 0x6c, 0x65, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x11, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x61, 0x6c, 0x65, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x19, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x61, 0x6c, 0x65, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x61, 0x6c, 0x65, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x82, 0x01, 0x0a, 0x23, 0x43, 0x72, 0x6d, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x6b, 0x65, 0x41, 0x6e, 0x64, 0x4f, 0x75, 0x74, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2b, 0x2e, 0x43, 0x72, 0x6d, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x6b, 0x65, 0x41, 0x6e, 0x64, 0x4f, 0x75, 0x74, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x43, 0x72, 0x6d, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x6b, 0x65, 0x41, 0x6e, 0x64, 0x4f, 0x75, 0x74, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x70, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x43, 0x72, 0x6d, 0x53, 0x61, 0x6c, 0x65, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x25, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x72, 0x6d, 0x53, 0x61, 0x6c, 0x65, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x72, 0x6d, 0x53, 0x61, 0x6c, 0x65, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x0b, 0x5a, 0x09, 0x2e, 0x2f, 0x63, 0x72, 0x6d, 0x5f, 0x61, 0x70, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_crm_aps_proto_rawDescOnce sync.Once file_crm_aps_proto_rawDescData = file_crm_aps_proto_rawDesc ) func file_crm_aps_proto_rawDescGZIP() []byte { file_crm_aps_proto_rawDescOnce.Do(func() { file_crm_aps_proto_rawDescData = protoimpl.X.CompressGZIP(file_crm_aps_proto_rawDescData) }) return file_crm_aps_proto_rawDescData } var file_crm_aps_proto_msgTypes = make([]protoimpl.MessageInfo, 30) var file_crm_aps_proto_goTypes = []any{ (*GetApsProjectListRequest)(nil), // 0: GetApsProjectListRequest (*ApsProject)(nil), // 1: ApsProject (*GetApsProjectListResponse)(nil), // 2: GetApsProjectListResponse (*SalesDetailsProduct)(nil), // 3: SalesDetailsProduct (*SendSalesDetailsToApsProjectRequest)(nil), // 4: SendSalesDetailsToApsProjectRequest (*SendSalesDetailsToApsProjectResponse)(nil), // 5: SendSalesDetailsToApsProjectResponse (*GetCrmSalesDetailsListRequest)(nil), // 6: GetCrmSalesDetailsListRequest (*CrmSalesDetails)(nil), // 7: CrmSalesDetails (*GetCrmSalesDetailsListResponse)(nil), // 8: GetCrmSalesDetailsListResponse (*SendSalesDetailsAndProjectToCrmRequest)(nil), // 9: SendSalesDetailsAndProjectToCrmRequest (*SendSalesDetailsAndProjectToCrmResponse)(nil), // 10: SendSalesDetailsAndProjectToCrmResponse (*GetClientListRequest)(nil), // 11: GetClientListRequest (*GetClientListResponse)(nil), // 12: GetClientListResponse (*Client)(nil), // 13: Client (*ClientMaxIdRequest)(nil), // 14: ClientMaxIdRequest (*ClientMaxIdResponse)(nil), // 15: ClientMaxIdResponse (*AddClientRequest)(nil), // 16: AddClientRequest (*EditClientRequest)(nil), // 17: EditClientRequest (*DelClientRequest)(nil), // 18: DelClientRequest (*ClientMsgResponse)(nil), // 19: ClientMsgResponse (*UpdateSalesDetailRequest)(nil), // 20: UpdateSalesDetailRequest (*UpdateSalesDetailResponse)(nil), // 21: UpdateSalesDetailResponse (*RemoveSalesDetailRequest)(nil), // 22: RemoveSalesDetailRequest (*RemoveSalesDetailResponse)(nil), // 23: RemoveSalesDetailResponse (*CrmGetMakeAndOutsourcingProductInfoRequest)(nil), // 24: CrmGetMakeAndOutsourcingProductInfoRequest (*CrmGetMakeAndOutsourcingProductInfo)(nil), // 25: CrmGetMakeAndOutsourcingProductInfo (*CrmGetMakeAndOutsourcingProductInfoResponse)(nil), // 26: CrmGetMakeAndOutsourcingProductInfoResponse (*GetCrmSalesDetailsProductInfoRequest)(nil), // 27: GetCrmSalesDetailsProductInfoRequest (*CrmSalesDetailsProductInfo)(nil), // 28: CrmSalesDetailsProductInfo (*GetCrmSalesDetailsProductInfoResponse)(nil), // 29: GetCrmSalesDetailsProductInfoResponse } var file_crm_aps_proto_depIdxs = []int32{ 1, // 0: GetApsProjectListResponse.List:type_name -> ApsProject 3, // 1: SendSalesDetailsToApsProjectRequest.Products:type_name -> SalesDetailsProduct 7, // 2: GetCrmSalesDetailsListResponse.SalesDetails:type_name -> CrmSalesDetails 13, // 3: GetClientListResponse.list:type_name -> Client 25, // 4: CrmGetMakeAndOutsourcingProductInfoResponse.Info:type_name -> CrmGetMakeAndOutsourcingProductInfo 28, // 5: GetCrmSalesDetailsProductInfoResponse.List:type_name -> CrmSalesDetailsProductInfo 0, // 6: CrmAndApsGrpcService.GetApsProjectList:input_type -> GetApsProjectListRequest 4, // 7: CrmAndApsGrpcService.SendSalesDetailsToApsProject:input_type -> SendSalesDetailsToApsProjectRequest 6, // 8: CrmAndApsGrpcService.GetCrmSalesDetailsList:input_type -> GetCrmSalesDetailsListRequest 9, // 9: CrmAndApsGrpcService.SendSalesDetailsAndProjectToCrm:input_type -> SendSalesDetailsAndProjectToCrmRequest 11, // 10: CrmAndApsGrpcService.GetClientList:input_type -> GetClientListRequest 14, // 11: CrmAndApsGrpcService.GetClientMaxId:input_type -> ClientMaxIdRequest 16, // 12: CrmAndApsGrpcService.AddClient:input_type -> AddClientRequest 17, // 13: CrmAndApsGrpcService.EditClient:input_type -> EditClientRequest 18, // 14: CrmAndApsGrpcService.DelClient:input_type -> DelClientRequest 20, // 15: CrmAndApsGrpcService.UpdateSalesDetail:input_type -> UpdateSalesDetailRequest 22, // 16: CrmAndApsGrpcService.RemoveSalesDetail:input_type -> RemoveSalesDetailRequest 24, // 17: CrmAndApsGrpcService.CrmGetMakeAndOutsourcingProductInfo:input_type -> CrmGetMakeAndOutsourcingProductInfoRequest 27, // 18: CrmAndApsGrpcService.GetCrmSalesDetailsProductInfo:input_type -> GetCrmSalesDetailsProductInfoRequest 2, // 19: CrmAndApsGrpcService.GetApsProjectList:output_type -> GetApsProjectListResponse 5, // 20: CrmAndApsGrpcService.SendSalesDetailsToApsProject:output_type -> SendSalesDetailsToApsProjectResponse 8, // 21: CrmAndApsGrpcService.GetCrmSalesDetailsList:output_type -> GetCrmSalesDetailsListResponse 10, // 22: CrmAndApsGrpcService.SendSalesDetailsAndProjectToCrm:output_type -> SendSalesDetailsAndProjectToCrmResponse 12, // 23: CrmAndApsGrpcService.GetClientList:output_type -> GetClientListResponse 15, // 24: CrmAndApsGrpcService.GetClientMaxId:output_type -> ClientMaxIdResponse 19, // 25: CrmAndApsGrpcService.AddClient:output_type -> ClientMsgResponse 19, // 26: CrmAndApsGrpcService.EditClient:output_type -> ClientMsgResponse 19, // 27: CrmAndApsGrpcService.DelClient:output_type -> ClientMsgResponse 21, // 28: CrmAndApsGrpcService.UpdateSalesDetail:output_type -> UpdateSalesDetailResponse 23, // 29: CrmAndApsGrpcService.RemoveSalesDetail:output_type -> RemoveSalesDetailResponse 26, // 30: CrmAndApsGrpcService.CrmGetMakeAndOutsourcingProductInfo:output_type -> CrmGetMakeAndOutsourcingProductInfoResponse 29, // 31: CrmAndApsGrpcService.GetCrmSalesDetailsProductInfo:output_type -> GetCrmSalesDetailsProductInfoResponse 19, // [19:32] is the sub-list for method output_type 6, // [6:19] is the sub-list for method input_type 6, // [6:6] is the sub-list for extension type_name 6, // [6:6] is the sub-list for extension extendee 0, // [0:6] is the sub-list for field type_name } func init() { file_crm_aps_proto_init() } func file_crm_aps_proto_init() { if File_crm_aps_proto != nil { return } if !protoimpl.UnsafeEnabled { file_crm_aps_proto_msgTypes[0].Exporter = func(v any, i int) any { switch v := v.(*GetApsProjectListRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_crm_aps_proto_msgTypes[1].Exporter = func(v any, i int) any { switch v := v.(*ApsProject); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_crm_aps_proto_msgTypes[2].Exporter = func(v any, i int) any { switch v := v.(*GetApsProjectListResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_crm_aps_proto_msgTypes[3].Exporter = func(v any, i int) any { switch v := v.(*SalesDetailsProduct); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_crm_aps_proto_msgTypes[4].Exporter = func(v any, i int) any { switch v := v.(*SendSalesDetailsToApsProjectRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_crm_aps_proto_msgTypes[5].Exporter = func(v any, i int) any { switch v := v.(*SendSalesDetailsToApsProjectResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_crm_aps_proto_msgTypes[6].Exporter = func(v any, i int) any { switch v := v.(*GetCrmSalesDetailsListRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_crm_aps_proto_msgTypes[7].Exporter = func(v any, i int) any { switch v := v.(*CrmSalesDetails); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_crm_aps_proto_msgTypes[8].Exporter = func(v any, i int) any { switch v := v.(*GetCrmSalesDetailsListResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_crm_aps_proto_msgTypes[9].Exporter = func(v any, i int) any { switch v := v.(*SendSalesDetailsAndProjectToCrmRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_crm_aps_proto_msgTypes[10].Exporter = func(v any, i int) any { switch v := v.(*SendSalesDetailsAndProjectToCrmResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_crm_aps_proto_msgTypes[11].Exporter = func(v any, i int) any { switch v := v.(*GetClientListRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_crm_aps_proto_msgTypes[12].Exporter = func(v any, i int) any { switch v := v.(*GetClientListResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_crm_aps_proto_msgTypes[13].Exporter = func(v any, i int) any { switch v := v.(*Client); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_crm_aps_proto_msgTypes[14].Exporter = func(v any, i int) any { switch v := v.(*ClientMaxIdRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_crm_aps_proto_msgTypes[15].Exporter = func(v any, i int) any { switch v := v.(*ClientMaxIdResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_crm_aps_proto_msgTypes[16].Exporter = func(v any, i int) any { switch v := v.(*AddClientRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_crm_aps_proto_msgTypes[17].Exporter = func(v any, i int) any { switch v := v.(*EditClientRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_crm_aps_proto_msgTypes[18].Exporter = func(v any, i int) any { switch v := v.(*DelClientRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_crm_aps_proto_msgTypes[19].Exporter = func(v any, i int) any { switch v := v.(*ClientMsgResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_crm_aps_proto_msgTypes[20].Exporter = func(v any, i int) any { switch v := v.(*UpdateSalesDetailRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_crm_aps_proto_msgTypes[21].Exporter = func(v any, i int) any { switch v := v.(*UpdateSalesDetailResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_crm_aps_proto_msgTypes[22].Exporter = func(v any, i int) any { switch v := v.(*RemoveSalesDetailRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_crm_aps_proto_msgTypes[23].Exporter = func(v any, i int) any { switch v := v.(*RemoveSalesDetailResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_crm_aps_proto_msgTypes[24].Exporter = func(v any, i int) any { switch v := v.(*CrmGetMakeAndOutsourcingProductInfoRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_crm_aps_proto_msgTypes[25].Exporter = func(v any, i int) any { switch v := v.(*CrmGetMakeAndOutsourcingProductInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_crm_aps_proto_msgTypes[26].Exporter = func(v any, i int) any { switch v := v.(*CrmGetMakeAndOutsourcingProductInfoResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_crm_aps_proto_msgTypes[27].Exporter = func(v any, i int) any { switch v := v.(*GetCrmSalesDetailsProductInfoRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_crm_aps_proto_msgTypes[28].Exporter = func(v any, i int) any { switch v := v.(*CrmSalesDetailsProductInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_crm_aps_proto_msgTypes[29].Exporter = func(v any, i int) any { switch v := v.(*GetCrmSalesDetailsProductInfoResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_crm_aps_proto_rawDesc, NumEnums: 0, NumMessages: 30, NumExtensions: 0, NumServices: 1, }, GoTypes: file_crm_aps_proto_goTypes, DependencyIndexes: file_crm_aps_proto_depIdxs, MessageInfos: file_crm_aps_proto_msgTypes, }.Build() File_crm_aps_proto = out.File file_crm_aps_proto_rawDesc = nil file_crm_aps_proto_goTypes = nil file_crm_aps_proto_depIdxs = nil }