-- 商品出库
-- 依据：doc/店铺后台/库存管理/商品出库/商品出库技术方案.md v1.0
-- 说明：biz_stock_log 已在 sql/biz_stock_inbound.sql 定义，本脚本仅建出库单表

-- 出库单主表
CREATE TABLE IF NOT EXISTS `biz_stock_outbound` (
  `outbound_id`    bigint(20)   NOT NULL AUTO_INCREMENT COMMENT '出库单ID',
  `outbound_no`    varchar(32)  NOT NULL COMMENT '出库单号（OUT+yyyyMMdd+6位）',
  `shop_id`        bigint(20)   NOT NULL COMMENT '店铺ID',
  `outbound_type`  char(1)      NOT NULL COMMENT '0下单扣减 1删除产品规格 2订单出库 3过期出库 4其他出库',
  `ref_order_no`   varchar(32)           DEFAULT NULL COMMENT '关联C端订单号（type=0必填）',
  `remark`         varchar(200)          DEFAULT NULL COMMENT '备注',
  `operator_id`    bigint(20)   NOT NULL DEFAULT '0' COMMENT '经办人用户ID；系统单可为0',
  `operator_name`  varchar(64)  NOT NULL DEFAULT '' COMMENT '经办人登录名快照；系统单可为「系统」',
  `outbound_time`  datetime     NOT NULL COMMENT '出库确认时间',
  `create_by`      varchar(64)           DEFAULT '' COMMENT '创建者',
  `create_time`    datetime              DEFAULT NULL COMMENT '创建时间',
  PRIMARY KEY (`outbound_id`),
  UNIQUE KEY `uk_outbound_no` (`outbound_no`),
  UNIQUE KEY `uk_ref_order_no` (`ref_order_no`),
  KEY `idx_shop_time` (`shop_id`, `outbound_time`),
  KEY `idx_shop_type` (`shop_id`, `outbound_type`, `outbound_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商品出库单';

-- 出库单明细
CREATE TABLE IF NOT EXISTS `biz_stock_outbound_item` (
  `item_id`      bigint(20)   NOT NULL AUTO_INCREMENT COMMENT '明细ID',
  `outbound_id`  bigint(20)   NOT NULL COMMENT '出库单ID',
  `goods_id`     bigint(20)   NOT NULL COMMENT '商品ID',
  `sku_id`       bigint(20)            DEFAULT NULL COMMENT 'SKU ID（多规格预留）',
  `goods_name`   varchar(200) NOT NULL COMMENT '商品名称快照',
  `main_pic`     varchar(512) NOT NULL DEFAULT '' COMMENT '主图快照',
  `spec_text`    varchar(256)          DEFAULT NULL COMMENT '规格展示文案',
  `quantity`     int(11)      NOT NULL COMMENT '出库数量（展示用；删除规格可为0）',
  `stock_before` int(11)      NOT NULL COMMENT '变化前库存',
  `stock_after`  int(11)      NOT NULL COMMENT '变化后库存',
  PRIMARY KEY (`item_id`),
  KEY `idx_outbound_id` (`outbound_id`),
  KEY `idx_goods_id` (`goods_id`, `outbound_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商品出库单明细';
