package validation type Create struct { Name string `json:"name" validate:"required_strict,min=3"` } type Update struct { Name *string `json:"name,omitempty" validate:"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"` TransactionType string `query:"transaction_type" validate:"omitempty,max=50"` BankId *uint `query:"bank_id" validate:"omitempty,number,gt=0"` CustomerId *uint `query:"customer_id" validate:"omitempty,number,gt=0"` SupplierId *uint `query:"supplier_id" validate:"omitempty,number,gt=0"` SortDate string `query:"sort_date" validate:"omitempty,oneof=created_at payment_date"` StartDate string `query:"start_date" validate:"omitempty,datetime=2006-01-02"` EndDate string `query:"end_date" validate:"omitempty,datetime=2006-01-02"` }