package entities

//请求数据结构
type TestRequest struct {
	Name string `json:"name" example:"snow"`
	Url  string `json:"url" example:"github.com/qit-team/snow"`
}

//返回数据结构
type TestResponse struct {
	Id   int64  `json:"id" example:"1"`
	Name string `json:"name" example:"snow"`
	Url  string `json:"url" example:"github.com/qit-team/snow"`
}

/*
 * validator.v9文档
 * 地址https://godoc.org/gopkg.in/go-playground/validator.v9
 * 列了几个大家可能会用到的,如有遗漏,请看上面文档
 */

//请求数据结构
type TestValidatorRequest struct {
	//tips,因为组件required不管是没传值或者传 0 or "" 都通过不了,但是如果用指针类型,那么0就是0,而nil无法通过校验
	Id   *int64 `json:"id" validate:"required" example:"1"`
	Age  int `json:"age" validate:"required,gte=0,lte=130" example:"20"`
	Name *string `json:"name" validate:"required" example:"snow"`
	Email string `json:"email" validate:"required,email" example:"snow@github.com"`
	Url  string `json:"url" validate:"required" example:"github.com/qit-team/snow"`
	Mobile string `json:"mobile" validate:"required" example:"snow"`
	RangeNum int `json:"range_num" validate:"max=10,min=1" example:"3"`
	TestNum *int `json:"test_num" validate:"required,oneof=5 7 9" example:"7"`
	Content *string `json:"content" example:"snow"`
	Addresses []*Address `json:"addresses" validate:"required,dive,required"  `
}

// Address houses a users address information
type Address struct {
	Street string `json:"street" validate:"required" example:"huandaodonglu"`
	City   string `json:"city" validate:"required" example:"xiamen"`
	Planet string `json:"planet" validate:"required" example:"snow"`
	Phone  string `json:"phone" validate:"required" example:"snow"`
}