package dto

// @Time    : 2022/12/12 4:03 PM
// @Author  : lvhongmeng

type BasicRes struct {
	Code    int    `json:"code"`
	Message string `json:"message"`
}

type GenericSuccessApiResponse struct {
	BasicRes
	Data string `json:"data,omitempty"`
}

func Success() *GenericSuccessApiResponse {
	return &GenericSuccessApiResponse{
		BasicRes: DefaultSuccessBasicRes(),
		Data:     "success",
	}
}

func DefaultSuccessBasicRes() BasicRes {
	return BasicRes{
		Code:    200,
		Message: "ok",
	}
}

type BaseResp struct {
	ErrCode int    `json:"err_code"`
	ErrMsg  string `json:"err_msg"`
}

type CommonApiResp struct {
	BaseResp BaseResp `json:"base_resp"`
}

func SuccessBaseResp() BaseResp {
	return BaseResp{
		ErrCode: 0,
		ErrMsg:  "ok",
	}
}

func SuccessV2() CommonApiResp {
	return CommonApiResp{BaseResp: SuccessBaseResp()}
}

func FailedV2(code int, msg string) CommonApiResp {
	return CommonApiResp{
		BaseResp: BaseResp{
			ErrCode: code,
			ErrMsg:  msg,
		},
	}
}
