Files
lti-api/internal/modules/master/production-standards/validations/production-standard.validation.go
T

43 lines
2.1 KiB
Go

package validation
type ProductionStandardDetailItem struct {
TargetHenDayProduction *float64 `json:"target_hen_day_production" validate:"omitempty,gte=0"`
TargetHenHouseProduction *float64 `json:"target_hen_house_production" validate:"omitempty,gte=0"`
TargetEggWeight *float64 `json:"target_egg_weight" validate:"omitempty,gte=0"`
TargetEggMass *float64 `json:"target_egg_mass" validate:"omitempty,gte=0"`
StandardFCR *float64 `json:"standard_fcr" validate:"omitempty,gte=0"`
}
type StandardGrowthDetailItem struct {
TargetMeanBw *float64 `json:"target_mean_bw" validate:"omitempty,gte=0"`
MaxDepletion *float64 `json:"max_depletion" validate:"omitempty,gte=0,lte=100"`
MinUniformity float64 `json:"min_uniformity" validate:"required,gte=0,lte=100"`
FeedIntake *float64 `json:"feed_intake" validate:"omitempty,gte=0"`
}
type DetailItem struct {
Week int `json:"week" validate:"required,gte=1"`
ProductionStandardDetails *ProductionStandardDetailItem `json:"production_standard_details,omitempty"`
ProductionStandardUniformityDetails *StandardGrowthDetailItem `json:"production_standard_uniformity_details" validate:"required"`
}
type Create struct {
Name string `json:"name" validate:"required,min=3"`
ProjectCategory string `json:"project_category" validate:"required,oneof=GROWING LAYING"`
Details []DetailItem `json:"details" validate:"required,min=1,dive"`
}
type Update struct {
Name *string `json:"name,omitempty" validate:"omitempty,min=3"`
ProjectCategory *string `json:"project_category,omitempty" validate:"omitempty,oneof=GROWING LAYING"`
Details []DetailItem `json:"details,omitempty"`
}
type Query struct {
Page int `query:"page" validate:"omitempty,number,min=1,gt=0"`
Limit int `query:"limit" validate:"omitempty,number,min=1,max=100,gt=0"`
Search string `query:"search" validate:"omitempty,max=50"`
ProjectCategory string `query:"project_category" validate:"omitempty,oneof=GROWING LAYING"`
}