-- 创建分账配置表
CREATE TABLE `split_account_config` (
  `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `rule_name` VARCHAR(200) NOT NULL COMMENT '分账规则配置名称',
  `rule_value` JSON NOT NULL COMMENT '分账规则配置（JSON格式）',
  `status` TINYINT NOT NULL DEFAULT 1 COMMENT '状态：0-禁用，1-启用',
  `description` VARCHAR(500) DEFAULT NULL COMMENT '配置描述',
  `created_by` VARCHAR(100) DEFAULT NULL COMMENT '创建人',
  `updated_by` VARCHAR(100) DEFAULT NULL COMMENT '更新人',
  `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updated_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted_at` TIMESTAMP NULL DEFAULT NULL COMMENT '软删除时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='分账配置表';
-- 创建分账扣钱日志表
CREATE TABLE `split_account_deduction_log` (
  `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '日志ID',
  `business_no` VARCHAR(64) NOT NULL COMMENT '订单号',
  `config_id` BIGINT UNSIGNED NOT NULL COMMENT '分账配置ID',
  `config_name` VARCHAR(200) NOT NULL COMMENT '分账配置名称',
  `deduction_details` JSON NOT NULL COMMENT '扣款规则（JSON数组）',
  `total_amount` DECIMAL(15,2) NOT NULL COMMENT '总金额（分账前）',
  `deduction_amount` DECIMAL(15,2) NOT NULL COMMENT '扣款总金额',
  `remaining_amount` DECIMAL(15,2) NOT NULL COMMENT '剩余金额（分账后）',
  `created_by` VARCHAR(100) NOT NULL COMMENT '创建人/系统',
  `updated_by` VARCHAR(100) COMMENT '更新人',
  `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updated_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
  COMMENT='分账扣钱日志表';
CREATE TABLE `outbound_order_location_log` (
    `id`               BIGINT       NOT NULL AUTO_INCREMENT COMMENT '记录ID',
    `out_order_id`     BIGINT       NOT NULL DEFAULT 0  COMMENT '出库单ID',
    `out_order_item_id` BIGINT       NOT NULL DEFAULT 0  COMMENT '出库单明细ID',
    `product_id`       BIGINT       NOT NULL DEFAULT 0  COMMENT '商品ID',
    `old_location_id`  BIGINT       NOT NULL DEFAULT 0  COMMENT '原库位ID',
    `new_location_id`  BIGINT       NOT NULL DEFAULT 0  COMMENT '新库位ID',
    `batch_no`         VARCHAR(100) NOT NULL DEFAULT '' COMMENT '批次号',
    `operator`         VARCHAR(100) NOT NULL DEFAULT '' COMMENT '操作员',
    `operator_id`      BIGINT       NOT NULL DEFAULT 0  COMMENT '操作员ID',
    `remark`           VARCHAR(255) NOT NULL DEFAULT '' COMMENT '备注',
    `created_at`       BIGINT       NOT NULL DEFAULT 0  COMMENT '创建时间戳(秒)',
    PRIMARY KEY (`id`),
    INDEX `idx_outbound_order_location_log_out_order_id` (`out_order_id`),
    INDEX `idx_outbound_order_location_log_out_order_item_id` (`out_order_item_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='出库单库位变更记录表';
ALTER TABLE sales_order ADD COLUMN is_distribution TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否分销 0-正常 1-分销';
CREATE TABLE `config` (
    `id` bigint NOT NULL AUTO_INCREMENT COMMENT '配置ID',
    `key` varchar(200) NOT NULL DEFAULT '' COMMENT '配置键',
    `value` text COMMENT '配置值',
    `created_at` bigint DEFAULT '0' COMMENT '创建时间戳(秒)',
    `updated_at` bigint DEFAULT '0' COMMENT '更新时间戳(秒)',
    `is_del` tinyint(1) DEFAULT '0' COMMENT '逻辑删除标记(0:未删除,1:已删除)',
    PRIMARY KEY (`id`),
    UNIQUE KEY `uk_key` (`key`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='配置表';
