package logic

import (
	"micro-bundle/internal/dao"
	"micro-bundle/internal/model"
	"micro-bundle/pb/bundle"

	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/utils"
	"github.com/jinzhu/copier"
)

// 增值套餐创建
func CreateValueAddBundle(req *bundle.ValueAddBundleProfile) (res *bundle.CommonResponse, err error) {
	res = new(bundle.CommonResponse)
	valueAddBundleProfile := new(model.ValueAddBundleProfile)
	_ = copier.CopyWithOption(&valueAddBundleProfile, req, copier.Option{DeepCopy: true})
	valueAddBundleProfile.UUID = utils.GetUUID()
	res, err = dao.CreateValueAddBundle(valueAddBundleProfile)
	return
}

// 增值套餐更新
func UpdateValueAddBundle(req *bundle.ValueAddBundleProfile) (res *bundle.CommonResponse, err error) {
	res = new(bundle.CommonResponse)
	valueAddBundleProfile := new(model.ValueAddBundleProfile)
	_ = copier.CopyWithOption(&valueAddBundleProfile, req, copier.Option{DeepCopy: true})
	res, err = dao.UpdateValueAddBundle(valueAddBundleProfile)
	return
}

// 增值套餐删除
func DeleteValueAddBundle(req *bundle.DelValueAddBundleRequest) (res *bundle.CommonResponse, err error) {
	res = new(bundle.CommonResponse)
	res, err = dao.DeleteValueAddBundle(req)
	return
}

// 增值套餐列表
func ValueAddBundleList(req *bundle.ValueAddBundleListRequest) (res *bundle.ValueAddBundleListResponse, err error) {
	res = new(bundle.ValueAddBundleListResponse)
	res, err = dao.ValueAddBundleList(req)
	return
}

// 增值套餐详情
func ValueAddBundleDetail(req *bundle.ValueAddBundleDetailRequest) (res *bundle.ValueAddBundleDetailResponse, err error) {
	res = new(bundle.ValueAddBundleDetailResponse)
	res.Bundle = new(bundle.ValueAddBundleProfile)
	res.Bundle, err = dao.ValueAddBundleDetail(req.Uuid)
	if err != nil {
		res.Msg = err.Error()
	}
	return
}