package validation

type Create struct {
	Name          string  `json:"name" validate:"required_strict,min=3,max=50"`
	Alias         string  `json:"alias" validate:"required_strict,max=5"`
	Pic           string  `json:"pic" validate:"required_strict,max=50"`
	Type          string  `json:"type" validate:"required_strict,max=50"`
	Category      string  `json:"category" validate:"required_strict,max=20"`
	Hatchery      *string `json:"hatchery,omitempty" validate:"omitempty,max=50"`
	Phone         string  `json:"phone" validate:"required_strict,max=20"`
	Email         string  `json:"email" validate:"required_strict,email,max=50"`
	Address       string  `json:"address" validate:"required_strict"`
	Npwp          *string `json:"npwp,omitempty" validate:"omitempty,max=50"`
	AccountNumber *string `json:"account_number,omitempty" validate:"omitempty,max=50"`
	DueDate       int     `json:"due_date" validate:"required_strict,number,gt=0"`
}

type Update struct {
	Name          *string `json:"name,omitempty" validate:"omitempty,min=3,max=50"`
	Alias         *string `json:"alias,omitempty" validate:"omitempty,max=5"`
	Pic           *string `json:"pic,omitempty" validate:"omitempty,max=50"`
	Type          *string `json:"type,omitempty" validate:"omitempty,max=50"`
	Category      *string `json:"category,omitempty" validate:"omitempty,max=20"`
	Hatchery      *string `json:"hatchery,omitempty" validate:"omitempty,max=50"`
	Phone         *string `json:"phone,omitempty" validate:"omitempty,max=20"`
	Email         *string `json:"email,omitempty" validate:"omitempty,email,max=50"`
	Address       *string `json:"address,omitempty" validate:"omitempty"`
	Npwp          *string `json:"npwp,omitempty" validate:"omitempty,max=50"`
	AccountNumber *string `json:"account_number,omitempty" validate:"omitempty,max=50"`
	DueDate       *int    `json:"due_date,omitempty" validate:"omitempty,number,gt=0"`
}

type Query struct {
	Page     int    `query:"page" validate:"omitempty,number,min=1"`
	Limit    int    `query:"limit" validate:"omitempty,number,min=1"`
	Flag	 string `query:"flag" validate:"omitempty"`
	Search   string `query:"search" validate:"omitempty,max=50"`
	Category string `query:"category" validate:"omitempty,max=50"`
}
