fix length type varchar for purchase vehicle_number

This commit is contained in:
ragilap
2026-04-14 14:46:55 +07:00
parent cae7f3ef63
commit 4c08fadb7a
4 changed files with 17 additions and 2 deletions
@@ -0,0 +1,2 @@
ALTER TABLE purchase_items
ALTER COLUMN vehicle_number TYPE VARCHAR(10) USING LEFT(vehicle_number, 10);
@@ -0,0 +1,2 @@
ALTER TABLE purchase_items
ALTER COLUMN vehicle_number TYPE VARCHAR(15) USING vehicle_number;
@@ -10,6 +10,7 @@ import (
"strconv"
"strings"
"time"
"unicode/utf8"
commonRepo "gitlab.com/mbugroup/lti-api.git/internal/common/repository"
commonSvc "gitlab.com/mbugroup/lti-api.git/internal/common/service"
@@ -46,7 +47,8 @@ type PurchaseService interface {
}
const (
priceTolerance = 0.0001
priceTolerance = 0.0001
purchaseVehicleNumberMaxLength = 15
)
type purchaseService struct {
@@ -1158,6 +1160,15 @@ func (s *purchaseService) ReceiveProducts(c *fiber.Ctx, id uint, req *validation
if payload.VehicleNumber != nil {
val := strings.TrimSpace(*payload.VehicleNumber)
if val != "" {
if utf8.RuneCountInString(val) > purchaseVehicleNumberMaxLength {
return nil, utils.BadRequest(
fmt.Sprintf(
"vehicle_number for item %d must be at most %d characters",
payload.PurchaseItemID,
purchaseVehicleNumberMaxLength,
),
)
}
vehicleNumber = &val
} else {
clearVehicle = true
@@ -45,7 +45,7 @@ type ReceivePurchaseItemRequest struct {
TransportPerItem *float64 `form:"transport_per_item" json:"transport_per_item,omitempty" validate:"omitempty,gte=0"`
TravelNumber *string `form:"travel_number" json:"travel_number" validate:"omitempty,max=100"`
TravelDocumentPath *string `form:"travel_document_path" json:"travel_document_path" validate:"omitempty,max=1024"`
VehicleNumber *string `form:"vehicle_number" json:"vehicle_number" validate:"omitempty,max=100"`
VehicleNumber *string `form:"vehicle_number" json:"vehicle_number" validate:"omitempty,max=15"`
ReceivedQty *float64 `form:"received_qty" json:"received_qty" validate:"omitempty,gte=0"`
}