package goods

import (
	"errors"
	"spaceofcheng/services/models/model"
	"spaceofcheng/services/service"

	"github.com/astaxie/beego"
)

// GetGoodsSpec 获取商品规格
func (s *GoodsServ) GetGoodsSpec(caseids string, page int, pageSize int) (map[string]interface{}, error) {
	if pageSize == 0 {
		pageSize = service.PAGENUM
	}
	if page == 0 {
		page = 1
	}
	specs, err := s.dao.GetGoodsSpec(caseids, page, pageSize)
	if err != nil {
		beego.Error(err)
		return nil, err
	}
	total, err := s.dao.GetGoodsSpecCount(caseids)
	if err != nil {
		beego.Error(err)
		return nil, err
	}

	return map[string]interface{}{
		"list":     specs,
		"pagesize": pageSize,
		"pagenum":  total,
		"page":     page,
	}, err
}

// GetGoodsSpecByID 根据商品类型ID获取商品类型
func (s *GoodsServ) GetGoodsSpecByID(specid string) (*model.TdSpec, error) {
	goodsSpec, err := s.dao.GetGoodsSpecByID(specid)
	return goodsSpec, err
}

// SaveGoodsSpec 保存商品类型
func (s *GoodsServ) SaveGoodsSpec(goodsSpec model.TdSpec) (*model.TdSpec, error) {
	if goodsSpec.SpecName == "" {
		return nil, errors.New("规格名称不能为空！")
	}

	if goodsSpec.CaseId == "" {
		return nil, errors.New("案场不能为空！")
	}
	var err error
	if goodsSpec.SpecId == "" {
		_, err = s.dao.AddGoodsSpec(&goodsSpec)
	} else {
		err = s.dao.UpdateGoodsSpec(goodsSpec)
	}
	return &goodsSpec, err
}

// DelGoodsSpec 删除商品类型
func (s *GoodsServ) DelGoodsSpec(specid string) error {
	err := s.dao.DelGoodsSpec(specid)
	return err
}
