package resp

type Response struct {
	// 状态码
	Code Code `json:"code" example:"200"`
	// 数据
	Data interface{} `json:"data"`
	// 信息
	Msg string `json:"msg" example:"OK"`
}

type Code = int

const (
	SUCCESS      = 200
	UNAUTHORIZED = 401
	FORBIDDEN    = 403
	ERROR        = 500
)

func NewCustomResponse(code int, data interface{}, msg string) *Response {
	return &Response{
		Code: code,
		Data: data,
		Msg:  msg,
	}
}

func NewResponseWithCode(code int, data interface{}) *Response {
	return &Response{
		Code: SUCCESS,
		Data: data,
		Msg:  "OK",
	}
}

func NewResponse(data interface{}) *Response {
	return &Response{
		Code: SUCCESS,
		Data: data,
		Msg:  "OK",
	}
}
