package validation type Create struct { Name string `json:"name" validate:"required_strict,min=3"` KandangIDs []uint `json:"kandang_ids" validate:"required,min=1,dive,required"` IsActive bool `json:"is_active"` } type Update struct { Name *string `json:"name,omitempty" validate:"omitempty"` KandangIDs *[]uint `json:"kandang_ids,omitempty" validate:"omitempty,min=1,dive,required"` IsActive *bool `json:"is_active,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=500,gt=0"` Search string `query:"search" validate:"omitempty,max=50"` KandangId *uint `query:"kandang_id" validate:"omitempty"` IsActive *bool `query:"is_active" validate:"omitempty"` SortBy string `query:"sort_by" validate:"omitempty,max=50,oneof=name created_at updated_at" default:"updated_at"` OrderBy string `query:"order_by" validate:"omitempty,oneof=asc desc" default:"desc"` }