package sms

import (
	"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
	"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/responses"
)

type SendSmsRequest struct {
	*requests.JsonRequest
	Mobile  string `position:"Json" field:"mobile"`
	Type    string `position:"Json" field:"type"`
	Expired int64  `position:"Json" field:"expired"`
	Code    int64  `position:"Json" field:"code"`
}

type SendSmsResponse struct {
	*responses.BaseResponse
}

type SmsType = string

const (
	SmsTypeRegister SmsType = "reg" // 注册
)

type SendSmsParam struct {
	Mobile  string  // 手机号
	Type    SmsType // 验证码类型
	Expired int64   // 过期时间,秒数
	Code    int64   // 验证码
}

func CreateSendSmsRequest(param SendSmsParam) (req *SendSmsRequest) {
	req = &SendSmsRequest{
		JsonRequest: &requests.JsonRequest{},
		Mobile:      param.Mobile,
		Type:        param.Type,
		Expired:     param.Expired,
		Code:        param.Code,
	}
	req.InitWithApiInfo(HOST, VERSION, "/sms/agg/send")
	req.Method = requests.POST
	return
}

func CreateSendSmsResponse() (resp *SendSmsResponse) {
	resp = &SendSmsResponse{
		BaseResponse: &responses.BaseResponse{},
	}
	return
}