(BE-58,,59): extend db schema & build stock transfer api

- Extend DB schema for stock transfers
- Build stock transfer API (create,)
This commit is contained in:
aguhh18
2025-10-14 22:16:50 +07:00
parent 5283aed996
commit 9b016dc30a
25 changed files with 897 additions and 0 deletions
@@ -0,0 +1,41 @@
package validation
type Create struct {
Name string `json:"name" validate:"required_strict,min=3"`
}
type Query struct {
Page int `query:"page" validate:"omitempty,number,min=1"`
Limit int `query:"limit" validate:"omitempty,number,min=1,max=100"`
Search string `query:"search" validate:"omitempty,max=50"`
}
type TransferProduct struct {
ProductID uint `json:"product_id" validate:"required"`
ProductQty float64 `json:"product_qty" validate:"required,gt=0"`
}
type TransferDeliveryProduct struct {
ProductID uint `json:"product_id" validate:"required"`
ProductQty float64 `json:"product_qty" validate:"required,gt=0"`
}
type TransferDelivery struct {
DeliveryCost float64 `json:"delivery_cost" validate:"required"`
DeliveryCostPerItem float64 `json:"delivery_cost_per_item" validate:"required"`
Document string `json:"document"`
DriverName string `json:"driver_name" validate:"required"`
DeliveryNoteNumber string `json:"delivery_note_number" validate:"required"`
VehiclePlate string `json:"vehicle_plate" validate:"required"`
SupplierID uint `json:"supplier_id" validate:"required"`
Products []TransferDeliveryProduct `json:"products" validate:"required,dive"`
}
type TransferRequest struct {
TransferReason string `json:"transfer_reason" validate:"required"`
TransferDate string `json:"transfer_date" validate:"required,datetime=2006-01-02"`
SourceWarehouseID uint `json:"source_warehouse_id" validate:"required"`
DestinationWarehouseID uint `json:"destination_warehouse_id" validate:"required"`
Products []TransferProduct `json:"products" validate:"required,dive"`
Deliveries []TransferDelivery `json:"deliveries" validate:"required,dive"`
}