-- 盘盈盘亏调整表
-- 用于记录财务/主管手动发起的库存修正
CREATE TABLE IF NOT EXISTS `stock_adjustment` (
  `id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
  `order_no` VARCHAR(50) NOT NULL COMMENT '单号，如 ADJ-YYYYMMDD-XXXX',
  `base_id` INT DEFAULT NULL COMMENT '关联物料基础表',
  `stock_id` INT DEFAULT NULL COMMENT '关联具体库存行ID',
  `source_table` VARCHAR(50) DEFAULT NULL COMMENT '库存类型 (stock_buy/stock_semi/stock_product)',
  `sku` VARCHAR(100) DEFAULT NULL COMMENT '物料SKU',
  `material_name` VARCHAR(255) DEFAULT NULL COMMENT '物料名称',
  `spec_model` VARCHAR(255) DEFAULT NULL COMMENT '规格型号',
  `warehouse_location` VARCHAR(100) DEFAULT NULL COMMENT '库位',
  `adjust_type` VARCHAR(20) NOT NULL COMMENT '调整类型：profit 盘盈 / loss 盘亏',
  `adjust_quantity` DECIMAL(19,4) NOT NULL COMMENT '调整数量（绝对值）',
  `reason` VARCHAR(500) NOT NULL COMMENT '原因说明（必填）',
  `status` VARCHAR(20) DEFAULT 'pending' COMMENT '状态：pending 待处理 / completed 已完成 / cancelled 已取消',
  `operator` VARCHAR(100) DEFAULT NULL COMMENT '操作人/经办人',
  `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_order_no` (`order_no`),
  KEY `idx_create_time` (`create_time`),
  KEY `idx_adjust_type` (`adjust_type`),
  KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='盘盈盘亏调整表';
