import { OrderPriceCalculator, GoodsType, BackendCoupon, ActivityConfig, CouponType } from "./goods";

// 修正后的测试数据（严格匹配BaseCartItem类型）
const testGoodsList = [
  {
    // 核心修正1：product_type使用GoodsType枚举（替代原product_type字符串）
    product_type: GoodsType.NORMAL, // "sku"类型归类为普通商品
    // 核心修正2：isTemporary/isGift从数字转为布尔值
    isTemporary: false,
    isGift: false,
    // 核心修正3：discountSaleAmount从字符串转为数字
    discountSaleAmount: 0,

    // 原有字段（保持不变）
    salePrice: 2,
    memberPrice: 2,
    coverImg: "https://czg-oss.oss-cn-hangzhou.aliyuncs.com/catering/store/9660.png",
    name: "多规格起售3",
    specInfo: "常温",
    packFee: 1,
    type: "sku",
    skuData: {
      barCode: "88888888888888888888",
      costPrice: 2,
      coverImg: "",
      createTime: "2025-03-27 16:23:49",
      id: "2451",
      isDel: 0,
      isGrounding: 1,
      isPauseSale: 0,
      isSale: 1,
      isSoldStock: 0,
      lowPrice: 2,
      memberPrice: 2,
      name: "常温",
      originPrice: 2,
      productId: "946",
      realSalesNumber: 0,
      salePrice: 2,
      shopId: "29",
      specInfo: "常温",
      suitNum: 3,
      updateTime: "2025-03-27 16:23:49",
      weight: 0,
    },
    id: 18264,
    shop_id: 29,
    table_code: "APC36217948",
    sku_id: 2451,
    product_id: 946,
    product_name: "",
    sku_name: "",
    number: 4,
    pack_number: 0,
    discount_sale_note: "",
    is_print: 1,
    is_wait_call: 0,
    pro_group_info: "",
    remark: "",
    create_time: "2025-09-16 16:00:25",
    update_time: null,
  },
  {
    // 核心修正1：package类型映射为GoodsType.PACKAGE
    product_type: GoodsType.PACKAGE,
    // 核心修正2：布尔值转换
    isTemporary: false,
    isGift: false,
    // 核心修正3：字符串转数字
    discountSaleAmount: 5,

    // 原有字段
    salePrice: 11,
    memberPrice: 22,
    coverImg: "https://czg-oss.oss-cn-hangzhou.aliyuncs.com/catering/store/8351.png",
    name: "蜜雪冰城",
    specInfo: "",
    packFee: 555,
    type: "package",
    skuData: {
      barCode: "291739694712255",
      costPrice: 0,
      coverImg: "",
      createTime: "2025-02-16 16:36:46",
      id: "2383",
      isDel: 0,
      isGrounding: 1,
      isPauseSale: 0,
      isSale: 1,
      isSoldStock: 0,
      lowPrice: 11,
      memberPrice: 22,
      name: "",
      originPrice: 11,
      productId: "943",
      realSalesNumber: 0,
      salePrice: 11,
      shopId: "29",
      specInfo: "",
      suitNum: 33,
      updateTime: null,
      weight: 0,
    },
    id: 18263,
    shop_id: 29,
    table_code: "APC36217948",
    sku_id: 2383,
    product_id: 943,
    product_name: "",
    sku_name: "",
    number: 35,
    pack_number: 1,
    discount_sale_note: "",
    is_print: 1,
    is_wait_call: 0,
    pro_group_info: "",
    remark: "",
    create_time: "2025-09-16 15:59:59",
    update_time: "2025-09-16 16:00:48",
  },
  {
    // 核心修正1：空字符串product_type映射为GoodsType.EMPTY
    product_type: GoodsType.EMPTY,
    // 核心修正2：临时菜标记为true
    isTemporary: true,
    isGift: false,
    // 核心修正3：折扣金额为数字
    discountSaleAmount: 1,
    // 补充必需字段：salePrice（临时菜原价）
    salePrice: 1,

    // 原有字段
    id: 18265,
    shop_id: 29,
    table_code: "APC36217948",
    sku_id: -999,
    product_id: -18293045,
    product_name: "临时菜",
    sku_name: "",
    number: 1,
    pack_number: 0,
    discount_sale_note: "",
    is_print: 1,
    is_wait_call: 0,
    pro_group_info: "",
    remark: "",
    create_time: "2025-09-16 16:00:57",
    update_time: null,
  },
];

// 修正testCartOrder的key与商品id匹配（确保排序正确）
const testCartOrder = {
  "18264": 1717200000000, // 对应第一个商品id
  "18263": 1717200100000, // 对应第二个商品id
  "18265": 1717200200000, // 对应第三个商品id
};

// 其他配置保持不变
const testBackendCoupons: BackendCoupon[] = [
  {
    id: 1,
    title: "满减券",
    status: 1,
    couponType: 1,
    fullAmount: 2,
    discountAmount: 1,
    foods: '946',
    useType: 'dine-in,pickup',
    useShopType: 'all',
    validType: 'custom',
    validStartTime: '2025-09-16 16:00:00',
    validEndTime: '2025-09-30 16:00:00',
    useDays: '周一,周二,周三,周四,周五',
    useTimeType: 'all',
    shopId: 101,
    createTime: '2025-09-16 13:30:50',
    validDays: 2
  },
];
const testOrderConfig = {
  currentStoreId: "101",
  isMember: false,
  memberDiscountRate: 0.95,
  userPoints: 0,
  pointDeductionRule: {
    pointsPerYuan: 100,
    maxDeductionAmount: 50,
  },
  seatFeeConfig: {
    isEnabled: false,
    pricePerPerson: 3,
    personCount: 2,
  },
  merchantReduction: 10,
  additionalFee: 0,
};
const testActivities: ActivityConfig[] = [];
const testCurrentTime = new Date();

// 调用函数（此时类型完全匹配）
const result = OrderPriceCalculator.calculateOrderCostSummary(
  testGoodsList,
  "dine-in",
  testBackendCoupons,
  testActivities,
  testOrderConfig,
  testCartOrder,
  testCurrentTime
);
console.log("计算结果：", result);


export default {}