From 874c6d377ad554b24bcabdd0fab273e2b7e03441 Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Mon, 8 May 2023 10:52:00 +0800 Subject: [PATCH] =?UTF-8?q?oa=E5=AE=A1=E6=89=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/approval/approval.pb.go | 1297 +++++++++++++------------ api/approval/approval.proto | 65 +- api/approval/approval.validator.pb.go | 50 +- pkg/model/approval.go | 37 +- pkg/model/approval_oa.go | 142 ++- pkg/model/migration.go | 4 +- 6 files changed, 890 insertions(+), 705 deletions(-) diff --git a/api/approval/approval.pb.go b/api/approval/approval.pb.go index 593b584..29dd7ed 100644 --- a/api/approval/approval.pb.go +++ b/api/approval/approval.pb.go @@ -3786,6 +3786,69 @@ func (x *SettingResponse) GetSuccess() bool { return false } +type ApplyTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Date string `protobuf:"bytes,1,opt,name=Date,json=date,proto3" json:"Date,omitempty"` + Hour string `protobuf:"bytes,2,opt,name=Hour,json=hour,proto3" json:"Hour,omitempty"` + M string `protobuf:"bytes,3,opt,name=M,json=m,proto3" json:"M,omitempty"` +} + +func (x *ApplyTime) Reset() { + *x = ApplyTime{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[48] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ApplyTime) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ApplyTime) ProtoMessage() {} + +func (x *ApplyTime) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[48] + 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 ApplyTime.ProtoReflect.Descriptor instead. +func (*ApplyTime) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{48} +} + +func (x *ApplyTime) GetDate() string { + if x != nil { + return x.Date + } + return "" +} + +func (x *ApplyTime) GetHour() string { + if x != nil { + return x.Hour + } + return "" +} + +func (x *ApplyTime) GetM() string { + if x != nil { + return x.M + } + return "" +} + type ApprovalOA struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -3807,7 +3870,7 @@ type ApprovalOA struct { func (x *ApprovalOA) Reset() { *x = ApprovalOA{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[48] + mi := &file_api_approval_approval_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3820,7 +3883,7 @@ func (x *ApprovalOA) String() string { func (*ApprovalOA) ProtoMessage() {} func (x *ApprovalOA) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[48] + mi := &file_api_approval_approval_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3833,7 +3896,7 @@ func (x *ApprovalOA) ProtoReflect() protoreflect.Message { // Deprecated: Use ApprovalOA.ProtoReflect.Descriptor instead. func (*ApprovalOA) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{48} + return file_api_approval_approval_proto_rawDescGZIP(), []int{49} } func (x *ApprovalOA) GetID() uint64 { @@ -3936,7 +3999,7 @@ type LeaveApply struct { func (x *LeaveApply) Reset() { *x = LeaveApply{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[49] + mi := &file_api_approval_approval_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3949,7 +4012,7 @@ func (x *LeaveApply) String() string { func (*LeaveApply) ProtoMessage() {} func (x *LeaveApply) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[49] + mi := &file_api_approval_approval_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3962,7 +4025,7 @@ func (x *LeaveApply) ProtoReflect() protoreflect.Message { // Deprecated: Use LeaveApply.ProtoReflect.Descriptor instead. func (*LeaveApply) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{49} + return file_api_approval_approval_proto_rawDescGZIP(), []int{50} } func (x *LeaveApply) GetUUID() string { @@ -4070,8 +4133,7 @@ type OutWorkApply struct { ActionTime string `protobuf:"bytes,7,opt,name=ActionTime,json=actionTime,proto3" json:"ActionTime,omitempty"` ApprovalID string `protobuf:"bytes,8,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` Status int32 `protobuf:"varint,9,opt,name=Status,json=status,proto3" json:"Status,omitempty"` - BeginTime string `protobuf:"bytes,10,opt,name=BeginTime,json=beginTime,proto3" json:"BeginTime,omitempty"` - EndTime string `protobuf:"bytes,11,opt,name=EndTime,json=endTime,proto3" json:"EndTime,omitempty"` + ApplyTimes []*ApplyTime `protobuf:"bytes,10,rep,name=ApplyTimes,json=applyTimes,proto3" json:"ApplyTimes,omitempty"` Reason string `protobuf:"bytes,12,opt,name=Reason,json=reason,proto3" json:"Reason,omitempty"` Hours float32 `protobuf:"fixed32,13,opt,name=Hours,json=hours,proto3" json:"Hours,omitempty"` OutWorkAddress string `protobuf:"bytes,14,opt,name=OutWorkAddress,json=outWorkAddress,proto3" json:"OutWorkAddress,omitempty"` @@ -4083,7 +4145,7 @@ type OutWorkApply struct { func (x *OutWorkApply) Reset() { *x = OutWorkApply{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[50] + mi := &file_api_approval_approval_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4096,7 +4158,7 @@ func (x *OutWorkApply) String() string { func (*OutWorkApply) ProtoMessage() {} func (x *OutWorkApply) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[50] + mi := &file_api_approval_approval_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4109,7 +4171,7 @@ func (x *OutWorkApply) ProtoReflect() protoreflect.Message { // Deprecated: Use OutWorkApply.ProtoReflect.Descriptor instead. func (*OutWorkApply) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{50} + return file_api_approval_approval_proto_rawDescGZIP(), []int{51} } func (x *OutWorkApply) GetUUID() string { @@ -4175,18 +4237,11 @@ func (x *OutWorkApply) GetStatus() int32 { return 0 } -func (x *OutWorkApply) GetBeginTime() string { +func (x *OutWorkApply) GetApplyTimes() []*ApplyTime { if x != nil { - return x.BeginTime + return x.ApplyTimes } - return "" -} - -func (x *OutWorkApply) GetEndTime() string { - if x != nil { - return x.EndTime - } - return "" + return nil } func (x *OutWorkApply) GetReason() string { @@ -4245,8 +4300,7 @@ type MakeUpApply struct { ActionTime string `protobuf:"bytes,7,opt,name=ActionTime,json=actionTime,proto3" json:"ActionTime,omitempty"` ApprovalID string `protobuf:"bytes,8,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` Status int32 `protobuf:"varint,9,opt,name=Status,json=status,proto3" json:"Status,omitempty"` - MakeUpDate string `protobuf:"bytes,10,opt,name=MakeUpDate,json=makeUpDate,proto3" json:"MakeUpDate,omitempty"` - MakeUpTime string `protobuf:"bytes,11,opt,name=MakeUpTime,json=makeUpTime,proto3" json:"MakeUpTime,omitempty"` + ApplyTimes []*ApplyTime `protobuf:"bytes,10,rep,name=ApplyTimes,json=applyTimes,proto3" json:"ApplyTimes,omitempty"` Reason string `protobuf:"bytes,12,opt,name=Reason,json=reason,proto3" json:"Reason,omitempty"` CopyUsers []*CopyUser `protobuf:"bytes,13,rep,name=CopyUsers,json=copyUsers,proto3" json:"CopyUsers,omitempty"` ApprovalUsers []*ApprovalUser `protobuf:"bytes,14,rep,name=ApprovalUsers,json=approvalUsers,proto3" json:"ApprovalUsers,omitempty"` @@ -4255,7 +4309,7 @@ type MakeUpApply struct { func (x *MakeUpApply) Reset() { *x = MakeUpApply{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[51] + mi := &file_api_approval_approval_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4268,7 +4322,7 @@ func (x *MakeUpApply) String() string { func (*MakeUpApply) ProtoMessage() {} func (x *MakeUpApply) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[51] + mi := &file_api_approval_approval_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4281,7 +4335,7 @@ func (x *MakeUpApply) ProtoReflect() protoreflect.Message { // Deprecated: Use MakeUpApply.ProtoReflect.Descriptor instead. func (*MakeUpApply) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{51} + return file_api_approval_approval_proto_rawDescGZIP(), []int{52} } func (x *MakeUpApply) GetUUID() string { @@ -4347,18 +4401,11 @@ func (x *MakeUpApply) GetStatus() int32 { return 0 } -func (x *MakeUpApply) GetMakeUpDate() string { +func (x *MakeUpApply) GetApplyTimes() []*ApplyTime { if x != nil { - return x.MakeUpDate + return x.ApplyTimes } - return "" -} - -func (x *MakeUpApply) GetMakeUpTime() string { - if x != nil { - return x.MakeUpTime - } - return "" + return nil } func (x *MakeUpApply) GetReason() string { @@ -4398,7 +4445,7 @@ type TurnoverApply struct { Status int32 `protobuf:"varint,9,opt,name=Status,json=status,proto3" json:"Status,omitempty"` HandoverUID string `protobuf:"bytes,10,opt,name=HandoverUID,json=handoverUID,proto3" json:"HandoverUID,omitempty"` HandoverName string `protobuf:"bytes,11,opt,name=HandoverName,json=handoverName,proto3" json:"HandoverName,omitempty"` - TurnoverTime string `protobuf:"bytes,12,opt,name=TurnoverTime,json=turnoverTime,proto3" json:"TurnoverTime,omitempty"` + ApplyTimes []*ApplyTime `protobuf:"bytes,12,rep,name=ApplyTimes,json=applyTimes,proto3" json:"ApplyTimes,omitempty"` Reason string `protobuf:"bytes,13,opt,name=Reason,json=reason,proto3" json:"Reason,omitempty"` CopyUsers []*CopyUser `protobuf:"bytes,14,rep,name=CopyUsers,json=copyUsers,proto3" json:"CopyUsers,omitempty"` ApprovalUsers []*ApprovalUser `protobuf:"bytes,15,rep,name=ApprovalUsers,json=approvalUsers,proto3" json:"ApprovalUsers,omitempty"` @@ -4407,7 +4454,7 @@ type TurnoverApply struct { func (x *TurnoverApply) Reset() { *x = TurnoverApply{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[52] + mi := &file_api_approval_approval_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4420,7 +4467,7 @@ func (x *TurnoverApply) String() string { func (*TurnoverApply) ProtoMessage() {} func (x *TurnoverApply) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[52] + mi := &file_api_approval_approval_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4433,7 +4480,7 @@ func (x *TurnoverApply) ProtoReflect() protoreflect.Message { // Deprecated: Use TurnoverApply.ProtoReflect.Descriptor instead. func (*TurnoverApply) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{52} + return file_api_approval_approval_proto_rawDescGZIP(), []int{53} } func (x *TurnoverApply) GetUUID() string { @@ -4513,11 +4560,11 @@ func (x *TurnoverApply) GetHandoverName() string { return "" } -func (x *TurnoverApply) GetTurnoverTime() string { +func (x *TurnoverApply) GetApplyTimes() []*ApplyTime { if x != nil { - return x.TurnoverTime + return x.ApplyTimes } - return "" + return nil } func (x *TurnoverApply) GetReason() string { @@ -4555,8 +4602,7 @@ type OverTimeApply struct { ActionTime string `protobuf:"bytes,7,opt,name=ActionTime,json=actionTime,proto3" json:"ActionTime,omitempty"` ApprovalID string `protobuf:"bytes,8,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` Status int32 `protobuf:"varint,9,opt,name=Status,json=status,proto3" json:"Status,omitempty"` - BeginTime string `protobuf:"bytes,10,opt,name=BeginTime,json=beginTime,proto3" json:"BeginTime,omitempty"` - EndTime string `protobuf:"bytes,11,opt,name=EndTime,json=endTime,proto3" json:"EndTime,omitempty"` + ApplyTimes []*ApplyTime `protobuf:"bytes,10,rep,name=ApplyTimes,json=applyTimes,proto3" json:"ApplyTimes,omitempty"` Reason string `protobuf:"bytes,12,opt,name=Reason,json=reason,proto3" json:"Reason,omitempty"` Hours float32 `protobuf:"fixed32,13,opt,name=Hours,json=hours,proto3" json:"Hours,omitempty"` CopyUsers []*CopyUser `protobuf:"bytes,14,rep,name=CopyUsers,json=copyUsers,proto3" json:"CopyUsers,omitempty"` @@ -4566,7 +4612,7 @@ type OverTimeApply struct { func (x *OverTimeApply) Reset() { *x = OverTimeApply{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[53] + mi := &file_api_approval_approval_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4579,7 +4625,7 @@ func (x *OverTimeApply) String() string { func (*OverTimeApply) ProtoMessage() {} func (x *OverTimeApply) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[53] + mi := &file_api_approval_approval_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4592,7 +4638,7 @@ func (x *OverTimeApply) ProtoReflect() protoreflect.Message { // Deprecated: Use OverTimeApply.ProtoReflect.Descriptor instead. func (*OverTimeApply) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{53} + return file_api_approval_approval_proto_rawDescGZIP(), []int{54} } func (x *OverTimeApply) GetUUID() string { @@ -4658,18 +4704,11 @@ func (x *OverTimeApply) GetStatus() int32 { return 0 } -func (x *OverTimeApply) GetBeginTime() string { +func (x *OverTimeApply) GetApplyTimes() []*ApplyTime { if x != nil { - return x.BeginTime + return x.ApplyTimes } - return "" -} - -func (x *OverTimeApply) GetEndTime() string { - if x != nil { - return x.EndTime - } - return "" + return nil } func (x *OverTimeApply) GetReason() string { @@ -4714,8 +4753,7 @@ type Leave struct { ActionTime string `protobuf:"bytes,7,opt,name=ActionTime,json=actionTime,proto3" json:"ActionTime,omitempty"` ApprovalID string `protobuf:"bytes,8,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` Status int32 `protobuf:"varint,9,opt,name=Status,json=status,proto3" json:"Status,omitempty"` - BeginTime string `protobuf:"bytes,10,opt,name=BeginTime,json=beginTime,proto3" json:"BeginTime,omitempty"` - EndTime string `protobuf:"bytes,11,opt,name=EndTime,json=endTime,proto3" json:"EndTime,omitempty"` + ApplyTimes []*ApplyTime `protobuf:"bytes,10,rep,name=ApplyTimes,json=applyTimes,proto3" json:"ApplyTimes,omitempty"` Reason string `protobuf:"bytes,12,opt,name=Reason,json=reason,proto3" json:"Reason,omitempty"` Hours float32 `protobuf:"fixed32,13,opt,name=Hours,json=hours,proto3" json:"Hours,omitempty"` Days float32 `protobuf:"fixed32,14,opt,name=Days,json=days,proto3" json:"Days,omitempty"` @@ -4726,7 +4764,7 @@ type Leave struct { func (x *Leave) Reset() { *x = Leave{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[54] + mi := &file_api_approval_approval_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4739,7 +4777,7 @@ func (x *Leave) String() string { func (*Leave) ProtoMessage() {} func (x *Leave) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[54] + mi := &file_api_approval_approval_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4752,7 +4790,7 @@ func (x *Leave) ProtoReflect() protoreflect.Message { // Deprecated: Use Leave.ProtoReflect.Descriptor instead. func (*Leave) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{54} + return file_api_approval_approval_proto_rawDescGZIP(), []int{55} } func (x *Leave) GetUUID() string { @@ -4818,18 +4856,11 @@ func (x *Leave) GetStatus() int32 { return 0 } -func (x *Leave) GetBeginTime() string { +func (x *Leave) GetApplyTimes() []*ApplyTime { if x != nil { - return x.BeginTime + return x.ApplyTimes } - return "" -} - -func (x *Leave) GetEndTime() string { - if x != nil { - return x.EndTime - } - return "" + return nil } func (x *Leave) GetReason() string { @@ -4867,212 +4898,6 @@ func (x *Leave) GetApprovalUsers() []*ApprovalUser { return nil } -type CostInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Description string `protobuf:"bytes,1,opt,name=Description,json=description,proto3" json:"Description,omitempty"` - UnitPrice string `protobuf:"bytes,2,opt,name=UnitPrice,json=unitPrice,proto3" json:"UnitPrice,omitempty"` - CostUnit string `protobuf:"bytes,3,opt,name=CostUnit,json=costUnit,proto3" json:"CostUnit,omitempty"` - CostNum int64 `protobuf:"varint,4,opt,name=CostNum,json=costNum,proto3" json:"CostNum,omitempty"` - TotalPrice string `protobuf:"bytes,5,opt,name=TotalPrice,json=totalPrice,proto3" json:"TotalPrice,omitempty"` - UsedDepartment string `protobuf:"bytes,6,opt,name=UsedDepartment,json=usedDepartment,proto3" json:"UsedDepartment,omitempty"` -} - -func (x *CostInfo) Reset() { - *x = CostInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[55] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CostInfo) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CostInfo) ProtoMessage() {} - -func (x *CostInfo) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[55] - 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 CostInfo.ProtoReflect.Descriptor instead. -func (*CostInfo) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{55} -} - -func (x *CostInfo) GetDescription() string { - if x != nil { - return x.Description - } - return "" -} - -func (x *CostInfo) GetUnitPrice() string { - if x != nil { - return x.UnitPrice - } - return "" -} - -func (x *CostInfo) GetCostUnit() string { - if x != nil { - return x.CostUnit - } - return "" -} - -func (x *CostInfo) GetCostNum() int64 { - if x != nil { - return x.CostNum - } - return 0 -} - -func (x *CostInfo) GetTotalPrice() string { - if x != nil { - return x.TotalPrice - } - return "" -} - -func (x *CostInfo) GetUsedDepartment() string { - if x != nil { - return x.UsedDepartment - } - return "" -} - -type InvoiceInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - InvoiceDate string `protobuf:"bytes,1,opt,name=InvoiceDate,json=invoiceDate,proto3" json:"InvoiceDate,omitempty"` - InvoiceNo string `protobuf:"bytes,2,opt,name=InvoiceNo,json=invoiceNo,proto3" json:"InvoiceNo,omitempty"` - InvoiceProvider string `protobuf:"bytes,3,opt,name=InvoiceProvider,json=invoiceProvider,proto3" json:"InvoiceProvider,omitempty"` - Amount string `protobuf:"bytes,4,opt,name=Amount,json=amount,proto3" json:"Amount,omitempty"` - UseTo string `protobuf:"bytes,5,opt,name=UseTo,json=useTo,proto3" json:"UseTo,omitempty"` - Applicant string `protobuf:"bytes,6,opt,name=Applicant,json=applicant,proto3" json:"Applicant,omitempty"` - PaymentMethod string `protobuf:"bytes,7,opt,name=PaymentMethod,json=paymentMethod,proto3" json:"PaymentMethod,omitempty"` - PaymentObj string `protobuf:"bytes,8,opt,name=PaymentObj,json=paymentObj,proto3" json:"PaymentObj,omitempty"` - InvoiceType string `protobuf:"bytes,9,opt,name=InvoiceType,json=invoiceType,proto3" json:"InvoiceType,omitempty"` - Notes string `protobuf:"bytes,10,opt,name=Notes,json=notes,proto3" json:"Notes,omitempty"` -} - -func (x *InvoiceInfo) Reset() { - *x = InvoiceInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[56] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *InvoiceInfo) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*InvoiceInfo) ProtoMessage() {} - -func (x *InvoiceInfo) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[56] - 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 InvoiceInfo.ProtoReflect.Descriptor instead. -func (*InvoiceInfo) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{56} -} - -func (x *InvoiceInfo) GetInvoiceDate() string { - if x != nil { - return x.InvoiceDate - } - return "" -} - -func (x *InvoiceInfo) GetInvoiceNo() string { - if x != nil { - return x.InvoiceNo - } - return "" -} - -func (x *InvoiceInfo) GetInvoiceProvider() string { - if x != nil { - return x.InvoiceProvider - } - return "" -} - -func (x *InvoiceInfo) GetAmount() string { - if x != nil { - return x.Amount - } - return "" -} - -func (x *InvoiceInfo) GetUseTo() string { - if x != nil { - return x.UseTo - } - return "" -} - -func (x *InvoiceInfo) GetApplicant() string { - if x != nil { - return x.Applicant - } - return "" -} - -func (x *InvoiceInfo) GetPaymentMethod() string { - if x != nil { - return x.PaymentMethod - } - return "" -} - -func (x *InvoiceInfo) GetPaymentObj() string { - if x != nil { - return x.PaymentObj - } - return "" -} - -func (x *InvoiceInfo) GetInvoiceType() string { - if x != nil { - return x.InvoiceType - } - return "" -} - -func (x *InvoiceInfo) GetNotes() string { - if x != nil { - return x.Notes - } - return "" -} - // 财务报表审批 type GetNameRequest struct { state protoimpl.MessageState @@ -5085,7 +4910,7 @@ type GetNameRequest struct { func (x *GetNameRequest) Reset() { *x = GetNameRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[57] + mi := &file_api_approval_approval_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5098,7 +4923,7 @@ func (x *GetNameRequest) String() string { func (*GetNameRequest) ProtoMessage() {} func (x *GetNameRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[57] + mi := &file_api_approval_approval_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5111,7 +4936,7 @@ func (x *GetNameRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetNameRequest.ProtoReflect.Descriptor instead. func (*GetNameRequest) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{57} + return file_api_approval_approval_proto_rawDescGZIP(), []int{56} } func (x *GetNameRequest) GetSettingType() string { @@ -5132,7 +4957,7 @@ type GetNameResponse struct { func (x *GetNameResponse) Reset() { *x = GetNameResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[58] + mi := &file_api_approval_approval_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5145,7 +4970,7 @@ func (x *GetNameResponse) String() string { func (*GetNameResponse) ProtoMessage() {} func (x *GetNameResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[58] + mi := &file_api_approval_approval_proto_msgTypes[57] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5158,7 +4983,7 @@ func (x *GetNameResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetNameResponse.ProtoReflect.Descriptor instead. func (*GetNameResponse) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{58} + return file_api_approval_approval_proto_rawDescGZIP(), []int{57} } func (x *GetNameResponse) GetName() []string { @@ -5191,7 +5016,7 @@ type FinancialForm struct { func (x *FinancialForm) Reset() { *x = FinancialForm{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[59] + mi := &file_api_approval_approval_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5204,7 +5029,7 @@ func (x *FinancialForm) String() string { func (*FinancialForm) ProtoMessage() {} func (x *FinancialForm) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[59] + mi := &file_api_approval_approval_proto_msgTypes[58] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5217,7 +5042,7 @@ func (x *FinancialForm) ProtoReflect() protoreflect.Message { // Deprecated: Use FinancialForm.ProtoReflect.Descriptor instead. func (*FinancialForm) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{59} + return file_api_approval_approval_proto_rawDescGZIP(), []int{58} } func (x *FinancialForm) GetID() uint64 { @@ -5311,6 +5136,212 @@ func (x *FinancialForm) GetInvoiceInfo() []*InvoiceInfo { return nil } +type CostInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Description string `protobuf:"bytes,1,opt,name=Description,json=description,proto3" json:"Description,omitempty"` + UnitPrice string `protobuf:"bytes,2,opt,name=UnitPrice,json=unitPrice,proto3" json:"UnitPrice,omitempty"` + CostUnit string `protobuf:"bytes,3,opt,name=CostUnit,json=costUnit,proto3" json:"CostUnit,omitempty"` + CostNum int64 `protobuf:"varint,4,opt,name=CostNum,json=costNum,proto3" json:"CostNum,omitempty"` + TotalPrice string `protobuf:"bytes,5,opt,name=TotalPrice,json=totalPrice,proto3" json:"TotalPrice,omitempty"` + UsedDepartment string `protobuf:"bytes,6,opt,name=UsedDepartment,json=usedDepartment,proto3" json:"UsedDepartment,omitempty"` +} + +func (x *CostInfo) Reset() { + *x = CostInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[59] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CostInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CostInfo) ProtoMessage() {} + +func (x *CostInfo) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[59] + 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 CostInfo.ProtoReflect.Descriptor instead. +func (*CostInfo) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{59} +} + +func (x *CostInfo) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *CostInfo) GetUnitPrice() string { + if x != nil { + return x.UnitPrice + } + return "" +} + +func (x *CostInfo) GetCostUnit() string { + if x != nil { + return x.CostUnit + } + return "" +} + +func (x *CostInfo) GetCostNum() int64 { + if x != nil { + return x.CostNum + } + return 0 +} + +func (x *CostInfo) GetTotalPrice() string { + if x != nil { + return x.TotalPrice + } + return "" +} + +func (x *CostInfo) GetUsedDepartment() string { + if x != nil { + return x.UsedDepartment + } + return "" +} + +type InvoiceInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + InvoiceDate string `protobuf:"bytes,1,opt,name=InvoiceDate,json=invoiceDate,proto3" json:"InvoiceDate,omitempty"` + InvoiceNo string `protobuf:"bytes,2,opt,name=InvoiceNo,json=invoiceNo,proto3" json:"InvoiceNo,omitempty"` + InvoiceProvider string `protobuf:"bytes,3,opt,name=InvoiceProvider,json=invoiceProvider,proto3" json:"InvoiceProvider,omitempty"` + Amount string `protobuf:"bytes,4,opt,name=Amount,json=amount,proto3" json:"Amount,omitempty"` + UseTo string `protobuf:"bytes,5,opt,name=UseTo,json=useTo,proto3" json:"UseTo,omitempty"` + Applicant string `protobuf:"bytes,6,opt,name=Applicant,json=applicant,proto3" json:"Applicant,omitempty"` + PaymentMethod string `protobuf:"bytes,7,opt,name=PaymentMethod,json=paymentMethod,proto3" json:"PaymentMethod,omitempty"` + PaymentObj string `protobuf:"bytes,8,opt,name=PaymentObj,json=paymentObj,proto3" json:"PaymentObj,omitempty"` + InvoiceType string `protobuf:"bytes,9,opt,name=InvoiceType,json=invoiceType,proto3" json:"InvoiceType,omitempty"` + Notes string `protobuf:"bytes,10,opt,name=Notes,json=notes,proto3" json:"Notes,omitempty"` +} + +func (x *InvoiceInfo) Reset() { + *x = InvoiceInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[60] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *InvoiceInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InvoiceInfo) ProtoMessage() {} + +func (x *InvoiceInfo) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[60] + 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 InvoiceInfo.ProtoReflect.Descriptor instead. +func (*InvoiceInfo) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{60} +} + +func (x *InvoiceInfo) GetInvoiceDate() string { + if x != nil { + return x.InvoiceDate + } + return "" +} + +func (x *InvoiceInfo) GetInvoiceNo() string { + if x != nil { + return x.InvoiceNo + } + return "" +} + +func (x *InvoiceInfo) GetInvoiceProvider() string { + if x != nil { + return x.InvoiceProvider + } + return "" +} + +func (x *InvoiceInfo) GetAmount() string { + if x != nil { + return x.Amount + } + return "" +} + +func (x *InvoiceInfo) GetUseTo() string { + if x != nil { + return x.UseTo + } + return "" +} + +func (x *InvoiceInfo) GetApplicant() string { + if x != nil { + return x.Applicant + } + return "" +} + +func (x *InvoiceInfo) GetPaymentMethod() string { + if x != nil { + return x.PaymentMethod + } + return "" +} + +func (x *InvoiceInfo) GetPaymentObj() string { + if x != nil { + return x.PaymentObj + } + return "" +} + +func (x *InvoiceInfo) GetInvoiceType() string { + if x != nil { + return x.InvoiceType + } + return "" +} + +func (x *InvoiceInfo) GetNotes() string { + if x != nil { + return x.Notes + } + return "" +} + var File_api_approval_approval_proto protoreflect.FileDescriptor var file_api_approval_approval_proto_rawDesc = []byte{ @@ -5821,84 +5852,88 @@ var file_api_approval_approval_proto_rawDesc = []byte{ 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0xbe, 0x03, 0x0a, 0x0a, 0x41, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x64, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, - 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x49, 0x44, 0x12, 0x34, 0x0a, 0x0a, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x2e, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x0a, 0x6c, 0x65, - 0x61, 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x30, 0x0a, 0x07, 0x4f, 0x75, 0x74, 0x57, - 0x6f, 0x72, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4f, 0x75, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x70, 0x70, 0x6c, - 0x79, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x2d, 0x0a, 0x06, 0x4d, 0x61, - 0x6b, 0x65, 0x55, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4d, 0x61, 0x6b, 0x65, 0x55, 0x70, 0x41, 0x70, 0x70, 0x6c, - 0x79, 0x52, 0x06, 0x6d, 0x61, 0x6b, 0x65, 0x55, 0x70, 0x12, 0x33, 0x0a, 0x08, 0x54, 0x75, 0x72, - 0x6e, 0x6f, 0x76, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x76, 0x65, 0x72, 0x41, - 0x70, 0x70, 0x6c, 0x79, 0x52, 0x08, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x76, 0x65, 0x72, 0x12, 0x33, - 0x0a, 0x08, 0x4f, 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4f, 0x76, 0x65, 0x72, - 0x54, 0x69, 0x6d, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x08, 0x6f, 0x76, 0x65, 0x72, 0x54, - 0x69, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x05, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x65, - 0x61, 0x76, 0x65, 0x52, 0x05, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x22, 0xba, 0x03, 0x0a, 0x0a, 0x4c, - 0x65, 0x61, 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, - 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, - 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, - 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, - 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x61, - 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, - 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, - 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x56, 0x65, 0x72, 0x69, 0x66, - 0x79, 0x46, 0x69, 0x6c, 0x65, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x76, 0x65, 0x72, - 0x69, 0x66, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, - 0x73, 0x65, 0x72, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, - 0x63, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0xac, 0x04, 0x0a, 0x0c, 0x4f, 0x75, 0x74, 0x57, - 0x6f, 0x72, 0x6b, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, - 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, - 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, - 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x61, 0x72, - 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, - 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, - 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, - 0x0a, 0x09, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, - 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, - 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, + 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x41, 0x0a, 0x09, 0x41, 0x70, 0x70, + 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x48, 0x6f, + 0x75, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x75, 0x72, 0x12, 0x0c, + 0x0a, 0x01, 0x4d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x6d, 0x22, 0xbe, 0x03, 0x0a, + 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x12, 0x0e, 0x0a, 0x02, 0x49, + 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, + 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x34, 0x0a, 0x0a, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x41, 0x70, + 0x70, 0x6c, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, + 0x0a, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x30, 0x0a, 0x07, 0x4f, + 0x75, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4f, 0x75, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x41, + 0x70, 0x70, 0x6c, 0x79, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x2d, 0x0a, + 0x06, 0x4d, 0x61, 0x6b, 0x65, 0x55, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, + 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4d, 0x61, 0x6b, 0x65, 0x55, 0x70, 0x41, + 0x70, 0x70, 0x6c, 0x79, 0x52, 0x06, 0x6d, 0x61, 0x6b, 0x65, 0x55, 0x70, 0x12, 0x33, 0x0a, 0x08, + 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x76, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, + 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x76, + 0x65, 0x72, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x08, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x76, 0x65, + 0x72, 0x12, 0x33, 0x0a, 0x08, 0x4f, 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4f, + 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x08, 0x6f, 0x76, + 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x05, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x2e, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x52, 0x05, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x22, 0xba, 0x03, + 0x0a, 0x0a, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, + 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, + 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, + 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, + 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, + 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, + 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, + 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, + 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x56, 0x65, + 0x72, 0x69, 0x66, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, + 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, + 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, + 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, + 0x72, 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, + 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0d, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0xa9, 0x04, 0x0a, 0x0c, 0x4f, + 0x75, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, + 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, + 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, + 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, + 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, + 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, + 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, + 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x33, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, + 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x6c, + 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x48, 0x6f, 0x75, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x68, 0x6f, 0x75, 0x72, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x75, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x41, @@ -5912,7 +5947,7 @@ var file_api_approval_approval_proto_rawDesc = []byte{ 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0xdb, 0x03, 0x0a, 0x0b, 0x4d, 0x61, 0x6b, 0x65, 0x55, + 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0xd0, 0x03, 0x0a, 0x0b, 0x4d, 0x61, 0x6b, 0x65, 0x55, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, @@ -5929,21 +5964,54 @@ var file_api_approval_approval_proto_rawDesc = []byte{ 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, - 0x4d, 0x61, 0x6b, 0x65, 0x55, 0x70, 0x44, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x6d, 0x61, 0x6b, 0x65, 0x55, 0x70, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, - 0x4d, 0x61, 0x6b, 0x65, 0x55, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x6d, 0x61, 0x6b, 0x65, 0x55, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, - 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x33, 0x0a, 0x0a, + 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x13, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x6c, + 0x79, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, + 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, + 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0e, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0x98, 0x04, 0x0a, 0x0d, 0x54, 0x75, + 0x72, 0x6e, 0x6f, 0x76, 0x65, 0x72, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, + 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, + 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, + 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, + 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, + 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, + 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, + 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x48, 0x61, 0x6e, 0x64, 0x6f, 0x76, 0x65, 0x72, 0x55, 0x49, 0x44, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x68, 0x61, 0x6e, 0x64, 0x6f, 0x76, 0x65, 0x72, + 0x55, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x48, 0x61, 0x6e, 0x64, 0x6f, 0x76, 0x65, 0x72, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x68, 0x61, 0x6e, 0x64, 0x6f, + 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x33, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x6c, 0x79, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, + 0x52, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, + 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, - 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, + 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, - 0x73, 0x65, 0x72, 0x73, 0x22, 0x87, 0x04, 0x0a, 0x0d, 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x76, 0x65, - 0x72, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, + 0x73, 0x65, 0x72, 0x73, 0x22, 0xe8, 0x03, 0x0a, 0x0d, 0x4f, 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, + 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, @@ -5959,74 +6027,41 @@ var file_api_approval_approval_proto_rawDesc = []byte{ 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a, 0x0b, - 0x48, 0x61, 0x6e, 0x64, 0x6f, 0x76, 0x65, 0x72, 0x55, 0x49, 0x44, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x68, 0x61, 0x6e, 0x64, 0x6f, 0x76, 0x65, 0x72, 0x55, 0x49, 0x44, 0x12, 0x22, - 0x0a, 0x0c, 0x48, 0x61, 0x6e, 0x64, 0x6f, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x68, 0x61, 0x6e, 0x64, 0x6f, 0x76, 0x65, 0x72, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x76, 0x65, 0x72, 0x54, 0x69, - 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x76, - 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x30, - 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, - 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, - 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, - 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, - 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0xeb, - 0x03, 0x0a, 0x0d, 0x4f, 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, - 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, - 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, - 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, - 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, - 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, - 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, - 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, - 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x54, - 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x65, 0x67, 0x69, 0x6e, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, - 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x48, 0x6f, 0x75, 0x72, 0x73, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x68, 0x6f, 0x75, 0x72, 0x73, 0x12, 0x30, 0x0a, 0x09, - 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, - 0x73, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, - 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, - 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0xf7, 0x03, 0x0a, - 0x05, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, - 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, - 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, - 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, - 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, - 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, - 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, - 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, - 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, - 0x42, 0x65, 0x67, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, - 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x64, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x33, 0x0a, 0x0a, + 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x13, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x6c, + 0x79, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x48, 0x6f, 0x75, + 0x72, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x68, 0x6f, 0x75, 0x72, 0x73, 0x12, + 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0e, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, + 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, + 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, + 0x72, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, + 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, + 0xf4, 0x03, 0x0a, 0x05, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, + 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, + 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, + 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, + 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, + 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x61, + 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, + 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, + 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x33, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0a, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, + 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x48, 0x6f, 0x75, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x68, 0x6f, 0x75, 0x72, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x79, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x02, @@ -6037,76 +6072,76 @@ var file_api_approval_approval_proto_rawDesc = []byte{ 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0xc8, 0x01, 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, - 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x6e, 0x69, 0x74, 0x50, 0x72, - 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x12, - 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x07, 0x63, 0x6f, 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x54, 0x6f, 0x74, - 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x55, 0x73, 0x65, - 0x64, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0e, 0x75, 0x73, 0x65, 0x64, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, - 0x74, 0x22, 0xc1, 0x02, 0x0a, 0x0b, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x44, - 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x4e, 0x6f, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x4e, - 0x6f, 0x12, 0x28, 0x0a, 0x0f, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x76, - 0x69, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x6e, 0x76, 0x6f, - 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x41, - 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, - 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x55, 0x73, 0x65, 0x54, 0x6f, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x75, 0x73, 0x65, 0x54, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x6d, 0x65, - 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, - 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x1e, 0x0a, - 0x0a, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x62, 0x6a, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x62, 0x6a, 0x12, 0x20, 0x0a, - 0x0b, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x22, 0x32, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x74, 0x74, 0x69, - 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, - 0x74, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x22, 0x25, 0x0a, 0x0f, 0x47, 0x65, 0x74, - 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x22, 0xde, 0x03, 0x0a, 0x0d, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x46, 0x6f, - 0x72, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, - 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, - 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0a, - 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, - 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, - 0x70, 0x61, 0x6e, 0x79, 0x12, 0x34, 0x0a, 0x15, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x15, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x61, - 0x79, 0x65, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x61, 0x79, 0x65, 0x65, - 0x12, 0x28, 0x0a, 0x0f, 0x42, 0x65, 0x6e, 0x65, 0x66, 0x69, 0x63, 0x69, 0x61, 0x72, 0x79, 0x42, - 0x61, 0x6e, 0x6b, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x62, 0x65, 0x6e, 0x65, 0x66, - 0x69, 0x63, 0x69, 0x61, 0x72, 0x79, 0x42, 0x61, 0x6e, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x42, 0x61, - 0x6e, 0x6b, 0x4e, 0x6f, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x61, 0x6e, 0x6b, - 0x4e, 0x6f, 0x12, 0x2e, 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0b, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, - 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, - 0x68, 0x6f, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6d, 0x65, - 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x37, 0x0a, 0x0b, 0x49, 0x6e, 0x76, 0x6f, - 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, - 0x6f, 0x32, 0xf1, 0x0c, 0x0a, 0x08, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x12, 0x3f, + 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0x32, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x74, 0x74, + 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, + 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x22, 0x25, 0x0a, 0x0f, 0x47, 0x65, + 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x22, 0xde, 0x03, 0x0a, 0x0d, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x46, + 0x6f, 0x72, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, + 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, + 0x1c, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1e, 0x0a, + 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x26, 0x0a, + 0x0e, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, + 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x12, 0x34, 0x0a, 0x15, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x50, + 0x61, 0x79, 0x65, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x61, 0x79, 0x65, + 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x42, 0x65, 0x6e, 0x65, 0x66, 0x69, 0x63, 0x69, 0x61, 0x72, 0x79, + 0x42, 0x61, 0x6e, 0x6b, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x62, 0x65, 0x6e, 0x65, + 0x66, 0x69, 0x63, 0x69, 0x61, 0x72, 0x79, 0x42, 0x61, 0x6e, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x42, + 0x61, 0x6e, 0x6b, 0x4e, 0x6f, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x61, 0x6e, + 0x6b, 0x4e, 0x6f, 0x12, 0x2e, 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, + 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x2e, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, + 0x74, 0x68, 0x6f, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6d, + 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x37, 0x0a, 0x0b, 0x49, 0x6e, 0x76, + 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, + 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, + 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, + 0x66, 0x6f, 0x22, 0xc8, 0x01, 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x20, 0x0a, 0x0b, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x43, + 0x6f, 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x63, 0x6f, + 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, + 0x69, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x55, 0x73, 0x65, 0x64, 0x44, 0x65, 0x70, + 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x75, + 0x73, 0x65, 0x64, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xc1, 0x02, + 0x0a, 0x0b, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, + 0x0b, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, + 0x1c, 0x0a, 0x09, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x12, 0x28, 0x0a, + 0x0f, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x50, + 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x14, 0x0a, 0x05, 0x55, 0x73, 0x65, 0x54, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x75, 0x73, 0x65, 0x54, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, + 0x74, 0x68, 0x6f, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6d, + 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x61, 0x79, + 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x62, 0x6a, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, + 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x62, 0x6a, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x6e, 0x76, + 0x6f, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4e, + 0x6f, 0x74, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x65, + 0x73, 0x32, 0xf1, 0x0c, 0x0a, 0x08, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x12, 0x3f, 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, @@ -6225,7 +6260,7 @@ func file_api_approval_approval_proto_rawDescGZIP() []byte { return file_api_approval_approval_proto_rawDescData } -var file_api_approval_approval_proto_msgTypes = make([]protoimpl.MessageInfo, 60) +var file_api_approval_approval_proto_msgTypes = make([]protoimpl.MessageInfo, 61) var file_api_approval_approval_proto_goTypes = []interface{}{ (*CommonResponse)(nil), // 0: approval.CommonResponse (*ChangeBundlePayRequest)(nil), // 1: approval.ChangeBundlePayRequest @@ -6275,18 +6310,19 @@ var file_api_approval_approval_proto_goTypes = []interface{}{ (*SettingRequest)(nil), // 45: approval.SettingRequest (*DetailSettingRequest)(nil), // 46: approval.DetailSettingRequest (*SettingResponse)(nil), // 47: approval.SettingResponse - (*ApprovalOA)(nil), // 48: approval.ApprovalOA - (*LeaveApply)(nil), // 49: approval.LeaveApply - (*OutWorkApply)(nil), // 50: approval.OutWorkApply - (*MakeUpApply)(nil), // 51: approval.MakeUpApply - (*TurnoverApply)(nil), // 52: approval.TurnoverApply - (*OverTimeApply)(nil), // 53: approval.OverTimeApply - (*Leave)(nil), // 54: approval.Leave - (*CostInfo)(nil), // 55: approval.CostInfo - (*InvoiceInfo)(nil), // 56: approval.InvoiceInfo - (*GetNameRequest)(nil), // 57: approval.GetNameRequest - (*GetNameResponse)(nil), // 58: approval.GetNameResponse - (*FinancialForm)(nil), // 59: approval.FinancialForm + (*ApplyTime)(nil), // 48: approval.ApplyTime + (*ApprovalOA)(nil), // 49: approval.ApprovalOA + (*LeaveApply)(nil), // 50: approval.LeaveApply + (*OutWorkApply)(nil), // 51: approval.OutWorkApply + (*MakeUpApply)(nil), // 52: approval.MakeUpApply + (*TurnoverApply)(nil), // 53: approval.TurnoverApply + (*OverTimeApply)(nil), // 54: approval.OverTimeApply + (*Leave)(nil), // 55: approval.Leave + (*GetNameRequest)(nil), // 56: approval.GetNameRequest + (*GetNameResponse)(nil), // 57: approval.GetNameResponse + (*FinancialForm)(nil), // 58: approval.FinancialForm + (*CostInfo)(nil), // 59: approval.CostInfo + (*InvoiceInfo)(nil), // 60: approval.InvoiceInfo } var file_api_approval_approval_proto_depIdxs = []int32{ 4, // 0: approval.CreateTypeRequest.KeyInfos:type_name -> approval.KeyInfo @@ -6310,82 +6346,87 @@ var file_api_approval_approval_proto_depIdxs = []int32{ 35, // 18: approval.CreateRequest.WorkFlows:type_name -> approval.WorkFlow 4, // 19: approval.CreateRequest.CustomizeInfo:type_name -> approval.KeyInfo 33, // 20: approval.CreateRequest.BundlePayPrice:type_name -> approval.BundlePayPrice - 48, // 21: approval.CreateRequest.ApprovalOA:type_name -> approval.ApprovalOA - 59, // 22: approval.CreateRequest.FinancialForm:type_name -> approval.FinancialForm + 49, // 21: approval.CreateRequest.ApprovalOA:type_name -> approval.ApprovalOA + 58, // 22: approval.CreateRequest.FinancialForm:type_name -> approval.FinancialForm 43, // 23: approval.SettingRequest.CopyUsers:type_name -> approval.CopyUser 44, // 24: approval.SettingRequest.ApprovalUsers:type_name -> approval.ApprovalUser 4, // 25: approval.SettingRequest.CustomizeInfo:type_name -> approval.KeyInfo - 49, // 26: approval.ApprovalOA.LeaveApply:type_name -> approval.LeaveApply - 50, // 27: approval.ApprovalOA.OutWork:type_name -> approval.OutWorkApply - 51, // 28: approval.ApprovalOA.MakeUp:type_name -> approval.MakeUpApply - 52, // 29: approval.ApprovalOA.Turnover:type_name -> approval.TurnoverApply - 53, // 30: approval.ApprovalOA.OverTime:type_name -> approval.OverTimeApply - 54, // 31: approval.ApprovalOA.Leave:type_name -> approval.Leave + 50, // 26: approval.ApprovalOA.LeaveApply:type_name -> approval.LeaveApply + 51, // 27: approval.ApprovalOA.OutWork:type_name -> approval.OutWorkApply + 52, // 28: approval.ApprovalOA.MakeUp:type_name -> approval.MakeUpApply + 53, // 29: approval.ApprovalOA.Turnover:type_name -> approval.TurnoverApply + 54, // 30: approval.ApprovalOA.OverTime:type_name -> approval.OverTimeApply + 55, // 31: approval.ApprovalOA.Leave:type_name -> approval.Leave 43, // 32: approval.LeaveApply.CopyUsers:type_name -> approval.CopyUser 44, // 33: approval.LeaveApply.ApprovalUsers:type_name -> approval.ApprovalUser - 43, // 34: approval.OutWorkApply.CopyUsers:type_name -> approval.CopyUser - 44, // 35: approval.OutWorkApply.ApprovalUsers:type_name -> approval.ApprovalUser - 43, // 36: approval.MakeUpApply.CopyUsers:type_name -> approval.CopyUser - 44, // 37: approval.MakeUpApply.ApprovalUsers:type_name -> approval.ApprovalUser - 43, // 38: approval.TurnoverApply.CopyUsers:type_name -> approval.CopyUser - 44, // 39: approval.TurnoverApply.ApprovalUsers:type_name -> approval.ApprovalUser - 43, // 40: approval.OverTimeApply.CopyUsers:type_name -> approval.CopyUser - 44, // 41: approval.OverTimeApply.ApprovalUsers:type_name -> approval.ApprovalUser - 43, // 42: approval.Leave.CopyUsers:type_name -> approval.CopyUser - 44, // 43: approval.Leave.ApprovalUsers:type_name -> approval.ApprovalUser - 55, // 44: approval.FinancialForm.CostInfo:type_name -> approval.CostInfo - 56, // 45: approval.FinancialForm.InvoiceInfo:type_name -> approval.InvoiceInfo - 34, // 46: approval.Approval.Create:input_type -> approval.CreateRequest - 7, // 47: approval.Approval.UsedNumByUser:input_type -> approval.UsedNumByUserRequest - 5, // 48: approval.Approval.UpdateExhibitionApplyID:input_type -> approval.UpdateEhApplyIDRequest - 36, // 49: approval.Approval.Detail:input_type -> approval.DetailRequest - 34, // 50: approval.Approval.Update:input_type -> approval.CreateRequest - 37, // 51: approval.Approval.Remove:input_type -> approval.RemoveRequest - 19, // 52: approval.Approval.MyWork:input_type -> approval.ListRequest - 19, // 53: approval.Approval.MySubmit:input_type -> approval.ListRequest - 9, // 54: approval.Approval.NowLevelByInfo:input_type -> approval.NowLevelByInfoRequest - 22, // 55: approval.Approval.Information:input_type -> approval.InformationRequest - 21, // 56: approval.Approval.Viewed:input_type -> approval.ViewedRequest - 17, // 57: approval.Approval.SetStatus:input_type -> approval.StatusRequest - 46, // 58: approval.Approval.DetailSetting:input_type -> approval.DetailSettingRequest - 45, // 59: approval.Approval.UpdateSetting:input_type -> approval.SettingRequest - 2, // 60: approval.Approval.IsExistPayRight:input_type -> approval.IsExistPayRightRequest - 1, // 61: approval.Approval.ChangeBundlePay:input_type -> approval.ChangeBundlePayRequest - 12, // 62: approval.Approval.CreateType:input_type -> approval.CreateTypeRequest - 13, // 63: approval.Approval.DetailType:input_type -> approval.TypeResponse - 12, // 64: approval.Approval.UpdateType:input_type -> approval.CreateTypeRequest - 11, // 65: approval.Approval.AllType:input_type -> approval.CommonRequest - 37, // 66: approval.Approval.RemoveType:input_type -> approval.RemoveRequest - 11, // 67: approval.Approval.AllGroup:input_type -> approval.CommonRequest - 57, // 68: approval.Approval.GetName:input_type -> approval.GetNameRequest - 38, // 69: approval.Approval.Create:output_type -> approval.ApprovalResponse - 8, // 70: approval.Approval.UsedNumByUser:output_type -> approval.UsedNumByUserResponse - 6, // 71: approval.Approval.UpdateExhibitionApplyID:output_type -> approval.UpdateEhApplyIDResponse - 34, // 72: approval.Approval.Detail:output_type -> approval.CreateRequest - 38, // 73: approval.Approval.Update:output_type -> approval.ApprovalResponse - 39, // 74: approval.Approval.Remove:output_type -> approval.RemoveResponse - 20, // 75: approval.Approval.MyWork:output_type -> approval.ListResponse - 20, // 76: approval.Approval.MySubmit:output_type -> approval.ListResponse - 10, // 77: approval.Approval.NowLevelByInfo:output_type -> approval.WorkFlowResponse - 24, // 78: approval.Approval.Information:output_type -> approval.InformationResponse - 38, // 79: approval.Approval.Viewed:output_type -> approval.ApprovalResponse - 18, // 80: approval.Approval.SetStatus:output_type -> approval.StatusResponse - 45, // 81: approval.Approval.DetailSetting:output_type -> approval.SettingRequest - 47, // 82: approval.Approval.UpdateSetting:output_type -> approval.SettingResponse - 3, // 83: approval.Approval.IsExistPayRight:output_type -> approval.IsExistPayRightResponse - 0, // 84: approval.Approval.ChangeBundlePay:output_type -> approval.CommonResponse - 13, // 85: approval.Approval.CreateType:output_type -> approval.TypeResponse - 12, // 86: approval.Approval.DetailType:output_type -> approval.CreateTypeRequest - 13, // 87: approval.Approval.UpdateType:output_type -> approval.TypeResponse - 14, // 88: approval.Approval.AllType:output_type -> approval.AllTypeResponse - 18, // 89: approval.Approval.RemoveType:output_type -> approval.StatusResponse - 16, // 90: approval.Approval.AllGroup:output_type -> approval.AllGroupResponse - 58, // 91: approval.Approval.GetName:output_type -> approval.GetNameResponse - 69, // [69:92] is the sub-list for method output_type - 46, // [46:69] is the sub-list for method input_type - 46, // [46:46] is the sub-list for extension type_name - 46, // [46:46] is the sub-list for extension extendee - 0, // [0:46] is the sub-list for field type_name + 48, // 34: approval.OutWorkApply.ApplyTimes:type_name -> approval.ApplyTime + 43, // 35: approval.OutWorkApply.CopyUsers:type_name -> approval.CopyUser + 44, // 36: approval.OutWorkApply.ApprovalUsers:type_name -> approval.ApprovalUser + 48, // 37: approval.MakeUpApply.ApplyTimes:type_name -> approval.ApplyTime + 43, // 38: approval.MakeUpApply.CopyUsers:type_name -> approval.CopyUser + 44, // 39: approval.MakeUpApply.ApprovalUsers:type_name -> approval.ApprovalUser + 48, // 40: approval.TurnoverApply.ApplyTimes:type_name -> approval.ApplyTime + 43, // 41: approval.TurnoverApply.CopyUsers:type_name -> approval.CopyUser + 44, // 42: approval.TurnoverApply.ApprovalUsers:type_name -> approval.ApprovalUser + 48, // 43: approval.OverTimeApply.ApplyTimes:type_name -> approval.ApplyTime + 43, // 44: approval.OverTimeApply.CopyUsers:type_name -> approval.CopyUser + 44, // 45: approval.OverTimeApply.ApprovalUsers:type_name -> approval.ApprovalUser + 48, // 46: approval.Leave.ApplyTimes:type_name -> approval.ApplyTime + 43, // 47: approval.Leave.CopyUsers:type_name -> approval.CopyUser + 44, // 48: approval.Leave.ApprovalUsers:type_name -> approval.ApprovalUser + 59, // 49: approval.FinancialForm.CostInfo:type_name -> approval.CostInfo + 60, // 50: approval.FinancialForm.InvoiceInfo:type_name -> approval.InvoiceInfo + 34, // 51: approval.Approval.Create:input_type -> approval.CreateRequest + 7, // 52: approval.Approval.UsedNumByUser:input_type -> approval.UsedNumByUserRequest + 5, // 53: approval.Approval.UpdateExhibitionApplyID:input_type -> approval.UpdateEhApplyIDRequest + 36, // 54: approval.Approval.Detail:input_type -> approval.DetailRequest + 34, // 55: approval.Approval.Update:input_type -> approval.CreateRequest + 37, // 56: approval.Approval.Remove:input_type -> approval.RemoveRequest + 19, // 57: approval.Approval.MyWork:input_type -> approval.ListRequest + 19, // 58: approval.Approval.MySubmit:input_type -> approval.ListRequest + 9, // 59: approval.Approval.NowLevelByInfo:input_type -> approval.NowLevelByInfoRequest + 22, // 60: approval.Approval.Information:input_type -> approval.InformationRequest + 21, // 61: approval.Approval.Viewed:input_type -> approval.ViewedRequest + 17, // 62: approval.Approval.SetStatus:input_type -> approval.StatusRequest + 46, // 63: approval.Approval.DetailSetting:input_type -> approval.DetailSettingRequest + 45, // 64: approval.Approval.UpdateSetting:input_type -> approval.SettingRequest + 2, // 65: approval.Approval.IsExistPayRight:input_type -> approval.IsExistPayRightRequest + 1, // 66: approval.Approval.ChangeBundlePay:input_type -> approval.ChangeBundlePayRequest + 12, // 67: approval.Approval.CreateType:input_type -> approval.CreateTypeRequest + 13, // 68: approval.Approval.DetailType:input_type -> approval.TypeResponse + 12, // 69: approval.Approval.UpdateType:input_type -> approval.CreateTypeRequest + 11, // 70: approval.Approval.AllType:input_type -> approval.CommonRequest + 37, // 71: approval.Approval.RemoveType:input_type -> approval.RemoveRequest + 11, // 72: approval.Approval.AllGroup:input_type -> approval.CommonRequest + 56, // 73: approval.Approval.GetName:input_type -> approval.GetNameRequest + 38, // 74: approval.Approval.Create:output_type -> approval.ApprovalResponse + 8, // 75: approval.Approval.UsedNumByUser:output_type -> approval.UsedNumByUserResponse + 6, // 76: approval.Approval.UpdateExhibitionApplyID:output_type -> approval.UpdateEhApplyIDResponse + 34, // 77: approval.Approval.Detail:output_type -> approval.CreateRequest + 38, // 78: approval.Approval.Update:output_type -> approval.ApprovalResponse + 39, // 79: approval.Approval.Remove:output_type -> approval.RemoveResponse + 20, // 80: approval.Approval.MyWork:output_type -> approval.ListResponse + 20, // 81: approval.Approval.MySubmit:output_type -> approval.ListResponse + 10, // 82: approval.Approval.NowLevelByInfo:output_type -> approval.WorkFlowResponse + 24, // 83: approval.Approval.Information:output_type -> approval.InformationResponse + 38, // 84: approval.Approval.Viewed:output_type -> approval.ApprovalResponse + 18, // 85: approval.Approval.SetStatus:output_type -> approval.StatusResponse + 45, // 86: approval.Approval.DetailSetting:output_type -> approval.SettingRequest + 47, // 87: approval.Approval.UpdateSetting:output_type -> approval.SettingResponse + 3, // 88: approval.Approval.IsExistPayRight:output_type -> approval.IsExistPayRightResponse + 0, // 89: approval.Approval.ChangeBundlePay:output_type -> approval.CommonResponse + 13, // 90: approval.Approval.CreateType:output_type -> approval.TypeResponse + 12, // 91: approval.Approval.DetailType:output_type -> approval.CreateTypeRequest + 13, // 92: approval.Approval.UpdateType:output_type -> approval.TypeResponse + 14, // 93: approval.Approval.AllType:output_type -> approval.AllTypeResponse + 18, // 94: approval.Approval.RemoveType:output_type -> approval.StatusResponse + 16, // 95: approval.Approval.AllGroup:output_type -> approval.AllGroupResponse + 57, // 96: approval.Approval.GetName:output_type -> approval.GetNameResponse + 74, // [74:97] is the sub-list for method output_type + 51, // [51:74] is the sub-list for method input_type + 51, // [51:51] is the sub-list for extension type_name + 51, // [51:51] is the sub-list for extension extendee + 0, // [0:51] is the sub-list for field type_name } func init() { file_api_approval_approval_proto_init() } @@ -6971,7 +7012,7 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ApprovalOA); i { + switch v := v.(*ApplyTime); i { case 0: return &v.state case 1: @@ -6983,7 +7024,7 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LeaveApply); i { + switch v := v.(*ApprovalOA); i { case 0: return &v.state case 1: @@ -6995,7 +7036,7 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OutWorkApply); i { + switch v := v.(*LeaveApply); i { case 0: return &v.state case 1: @@ -7007,7 +7048,7 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MakeUpApply); i { + switch v := v.(*OutWorkApply); i { case 0: return &v.state case 1: @@ -7019,7 +7060,7 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TurnoverApply); i { + switch v := v.(*MakeUpApply); i { case 0: return &v.state case 1: @@ -7031,7 +7072,7 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OverTimeApply); i { + switch v := v.(*TurnoverApply); i { case 0: return &v.state case 1: @@ -7043,7 +7084,7 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Leave); i { + switch v := v.(*OverTimeApply); i { case 0: return &v.state case 1: @@ -7055,7 +7096,7 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CostInfo); i { + switch v := v.(*Leave); i { case 0: return &v.state case 1: @@ -7067,18 +7108,6 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InvoiceInfo); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetNameRequest); i { case 0: return &v.state @@ -7090,7 +7119,7 @@ func file_api_approval_approval_proto_init() { return nil } } - file_api_approval_approval_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { + file_api_approval_approval_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetNameResponse); i { case 0: return &v.state @@ -7102,7 +7131,7 @@ func file_api_approval_approval_proto_init() { return nil } } - file_api_approval_approval_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { + file_api_approval_approval_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FinancialForm); i { case 0: return &v.state @@ -7114,6 +7143,30 @@ func file_api_approval_approval_proto_init() { return nil } } + file_api_approval_approval_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CostInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InvoiceInfo); 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{ @@ -7121,7 +7174,7 @@ func file_api_approval_approval_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_api_approval_approval_proto_rawDesc, NumEnums: 0, - NumMessages: 60, + NumMessages: 61, NumExtensions: 0, NumServices: 1, }, diff --git a/api/approval/approval.proto b/api/approval/approval.proto index c237426..74e10fb 100644 --- a/api/approval/approval.proto +++ b/api/approval/approval.proto @@ -425,6 +425,12 @@ message SettingResponse { // oa审批 +message ApplyTime { + string Date = 1 [json_name = "date"]; + string Hour = 2 [json_name = "hour"]; + string M = 3 [json_name = "m"]; +} + message ApprovalOA { uint64 ID=1 [json_name = "ID"]; uint64 DeletedAt=2 [json_name = "deletedAt"]; @@ -465,8 +471,7 @@ message OutWorkApply { string ActionTime = 7 [json_name = "actionTime"]; string ApprovalID = 8 [json_name = "approvalID"]; int32 Status = 9 [json_name = "status"]; - string BeginTime = 10 [json_name = "beginTime"]; - string EndTime = 11 [json_name = "endTime"]; + repeated ApplyTime ApplyTimes = 10 [json_name = "applyTimes"]; string Reason = 12 [json_name = "reason"]; float Hours = 13 [json_name = "hours"]; string OutWorkAddress = 14 [json_name = "outWorkAddress"]; @@ -485,8 +490,7 @@ message MakeUpApply { string ActionTime = 7 [json_name = "actionTime"]; string ApprovalID = 8 [json_name = "approvalID"]; int32 Status = 9 [json_name = "status"]; - string MakeUpDate =10 [json_name = "makeUpDate"]; - string MakeUpTime =11 [json_name = "makeUpTime"]; + repeated ApplyTime ApplyTimes = 10 [json_name = "applyTimes"]; string Reason = 12 [json_name = "reason"]; repeated CopyUser CopyUsers = 13 [json_name = "copyUsers"]; repeated ApprovalUser ApprovalUsers = 14 [json_name = "approvalUsers"]; @@ -504,7 +508,7 @@ message TurnoverApply { int32 Status = 9 [json_name = "status"]; string HandoverUID = 10 [json_name = "handoverUID"]; string HandoverName = 11 [json_name = "handoverName"]; - string TurnoverTime = 12 [json_name = "turnoverTime"]; + repeated ApplyTime ApplyTimes = 12 [json_name = "applyTimes"]; string Reason = 13 [json_name = "reason"]; repeated CopyUser CopyUsers = 14 [json_name = "copyUsers"]; repeated ApprovalUser ApprovalUsers = 15 [json_name = "approvalUsers"]; @@ -520,8 +524,7 @@ message OverTimeApply { string ActionTime = 7 [json_name = "actionTime"]; string ApprovalID = 8 [json_name = "approvalID"]; int32 Status = 9 [json_name = "status"]; - string BeginTime = 10 [json_name = "beginTime"]; - string EndTime = 11 [json_name = "endTime"]; + repeated ApplyTime ApplyTimes = 10 [json_name = "applyTimes"]; string Reason = 12 [json_name = "reason"]; float Hours = 13 [json_name = "hours"]; repeated CopyUser CopyUsers = 14 [json_name = "copyUsers"]; @@ -538,8 +541,7 @@ message Leave { string ActionTime = 7 [json_name = "actionTime"]; string ApprovalID = 8 [json_name = "approvalID"]; int32 Status = 9 [json_name = "status"]; - string BeginTime = 10 [json_name = "beginTime"]; - string EndTime = 11 [json_name = "endTime"]; + repeated ApplyTime ApplyTimes = 10 [json_name = "applyTimes"]; string Reason = 12 [json_name = "reason"]; float Hours = 13 [json_name = "hours"]; float Days = 14 [json_name = "days"]; @@ -547,28 +549,6 @@ message Leave { repeated ApprovalUser ApprovalUsers = 16 [json_name = "approvalUsers"]; } -message CostInfo { - string Description = 1 [json_name = "description"]; - string UnitPrice = 2 [json_name = "unitPrice"]; - string CostUnit = 3 [json_name = "costUnit"]; - int64 CostNum = 4 [json_name = "costNum"]; - string TotalPrice = 5 [json_name = "totalPrice"]; - string UsedDepartment = 6 [json_name = "usedDepartment"]; -} - -message InvoiceInfo { - string InvoiceDate = 1 [json_name = "invoiceDate"]; - string InvoiceNo = 2 [json_name = "invoiceNo"]; - string InvoiceProvider = 3 [json_name = "invoiceProvider"]; - string Amount = 4 [json_name = "amount"]; - string UseTo = 5 [json_name = "useTo"]; - string Applicant = 6 [json_name = "applicant"]; - string PaymentMethod = 7 [json_name = "paymentMethod"]; - string PaymentObj = 8 [json_name = "paymentObj"]; - string InvoiceType = 9 [json_name = "invoiceType"]; - string Notes = 10 [json_name = "notes"]; -} - // 财务报表审批 message GetNameRequest { @@ -593,4 +573,27 @@ message FinancialForm { repeated CostInfo CostInfo = 11 [json_name = "costInfo"]; string PaymentMethod = 12 [json_name = "paymentMethod"]; repeated InvoiceInfo InvoiceInfo = 13 [json_name = "invoiceInfo"]; +} + + +message CostInfo { + string Description = 1 [json_name = "description"]; + string UnitPrice = 2 [json_name = "unitPrice"]; + string CostUnit = 3 [json_name = "costUnit"]; + int64 CostNum = 4 [json_name = "costNum"]; + string TotalPrice = 5 [json_name = "totalPrice"]; + string UsedDepartment = 6 [json_name = "usedDepartment"]; +} + +message InvoiceInfo { + string InvoiceDate = 1 [json_name = "invoiceDate"]; + string InvoiceNo = 2 [json_name = "invoiceNo"]; + string InvoiceProvider = 3 [json_name = "invoiceProvider"]; + string Amount = 4 [json_name = "amount"]; + string UseTo = 5 [json_name = "useTo"]; + string Applicant = 6 [json_name = "applicant"]; + string PaymentMethod = 7 [json_name = "paymentMethod"]; + string PaymentObj = 8 [json_name = "paymentObj"]; + string InvoiceType = 9 [json_name = "invoiceType"]; + string Notes = 10 [json_name = "notes"]; } \ No newline at end of file diff --git a/api/approval/approval.validator.pb.go b/api/approval/approval.validator.pb.go index 9bb2e57..1b84048 100644 --- a/api/approval/approval.validator.pb.go +++ b/api/approval/approval.validator.pb.go @@ -335,6 +335,9 @@ func (this *DetailSettingRequest) Validate() error { func (this *SettingResponse) Validate() error { return nil } +func (this *ApplyTime) Validate() error { + return nil +} func (this *ApprovalOA) Validate() error { if this.LeaveApply != nil { if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.LeaveApply); err != nil { @@ -386,6 +389,13 @@ func (this *LeaveApply) Validate() error { return nil } func (this *OutWorkApply) Validate() error { + for _, item := range this.ApplyTimes { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("ApplyTimes", err) + } + } + } for _, item := range this.CopyUsers { if item != nil { if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { @@ -403,6 +413,13 @@ func (this *OutWorkApply) Validate() error { return nil } func (this *MakeUpApply) Validate() error { + for _, item := range this.ApplyTimes { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("ApplyTimes", err) + } + } + } for _, item := range this.CopyUsers { if item != nil { if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { @@ -420,6 +437,13 @@ func (this *MakeUpApply) Validate() error { return nil } func (this *TurnoverApply) Validate() error { + for _, item := range this.ApplyTimes { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("ApplyTimes", err) + } + } + } for _, item := range this.CopyUsers { if item != nil { if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { @@ -437,6 +461,13 @@ func (this *TurnoverApply) Validate() error { return nil } func (this *OverTimeApply) Validate() error { + for _, item := range this.ApplyTimes { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("ApplyTimes", err) + } + } + } for _, item := range this.CopyUsers { if item != nil { if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { @@ -454,6 +485,13 @@ func (this *OverTimeApply) Validate() error { return nil } func (this *Leave) Validate() error { + for _, item := range this.ApplyTimes { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("ApplyTimes", err) + } + } + } for _, item := range this.CopyUsers { if item != nil { if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { @@ -470,12 +508,6 @@ func (this *Leave) Validate() error { } return nil } -func (this *CostInfo) Validate() error { - return nil -} -func (this *InvoiceInfo) Validate() error { - return nil -} func (this *GetNameRequest) Validate() error { return nil } @@ -499,3 +531,9 @@ func (this *FinancialForm) Validate() error { } return nil } +func (this *CostInfo) Validate() error { + return nil +} +func (this *InvoiceInfo) Validate() error { + return nil +} diff --git a/pkg/model/approval.go b/pkg/model/approval.go index cd78f51..7a193e7 100644 --- a/pkg/model/approval.go +++ b/pkg/model/approval.go @@ -76,23 +76,6 @@ const ( TypeArtExhibitionReward = "artExhibitionReward" TypeOa = "oa" // oa 父类 - /* 子类 */ - TypeOaLeave = "oa_leave" // 事假 - TypeOaSick = "oa_sick" // 病假 - TypeOaAnnualLeave = "oa_annualLeave" // 年假 - TypeOaDayOff = "oa_dayOff" // 调休 - TypeOaMaritalLeave = "oa_maritalLeave" // 婚假 - TypeOaMatingCheckLeave = "oa_matingCheckLeave" // 孕检假 - TypeOaMaternityLeave = "oa_maternityLeave" // 产假 - TypeOaPaternityLeave = "oa_paternityLeave" // 陪产假 - TypeOaParentalLeave = "oa_parentalLeave" // 育儿假 - TypeOaNursingLeave = "oa_nursingLeave" // 独生子女护理假 - TypeOaFuneralLeave = "oa_funeralLeave" // 丧假 - TypeOaMakeUp = "oa_makeUp" // 补卡 - TypeOaOvertime = "oa_overtime" // 加班 - TypeOaOutwork = "oa_outwork" // 外勤 - TypeOaTurnover = "oa_turnover" // 离职 - /* */ TypeFinancialForm = "financialFormApply" ) @@ -557,7 +540,8 @@ func MyAllWorkApprovals(in *approval.ListRequest) ([]*Approval, int64) { Preload("ExhibitionReward.ApprovalExhibitions"). Preload("ApprovalWorkFlows"). Preload("Exhibition.ApprovalExhibitions"). - Preload("FinancialForm") + Preload("FinancialForm"). + Preload("ApprovalOA") //我未阅读的和我未操作的 DB.Model(&Approval{}).Where(&Approval{Type: in.Type}).Where(&Approval{NowUserId: in.UserID, Status: StatusDoing}).Order("id desc").Select("id").Find(&ids) @@ -595,7 +579,8 @@ func MyApprovalWorkApprovals(in *approval.ListRequest) ([]*Approval, int64) { Preload("ApprovalType.ApprovalTypeGroup"). Preload("ApprovalWorkFlows"). Preload("Exhibition.ApprovalExhibitions"). - Preload("FinancialForm") + Preload("FinancialForm"). + Preload("ApprovalOA") if in.Type != "" { modelObj = modelObj.Where(&Approval{Type: in.Type}) @@ -653,7 +638,8 @@ func MyWorkApprovals(in *approval.ListRequest) ([]*Approval, int64) { Preload("ExhibitionReward.ApprovalExhibitions"). Preload("ApprovalWorkFlows"). Preload("Exhibition.ApprovalExhibitions"). - Preload("FinancialForm") + Preload("FinancialForm"). + Preload("ApprovalOA") if in.Type != "" { modelObj = modelObj.Where(&Approval{Type: in.Type}) @@ -710,7 +696,8 @@ func MySubmitApprovals(in *approval.ListRequest) ([]*Approval, int64) { Preload("ExhibitionReward.ApprovalExhibitions"). Preload("ApprovalType.ApprovalTypeGroup"). Preload("Exhibition.ApprovalExhibitions"). - Preload("FinancialForm") + Preload("FinancialForm"). + Preload("ApprovalOA") if in.Status != 0 { modelObj = modelObj.Where(&Approval{Status: int8(in.Status)}) @@ -743,7 +730,8 @@ func MyReadApprovals(in *approval.ListRequest) ([]*Approval, int64) { Preload("ExhibitionReward.ApprovalExhibitions"). Preload("ApprovalType.ApprovalTypeGroup"). Preload("Exhibition.ApprovalExhibitions"). - Preload("FinancialForm") + Preload("FinancialForm"). + Preload("ApprovalOA") if in.Type != "" { modelObj = modelObj.Where(&Approval{Type: in.Type}) @@ -834,11 +822,10 @@ func getApprovalContentFactory(typeFiled string) (ApprovalContentInterface, erro case TypeFinancialForm: return &FinancialForm{}, nil default: - v, _ := TypeMap[typeFiled] - if v == "oa" { + if TypeMap[typeFiled] == TypeOa { return &ApprovalOA{}, nil } else { - return &Approval{}, nil + return nil, errors.New("无法识别的审批类型") } } } diff --git a/pkg/model/approval_oa.go b/pkg/model/approval_oa.go index 57b1ebb..5f93c0c 100644 --- a/pkg/model/approval_oa.go +++ b/pkg/model/approval_oa.go @@ -16,12 +16,12 @@ type ApprovalOA struct { CreatedAt time.Time `gorm:"column:created_at" json:"createdAt"` // 创建时间 UpdatedAt time.Time `gorm:"column:updated_at" json:"updatedAt"` // 更新时间 ApprovalID uint64 `gorm:"column:approval_id" json:"approvalID"` // 申请的id - LeaveApply LeaveApply `json:"leaveApply" gorm:"column:leave_apply;type:json;comment:假期余额申请"` - OutWork OutWorkApply `json:"outWork" gorm:"column:out_work;type:json;comment:外勤"` - MakeUp MakeUpApply `json:"makeUp" gorm:"column:make_up;type:json;comment:加班"` - Turnover TurnoverApply `json:"turnover" gorm:"column:turnover;type:json;comment:离职"` - OverTime OverTimeApply `json:"overTime" gorm:"column:over_time;type:json;comment:加班"` - Leave Leave `json:"leave" gorm:"column:leave;type:json;comment:请假"` + LeaveApply *LeaveApply `json:"leaveApply" gorm:"column:leave_apply;type:json;comment:假期余额申请"` + OutWork *OutWorkApply `json:"outWork" gorm:"column:out_work;type:json;comment:外勤"` + MakeUp *MakeUpApply `json:"makeUp" gorm:"column:make_up;type:json;comment:加班"` + Turnover *TurnoverApply `json:"turnover" gorm:"column:turnover;type:json;comment:离职"` + OverTime *OverTimeApply `json:"overTime" gorm:"column:over_time;type:json;comment:加班"` + Leave *Leave `json:"leave" gorm:"column:leave;type:json;comment:请假"` } // LeaveApply @@ -52,8 +52,7 @@ type OutWorkApply struct { DepartmentUID string `json:"departmentUID" gorm:"column:department_uid;type:text;comment:部门UID"` // 部门UID ApplyType string `json:"applyType" gorm:"column:apply_type;type:varchar(255);comment:审批|请假类型"` ActionTime string `json:"actionTime" gorm:"column:action_time;type:varchar(255);comment:操作|申请时间"` - BeginTime string `json:"beginTime" gorm:"column:begin_time;type:varchar(255);comment:开始时间"` - EndTime string `json:"endTime" gorm:"column:end_time;type:varchar(255);comment:结束时间"` + ApplyTimes ApplyTimes `json:"applyTimes" gorm:"column:apply_times;type:json;comment:时间"` Hours float32 `json:"hours" gorm:"column:hours;type:decimal(10,2);comment:时长(小时)"` OutWorkAddress string `json:"outWorkAddress" gorm:"column:out_work_address;type:varchar(255);comment:外勤地址"` Vehicle string `json:"vehicle" gorm:"column:vehicle;type:varchar(255);comment:交通工具"` @@ -74,8 +73,7 @@ type MakeUpApply struct { DepartmentUID string `json:"departmentUID" gorm:"column:department_uid;type:text;comment:部门UID"` // 部门UID ApplyType string `json:"applyType" gorm:"column:apply_type;type:varchar(255);comment:审批|请假类型"` ActionTime string `json:"actionTime" gorm:"column:action_time;type:varchar(255);comment:操作|申请时间"` - MakeUpDate string `json:"makeUpDate" gorm:"column:make_up_date;type:varchar(255);comment:补卡日期"` - MakeUpTime string `json:"makeUpTime" gorm:"column:make_up_time;type:varchar(255);comment:补卡时间"` + ApplyTimes ApplyTimes `json:"applyTimes" gorm:"column:apply_times;type:json;comment:时间"` Reason string `json:"reason" gorm:"column:reason;type:varchar(255);comment:理由"` ApprovalID string `json:"approvalID" gorm:"column:approval_id;type:varchar(255);comment:审批系统中的approvalID"` Status int32 `json:"status" gorm:"column:status;type:int;comment:状态(目前和审批系统状态同步)"` @@ -96,7 +94,7 @@ type TurnoverApply struct { Reason string `json:"reason" gorm:"column:reason;type:varchar(255);comment:理由"` HandoverUID string `json:"handoverUID" gorm:"column:handover_uid;type:varchar(255);comment:交接人"` HandoverName string `json:"handoverName" gorm:"column:handover_name;type:varchar(255);comment:交接人姓名"` - TurnoverTime string `json:"turnoverTime" gorm:"column:turnover_time;type:varchar(255);comment:离职时间"` + ApplyTimes ApplyTimes `json:"applyTimes" gorm:"column:apply_times;type:json;comment:时间"` ApprovalID string `json:"approvalID" gorm:"column:approval_id;type:varchar(255);comment:审批系统中的approvalID"` Status int32 `json:"status" gorm:"column:status;type:int;comment:状态(目前和审批系统状态同步)"` ApprovalUsers ApprovalUsers `json:"approvalUsers" gorm:"column:approval_users;type:json;comment:审批人"` @@ -114,8 +112,7 @@ type OverTimeApply struct { ApplyType string `json:"applyType" gorm:"column:apply_type;type:varchar(255);comment:审批|请假类型"` ApprovalID string `json:"approvalID" gorm:"column:approval_id;type:varchar(255);comment:审批系统中的approvalID"` ActionTime string `json:"actionTime" gorm:"column:action_time;type:varchar(255);comment:操作|申请时间"` - BeginTime string `json:"beginTime" gorm:"column:begin_time;type:varchar(255);comment:开始时间"` - EndTime string `json:"endTime" gorm:"column:end_time;type:varchar(255);comment:结束时间"` + ApplyTimes ApplyTimes `json:"applyTimes" gorm:"column:apply_times;type:json;comment:时间"` Reason string `json:"reason" gorm:"column:reason;type:varchar(255);comment:理由"` Hours float32 `json:"hours" gorm:"column:hours;type:decimal(10,2);comment:时长(小时)"` Status int32 `json:"status" gorm:"column:status;type:int;comment:状态(目前和审批系统状态同步)"` @@ -134,8 +131,7 @@ type Leave struct { ApplyType string `json:"applyType" gorm:"column:apply_type;type:varchar(255);comment:审批|请假类型"` ActionTime string `json:"actionTime" gorm:"column:action_time;type:varchar(255);comment:操作|申请时间"` ApprovalID string `json:"approvalID" gorm:"column:approval_id;type:varchar(255);comment:审批系统中的approvalID"` - BeginTime string `json:"beginTime" gorm:"column:begin_time;type:varchar(255);comment:开始时间"` - EndTime string `json:"endTime" gorm:"column:end_time;type:varchar(255);comment:结束时间"` + ApplyTimes ApplyTimes `json:"applyTimes" gorm:"column:apply_times;type:json;comment:时间"` Reason string `json:"reason" gorm:"column:reason;type:varchar(255);comment:理由"` Hours float32 `json:"hours" gorm:"column:hours;type:decimal(10,2);comment:时长(小时)"` Days float32 `json:"days" gorm:"column:days;type:decimal(10,2);comment:时长(天)"` @@ -146,6 +142,14 @@ type Leave struct { type VerifyFiles []string +type ApplyTime struct { + Date string `json:"date"` // 日期 2023-05-08 + Hour string `json:"hour"` // 时间 09:00 + M string `json:"m"` // 上午|下午 +} + +type ApplyTimes []ApplyTime + var sonMap = map[string]string{ "leave": "leave", // 事假 "sick": "leave", // 病假 @@ -194,17 +198,25 @@ func (oa *ApprovalOA) GetApproval(id uint64) (*Approval, error) { func (oa *ApprovalOA) SaveApprovalContent(in *approval.CreateRequest, a *Approval) error { - copier.CopyWithOption(&oa, in.ApprovalOA, copier.Option{DeepCopy: true}) - oa.ApprovalID = a.ID - - if err := oa.addOtherInfo(a); err != nil { + if err := oa.copyOAToModel(in, a); err != nil { return err } return DB.Create(&oa).Error } -func (oa *ApprovalOA) addOtherInfo(a *Approval) error { +func (oa *ApprovalOA) copyOAToModel(in *approval.CreateRequest, a *Approval) error { + copier.CopyWithOption(&oa, in.ApprovalOA, copier.Option{DeepCopy: true}) + oa.ApprovalID = a.ID + + if err := oa.addOtherInfoToModel(in, a); err != nil { + return err + } + + return nil +} + +func (oa *ApprovalOA) addOtherInfoToModel(in *approval.CreateRequest, a *Approval) error { if v, ok := sonMap[a.ApprovalType.KeyWord]; ok { switch v { case "leave": @@ -215,30 +227,80 @@ func (oa *ApprovalOA) addOtherInfo(a *Approval) error { } oa.Leave.ApprovalID = strconv.FormatUint(a.ID, 10) oa.Leave.Status = int32(a.Status) + + applyTimes := make([]ApplyTime, 0) + for i := 0; i < len(in.ApprovalOA.Leave.ApplyTimes); i++ { + applyTimes = append(applyTimes, ApplyTime{ + Date: in.ApprovalOA.Leave.ApplyTimes[i].Date, + Hour: in.ApprovalOA.Leave.ApplyTimes[i].Hour, + M: in.ApprovalOA.Leave.ApplyTimes[i].M, + }) + } + oa.Leave.ApplyTimes = applyTimes case "makeUp": oa.MakeUp.ApprovalUsers = a.ApprovalUsers oa.MakeUp.CopyUsers = a.CopyUsers oa.MakeUp.ApplyType = a.ApprovalType.KeyWord oa.MakeUp.ApprovalID = strconv.FormatUint(a.ID, 10) oa.MakeUp.Status = int32(a.Status) + + applyTimes := make([]ApplyTime, 0) + for i := 0; i < len(in.ApprovalOA.MakeUp.ApplyTimes); i++ { + applyTimes = append(applyTimes, ApplyTime{ + Date: in.ApprovalOA.MakeUp.ApplyTimes[i].Date, + Hour: in.ApprovalOA.MakeUp.ApplyTimes[i].Hour, + M: in.ApprovalOA.MakeUp.ApplyTimes[i].M, + }) + } + oa.MakeUp.ApplyTimes = applyTimes case "overTime": oa.OverTime.ApprovalUsers = a.ApprovalUsers oa.OverTime.CopyUsers = a.CopyUsers oa.OverTime.ApplyType = a.ApprovalType.KeyWord oa.OverTime.ApprovalID = strconv.FormatUint(a.ID, 10) oa.OverTime.Status = int32(a.Status) + + applyTimes := make([]ApplyTime, 0) + for i := 0; i < len(in.ApprovalOA.OverTime.ApplyTimes); i++ { + applyTimes = append(applyTimes, ApplyTime{ + Date: in.ApprovalOA.OverTime.ApplyTimes[i].Date, + Hour: in.ApprovalOA.OverTime.ApplyTimes[i].Hour, + M: in.ApprovalOA.OverTime.ApplyTimes[i].M, + }) + } + oa.OverTime.ApplyTimes = applyTimes case "outWork": oa.OutWork.ApprovalUsers = a.ApprovalUsers oa.OutWork.CopyUsers = a.CopyUsers oa.OutWork.ApplyType = a.ApprovalType.KeyWord oa.OutWork.ApprovalID = strconv.FormatUint(a.ID, 10) oa.OutWork.Status = int32(a.Status) + + applyTimes := make([]ApplyTime, 0) + for i := 0; i < len(in.ApprovalOA.OutWork.ApplyTimes); i++ { + applyTimes = append(applyTimes, ApplyTime{ + Date: in.ApprovalOA.OutWork.ApplyTimes[i].Date, + Hour: in.ApprovalOA.OutWork.ApplyTimes[i].Hour, + M: in.ApprovalOA.OutWork.ApplyTimes[i].M, + }) + } + oa.OutWork.ApplyTimes = applyTimes case "turnover": oa.Turnover.ApprovalUsers = a.ApprovalUsers oa.Turnover.CopyUsers = a.CopyUsers oa.Turnover.ApplyType = a.ApprovalType.KeyWord oa.Turnover.ApprovalID = strconv.FormatUint(a.ID, 10) oa.Turnover.Status = int32(a.Status) + + applyTimes := make([]ApplyTime, 0) + for i := 0; i < len(in.ApprovalOA.Turnover.ApplyTimes); i++ { + applyTimes = append(applyTimes, ApplyTime{ + Date: in.ApprovalOA.Turnover.ApplyTimes[i].Date, + Hour: in.ApprovalOA.Turnover.ApplyTimes[i].Hour, + M: in.ApprovalOA.Turnover.ApplyTimes[i].M, + }) + } + oa.Turnover.ApplyTimes = applyTimes case "leaveApply": oa.LeaveApply.ApprovalUsers = a.ApprovalUsers oa.LeaveApply.CopyUsers = a.CopyUsers @@ -262,11 +324,51 @@ func (oa *ApprovalOA) UpdateApprovalContent(in *approval.CreateRequest, a *Appro oa.ID = entity.ID + if err := oa.copyOAToModel(in, a); err != nil { + return err + } + return DB.Model(&oa).Updates(oa).Error } func (oa *ApprovalOA) BuildResContent(a *Approval, request *approval.CreateRequest) { + if err := oa.copyOAToRpc(a, request); err != nil { + return + } +} +func (oa *ApprovalOA) copyOAToRpc(a *Approval, in *approval.CreateRequest) error { + copier.CopyWithOption(&in.ApprovalOA, a, copier.Option{DeepCopy: true}) + + if err := oa.addOtherInfoToRpc(a, in); err != nil { + return err + } + + return nil +} + +func (oa *ApprovalOA) addOtherInfoToRpc(a *Approval, in *approval.CreateRequest) error { + if oa.Leave != nil { + copier.CopyWithOption(&a.ApprovalOA.Leave.ApplyTimes, in.ApprovalOA.Leave.ApplyTimes, copier.Option{DeepCopy: true}) + } + + if oa.MakeUp != nil { + copier.CopyWithOption(&a.ApprovalOA.MakeUp.ApplyTimes, in.ApprovalOA.MakeUp.ApplyTimes, copier.Option{DeepCopy: true}) + } + + if oa.Turnover != nil { + copier.CopyWithOption(&a.ApprovalOA.Turnover.ApplyTimes, in.ApprovalOA.Turnover.ApplyTimes, copier.Option{DeepCopy: true}) + } + + if oa.OverTime != nil { + copier.CopyWithOption(&a.ApprovalOA.OverTime.ApplyTimes, in.ApprovalOA.OverTime.ApplyTimes, copier.Option{DeepCopy: true}) + } + + if oa.OutWork != nil { + copier.CopyWithOption(&a.ApprovalOA.OutWork.ApplyTimes, in.ApprovalOA.OutWork.ApplyTimes, copier.Option{DeepCopy: true}) + } + + return nil } func (oa *ApprovalOA) DeleteApproval(p *Approval) error { diff --git a/pkg/model/migration.go b/pkg/model/migration.go index 5c3abe9..e7bfcc1 100644 --- a/pkg/model/migration.go +++ b/pkg/model/migration.go @@ -14,7 +14,9 @@ func migration() { addTable(&ApprovalReward{}) addTable(&FinancialFormSetting{}) // 财务报表审批 设置信息 - addTable(&FinancialForm{}) // 财务报表审批 设置信息 + addTable(&FinancialForm{}) // 财务报表审批 + + addTable(&ApprovalOA{}) // OA //增加字段 addColumn(&ApprovalType{}, "is_normal")