package goods

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

	"github.com/astaxie/beego"
)

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

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

// GetGoodsTypeByID 根据商品类型ID获取商品类型
func (s *GoodsServ) GetGoodsTypeByID(typeid string) (*model.TdGoodsType, error) {
	goodsType, err := s.dao.GetGoodsTypeByID(typeid)
	return goodsType, err
}

// SaveGoodsType 保存商品类型
func (s *GoodsServ) SaveGoodsType(goodsType model.TdGoodsType) (*model.TdGoodsType, error) {
	if goodsType.TypeName == "" {
		return nil, errors.New("类型名称不能为空！")
	}

	if goodsType.CaseId == "" {
		return nil, errors.New("案场不能为空！")
	}

	var err error
	if goodsType.TypeId == "" {
		_, err = s.dao.AddGoodsType(&goodsType)
	} else {
		err = s.dao.UpdateGoodsType(&goodsType)
	}
	return &goodsType, err
}

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