-- =====================================================
-- 商户应收账流水（场景 B 平台代收内部账）
-- 模块：business-finance / merchantreceivable
-- 版本：1.0
-- 创建时间：2026-06-11
-- 说明：biz_merchant_receivable 记录平台代收子单支付应收与退款冲减
-- 号段：主键 1926061430000000101 起（勿与其它 mock/seed 重叠）
-- =====================================================

CREATE TABLE IF NOT EXISTS `biz_merchant_receivable` (
    `id` VARCHAR(64) NOT NULL COMMENT '主键ID',

    `receivable_no` VARCHAR(64) NOT NULL COMMENT '应收流水号（业务侧唯一）',
    `entry_type` VARCHAR(32) NOT NULL COMMENT '流水类型：PAY-支付应收 REFUND-退款冲减',
    `finance_pay_order_id` VARCHAR(64) NOT NULL COMMENT '财务支付单ID',
    `pay_batch_id` VARCHAR(64) DEFAULT NULL COMMENT '商城合并支付批次ID',
    `mall_order_id` VARCHAR(64) DEFAULT NULL COMMENT '商城子订单ID',
    `pay_refund_order_id` VARCHAR(64) DEFAULT NULL COMMENT '关联退款单ID（冲减时）',
    `biz_scene` VARCHAR(32) NOT NULL COMMENT '业务场景：MALL_ORDER 等',
    `merchant_tenant_id` VARCHAR(64) NOT NULL COMMENT '子单商户租户ID',
    `settle_mode` VARCHAR(32) NOT NULL DEFAULT 'PLATFORM_COLLECT' COMMENT '结算模式：PLATFORM_COLLECT',
    `transaction_id` VARCHAR(64) DEFAULT NULL COMMENT '微信 transaction_id',
    `out_trade_no` VARCHAR(64) DEFAULT NULL COMMENT '原支付商户单号',
    `base_amount` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '基数金额（元）：支付为子单 payAmount，退款为 refundAmount',
    `commission_rate` DECIMAL(5,4) NOT NULL DEFAULT 0.0000 COMMENT '锁定佣金比例',
    `commission_amount` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '平台佣金金额（元）；退款为负值冲减',
    `merchant_amount` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '商户应收金额（元）；退款为负值冲减',
    `biz_time` DATETIME DEFAULT NULL COMMENT '业务发生时间（支付成功/退款成功）',
    `settlement_bill_id` VARCHAR(64) DEFAULT NULL COMMENT '已纳入的结算单ID（非作废单占用）',
    `settlement_bill_no` VARCHAR(64) DEFAULT NULL COMMENT '结算单号（冗余）',

    `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_receivable_no` (`receivable_no`),
    UNIQUE KEY `uk_pay_refund_order` (`pay_refund_order_id`),
    KEY `idx_finance_pay_order_id` (`finance_pay_order_id`),
    KEY `idx_mall_order_id` (`mall_order_id`),
    KEY `idx_merchant_tenant_id` (`merchant_tenant_id`),
    KEY `idx_entry_type` (`entry_type`),
    KEY `idx_biz_time` (`biz_time`),
    KEY `idx_settlement_bill_id` (`settlement_bill_id`),
    KEY `idx_create_date` (`create_date`),
    KEY `idx_tenant_id` (`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='商户应收账流水';
