mirror of
https://gitlab.com/mbugroup/lti-api.git
synced 2026-05-23 14:55:42 +00:00
Feat[BE-261]: creating multiple Approval API, Update API, Delete API and some logic Adjustment
This commit is contained in:
@@ -4,39 +4,31 @@ import (
|
||||
"mime/multipart"
|
||||
)
|
||||
|
||||
// ApprovalRequest is used for expense approval endpoints
|
||||
type ApprovalRequest struct {
|
||||
Action string `json:"action" validate:"required,oneof=APPROVED REJECTED"`
|
||||
Notes *string `json:"notes"`
|
||||
}
|
||||
|
||||
type Create struct {
|
||||
PoNumber *string `form:"po_number" validate:"omitempty,max=50"`
|
||||
TransactionDate string `form:"transaction_date" validate:"required,datetime=2006-01-02"`
|
||||
Category string `form:"category" validate:"required,oneof=BOP NON-BOP"`
|
||||
SupplierID uint64 `form:"supplier_id" validate:"required,gt=0"`
|
||||
Documents []*multipart.FileHeader `form:"documents" validate:"omitempty,dive"`
|
||||
CostPerKandangs []CostPerKandang `form:"cost_per_kandangs" validate:"required,min=1,dive"`
|
||||
PoNumber string `form:"po_number" json:"po_number" validate:"omitempty,max=50"`
|
||||
TransactionDate string `form:"transaction_date" json:"transaction_date" validate:"required,datetime=2006-01-02"`
|
||||
Category string `form:"category" json:"category" validate:"required,oneof=BOP NON-BOP"`
|
||||
SupplierID uint64 `form:"supplier_id" json:"supplier_id" validate:"required,gt=0"`
|
||||
Documents []*multipart.FileHeader `form:"documents" json:"documents" validate:"omitempty,dive"`
|
||||
CostPerKandangs []CostPerKandang `form:"cost_per_kandangs" json:"cost_per_kandangs" validate:"required,min=1,dive"`
|
||||
}
|
||||
|
||||
type CostPerKandang struct {
|
||||
KandangID uint64 `json:"kandang_id" form:"kandang_id" validate:"required,gt=0"`
|
||||
CostItems []CostItem `json:"cost_items" form:"cost_items" validate:"required,min=1,dive"`
|
||||
KandangID uint64 `form:"kandang_id" json:"kandang_id" validate:"required,gt=0"`
|
||||
CostItems []CostItem `form:"cost_items" json:"cost_items" validate:"required,min=1,dive"`
|
||||
}
|
||||
|
||||
type CostItem struct {
|
||||
NonstockID uint64 `json:"nonstock_id" form:"nonstock_id" validate:"required,gt=0"`
|
||||
Quantity float64 `json:"quantity" form:"quantity" validate:"required,gt=0"`
|
||||
TotalCost float64 `json:"total_cost" form:"total_cost" validate:"required,gt=0"`
|
||||
Notes string `json:"notes" form:"notes" validate:"required,max=500"`
|
||||
NonstockID uint64 `form:"nonstock_id" json:"nonstock_id" validate:"required,gt=0"`
|
||||
Quantity float64 `form:"quantity" json:"quantity" validate:"required,gt=0"`
|
||||
TotalCost float64 `form:"total_cost" json:"total_cost" validate:"required,gt=0"`
|
||||
Notes string `form:"notes" json:"notes" validate:"required,max=500"`
|
||||
}
|
||||
|
||||
type Update struct {
|
||||
PoNumber *string `json:"po_number,omitempty" validate:"omitempty,max=50"`
|
||||
TransactionDate *string `json:"transaction_date,omitempty" validate:"omitempty,datetime=2006-01-02"`
|
||||
SupplierID *uint64 `json:"supplier_id,omitempty" validate:"omitempty,gt=0"`
|
||||
Documents *[]string `json:"documents,omitempty" validate:"omitempty,dive,max=255"`
|
||||
CostPerKandang *[]CostPerKandang `json:"cost_per_kandang,omitempty" validate:"omitempty,min=1,dive"`
|
||||
TransactionDate *string `form:"transaction_date" json:"transaction_date" validate:"omitempty,datetime=2006-01-02"`
|
||||
CostPerKandang *[]CostPerKandang `form:"cost_per_kandang" json:"cost_per_kandang" validate:"omitempty,min=1,dive"`
|
||||
Documents []*multipart.FileHeader `form:"documents" json:"documents" validate:"omitempty,dive"`
|
||||
}
|
||||
|
||||
type Query struct {
|
||||
@@ -46,21 +38,27 @@ type Query struct {
|
||||
}
|
||||
|
||||
type CreateRealization struct {
|
||||
Documents []*multipart.FileHeader `form:"documents" validate:"omitempty,dive"`
|
||||
Realizations []RealizationItem `json:"realizations" form:"realizations" validate:"required,min=1,dive"`
|
||||
}
|
||||
|
||||
type RealizationItem struct {
|
||||
ExpenseNonstockID uint64 `json:"expense_nonstock_id" form:"expense_nonstock_id" validate:"required,gt=0"`
|
||||
Qty float64 `json:"qty" form:"qty" validate:"required,gt=0"`
|
||||
UnitPrice float64 `json:"unit_price" form:"unit_price" validate:"required,gt=0"`
|
||||
TotalPrice float64 `json:"total_price" form:"total_price" validate:"required,gt=0"`
|
||||
Notes *string `json:"notes" form:"notes" validate:"omitempty,max=500"`
|
||||
}
|
||||
|
||||
type CompleteExpense struct {
|
||||
RealizationDate string `form:"realization_date" json:"realization_date" validate:"required,datetime=2006-01-02"`
|
||||
Documents []*multipart.FileHeader `form:"documents" json:"documents" validate:"omitempty,dive"`
|
||||
Realizations []RealizationItem `form:"realizations" json:"realizations" validate:"required,min=1,dive"`
|
||||
}
|
||||
|
||||
type UpdateRealization struct {
|
||||
Realizations []RealizationItem `json:"realizations" validate:"required,min=1,dive"`
|
||||
RealizationDate string `form:"realization_date" json:"realization_date" validate:"omitempty,datetime=2006-01-02"`
|
||||
Documents []*multipart.FileHeader `form:"documents" json:"documents" validate:"omitempty,dive"`
|
||||
Realizations []RealizationItem `form:"realizations" json:"realizations" validate:"required,min=1,dive"`
|
||||
}
|
||||
|
||||
type RealizationItem struct {
|
||||
ExpenseNonstockID uint64 `form:"expense_nonstock_id" json:"expense_nonstock_id" validate:"required,gt=0"`
|
||||
Qty float64 `form:"qty" json:"qty" validate:"required,gt=0"`
|
||||
UnitPrice float64 `form:"unit_price" json:"unit_price" validate:"required,gt=0"`
|
||||
TotalPrice float64 `form:"total_price" json:"total_price" validate:"required,gt=0"`
|
||||
Notes *string `form:"notes" json:"notes" validate:"omitempty,max=500"`
|
||||
}
|
||||
|
||||
type ApprovalRequest struct {
|
||||
Action string `json:"action" form:"action" validate:"required,oneof=APPROVED REJECTED"`
|
||||
ApprovableIds []uint `json:"approvable_ids" validate:"required,min=1,dive,gt=0"`
|
||||
Notes *string `json:"notes" form:"notes"`
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user