package validation

type Create struct {
	Name         string `json:"name" validate:"required_strict,min=3,max=50"`
	UomID        uint   `json:"uom_id" validate:"required,gt=0"`
	SupplierIDs  []uint `json:"supplier_ids,omitempty" validate:"omitempty,dive,gt=0"`
	Flags        []string `json:"flags" validate:"dive,max=50"`
}

type Update struct {
	Name         *string `json:"name,omitempty" validate:"omitempty,min=3,max=50"`
	UomID        *uint   `json:"uom_id,omitempty" validate:"omitempty,gt=0"`
	SupplierIDs  *[]uint `json:"supplier_ids,omitempty" validate:"omitempty,dive,gt=0"`
	Flags        *[]string `json:"flags,omitempty" validate:"omitempty,dive,max=50"`
}

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"`
	SupplierID uint   `query:"supplier_id" validate:"omitempty,gt=0"`
}
