Files
lti-api/internal/modules/purchases/validations/purchase.validation.go
T
2025-11-05 18:58:06 +07:00

28 lines
1.2 KiB
Go

package validation
type PurchaseItemPayload struct {
ProductID uint `json:"product_id" validate:"required"`
ProductWarehouseID *uint `json:"product_warehouse_id,omitempty" validate:"omitempty,gt=0"`
Quantity float64 `json:"quantity" validate:"required,gt=0"`
}
type CreatePurchaseRequest struct {
SupplierID uint `json:"supplier_id" validate:"required"`
AreaID uint `json:"area_id" validate:"required"`
LocationID uint `json:"location_id" validate:"required"`
WarehouseID uint `json:"warehouse_id" validate:"required"`
Notes *string `json:"notes" validate:"omitempty,max=500"`
Items []PurchaseItemPayload `json:"items" validate:"required,min=1,dive"`
}
type StaffPurchaseApprovalItem struct {
PurchaseItemID uint64 `json:"purchase_item_id" validate:"required,gt=0"`
Price float64 `json:"price" validate:"required,gt=0"`
TotalPrice *float64 `json:"total_price,omitempty" validate:"omitempty,gt=0"`
}
type ApproveStaffPurchaseRequest struct {
Items []StaffPurchaseApprovalItem `json:"items" validate:"required,min=1,dive"`
Notes *string `json:"notes,omitempty" validate:"omitempty,max=500"`
}