import { getdetaillist, addToCart } from "@/api/detail"

const state = {
	detaillist: {},
	shopcartlist: {}
}
const mutations = {
	GETDETAILLIST(state, detaillist) {
		state.detaillist = detaillist
	}

}
const actions = {
	// 根据id获取商品详情
	async getdetaillist({ commit }, skuId = 1) {
		let result = await getdetaillist(skuId)
		if (result.code == 200) {
			commit("GETDETAILLIST", result.data)
		}
	},
	// 提醒服务器将产品添加数据到购物车中
	// 解构对象{skuId,skuNum}
	async addOrUpdateShopCart({ commit }, { skuId, skuNum }) {
		// 发请求:不需要使用三连环,无返回多余的数据
		let result = await addToCart(skuId, skuNum)

		// 该addOrUpdateShopCart函数用async定义,async执行返回的结果一定是Promise
		// 有成功和失败

		// 加入购物车成功 成功的标记
		if (result.code == 200) {
			return "ok"
		} else {
			// 加入购物车失败  失败的标记
			return Promise.reject(new Error("faile"))
		}
	}
}
const getters = {
	categoryView(state) {
		// 至少是一个空对象
		// 接口没网返回的是underfind,程序会报错
		return state.detaillist.categoryView || {}
	},
	skuInfo(state) {
		return state.detaillist.skuInfo || {}
	},
	spuSaleAttrList(state) {
		return state.detaillist.spuSaleAttrList || []
	}
}

export default {
	state,
	mutations,
	actions,
	getters
}