-- =====================================================
-- 商城合并支付批次（Sprint 1）
-- 模块：business-mall
-- 说明：多商户 submit 拆单 + mall_pay_batch 合并支付
-- 执行前必须：SET NAMES utf8mb4（或客户端连接字符集选 utf8mb4）
-- 若库中 COMMENT 已乱码：请执行同目录 mall_pay_batch_comment_fix.sql
-- =====================================================

SET NAMES utf8mb4;

DROP TABLE IF EXISTS `mall_pay_batch`;
CREATE TABLE `mall_pay_batch` (
  `id` VARCHAR(64) NOT NULL COMMENT '主键ID',
  `batch_no` VARCHAR(64) NOT NULL COMMENT '支付批次编号',
  `member_id` VARCHAR(64) NOT NULL COMMENT '会员ID',
  `goods_amount` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '商品金额合计',
  `freight_amount` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '运费合计',
  `total_amount` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '订单总额（商品+运费，优惠前）',
  `discount_amount` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '首单/平台优惠合计',
  `merchant_coupon_amount` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '商户券抵扣合计',
  `platform_coupon_amount` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '平台券分摊合计',
  `coupon_amount` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '优惠券抵扣合计',
  `pay_amount` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '应付金额',
  `status` TINYINT NOT NULL DEFAULT 0 COMMENT '状态：0-待支付 1-已支付 5-已关闭',
  `delivery_type` VARCHAR(32) DEFAULT NULL COMMENT '配送方式：DELIVERY/PICKUP',
  `buyer_remark` VARCHAR(500) DEFAULT NULL COMMENT '买家留言',
  `pay_type` VARCHAR(32) DEFAULT NULL COMMENT '支付方式',
  `pay_time` DATETIME DEFAULT NULL COMMENT '支付时间',
  `unified_order_id` VARCHAR(64) DEFAULT NULL COMMENT '统一交易单ID（biz_trade_order.id）',
  `platform_member_coupon_id` VARCHAR(64) DEFAULT NULL COMMENT '平台券会员券ID（Sprint2）',
  `create_by` VARCHAR(64) DEFAULT NULL COMMENT '创建者',
  `create_date` DATETIME DEFAULT NULL COMMENT '创建时间',
  `update_by` VARCHAR(64) DEFAULT NULL COMMENT '更新者',
  `update_date` DATETIME DEFAULT NULL COMMENT '更新时间',
  `del_flag` CHAR(1) DEFAULT '0' COMMENT '删除标记：0-正常 1-删除',
  `remarks` VARCHAR(255) DEFAULT NULL COMMENT '备注信息',
  `tenant_code` VARCHAR(64) DEFAULT NULL COMMENT '租户编码（平台维度）',
  `tenant_id` VARCHAR(64) DEFAULT NULL COMMENT '租户ID（平台维度）',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_batch_no` (`batch_no`),
  KEY `idx_member_status` (`member_id`, `status`),
  KEY `idx_status_create_date` (`status`, `create_date`),
  KEY `idx_tenant_id` (`tenant_id`),
  KEY `idx_create_date` (`create_date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='商城合并支付批次';

ALTER TABLE `mall_order`
  ADD COLUMN `pay_batch_id` VARCHAR(64) DEFAULT NULL COMMENT '合并支付批次ID' AFTER `unified_order_id`,
  ADD COLUMN `goods_amount` DECIMAL(12,2) DEFAULT NULL COMMENT '商品金额（不含运费）' AFTER `total_amount`,
  ADD COLUMN `merchant_coupon_amount` DECIMAL(12,2) DEFAULT NULL COMMENT '商户券抵扣' AFTER `coupon_amount`,
  ADD COLUMN `platform_coupon_amount` DECIMAL(12,2) DEFAULT NULL COMMENT '平台券分摊抵扣' AFTER `merchant_coupon_amount`;

ALTER TABLE `mall_order` ADD KEY `idx_pay_batch_id` (`pay_batch_id`);
