-- Phase 3 DDL Migration Script
-- 在已有数据库上执行，补充 Phase 3 新增的字段和表
-- dim_inventory_snapshot 如果已在之前执行中创建，则此脚本中的 CREATE TABLE 会报 "already exists"，可忽略

USE youzandatahub;

-- 1. dim_offline_store: 新增仓库编码和库存模式字段
ALTER TABLE dim_offline_store
  ADD COLUMN warehouse_code VARCHAR(64) DEFAULT NULL COMMENT '仓库编码(库存API必需)',
  ADD COLUMN stock_mode INT DEFAULT NULL COMMENT '库存模式:1独立,2共享总部,3共享门店仓,4进出存';

-- 2. dwd_trade_refund_detail: 新增退款诉求、阶段、买家ID、修改时间
ALTER TABLE dwd_trade_refund_detail
  ADD COLUMN refund_demand INT DEFAULT NULL COMMENT '退款诉求:1仅退款,2退货退款,3换货',
  ADD COLUMN refund_phase INT DEFAULT NULL COMMENT '退款阶段:1售中,2售后',
  ADD COLUMN yz_open_id VARCHAR(64) DEFAULT NULL COMMENT '买家yz_open_id',
  ADD COLUMN modified_time DATETIME DEFAULT NULL COMMENT '最后修改时间';

-- 3. 新建库存快照表 (如已存在则跳过)
CREATE TABLE IF NOT EXISTS `dim_inventory_snapshot` (
    `id` BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    `warehouse_code` VARCHAR(64) NOT NULL COMMENT '仓库编码',
    `sku_code` VARCHAR(128) NOT NULL COMMENT 'SKU编码',
    `stock_num` DECIMAL(12,2) DEFAULT 0 COMMENT '实物库存',
    `freeze_num` DECIMAL(12,2) DEFAULT 0 COMMENT '实物占用',
    `available_num` DECIMAL(12,2) DEFAULT 0 COMMENT '可用库存(stock_num-freeze_num)',
    `snapshot_date` DATE NOT NULL COMMENT '快照日期',
    `etl_update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '中台同步时间',
    UNIQUE KEY `uk_snapshot` (`warehouse_code`, `sku_code`, `snapshot_date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='每日库存快照表';
