import { defineStore } from 'pinia'

// 定义名为 'prod' 的 Pinia Store，用于管理商品相关数据和操作
export const scoreProdStore = defineStore('prod', {
  // 状态 (state) - 存储商品相关的数据
  state: () => ({
    id: 0, // 商品 ID
    skuTags: [], // SKU 标签列表，每个标签代表一个销售属性（如颜色、尺寸等）
    defalutSku: {
      price: 0, // 销售价
      oriPrice: 0, // 市场价（原价）
      stocks: 0, // 库存数量
      properties: '', // 销售属性组合字符串，例如 "红色;M号"
      skuName: '', // SKU 名称，具体到某一销售属性组合的商品名称
      prodName: '', // 商品名称，通用名称
      weight: 0, // 商品重量
      volume: 0, // 商品体积
      status: 1 // SKU 状态，0 表示禁用，1 表示启用
    }
  }),

  // 动作 (actions) - 包含更改状态的逻辑
  actions: {
    // 更新 SKU 标签列表
    updateSkuTags(skuTags) {
      this.skuTags = skuTags;
    },

    // 添加新的 SKU 标签
    addSkuTag(skuTag) {
      this.skuTags.push(skuTag);
    },

    // 移除指定索引的 SKU 标签
    removeSkuTag(tagIndex) {
      this.skuTags.splice(tagIndex, 1);
    },

    // 移除指定 SKU 标签中的某个项
    removeSkuTagItem(tagIndex, tagItemIndex) {
      if (this.skuTags[tagIndex] && this.skuTags[tagIndex].tagItems) {
        this.skuTags[tagIndex].tagItems.splice(tagItemIndex, 1);
      }
    },

    // 向指定 SKU 标签中添加新项
    addSkuTagItem({ tagIndex, tagItem }) {
      if (this.skuTags[tagIndex] && this.skuTags[tagIndex].tagItems) {
        this.skuTags[tagIndex].tagItems.push(tagItem);
      }
    }
  }
});
