-- @SAFE
-- ============================================================
-- MES2 文件管理工位升级补丁
-- 日期：2026-07-12
-- 
-- 新增 document_manage 工位：
--   - 管理员可以上传/删除文件、打开文件
--   - 操作员只能查看和打开文件
-- ============================================================

-- ============================================================
-- 第1步：确保 document 表存在
-- ============================================================
CREATE TABLE IF NOT EXISTS `DGZXY_document` (
    `id` INT AUTO_INCREMENT PRIMARY KEY,
    `title` VARCHAR(200) NOT NULL COMMENT '文档标题',
    `doc_no` VARCHAR(100) DEFAULT NULL COMMENT '文档编号',
    `category` VARCHAR(100) DEFAULT '' COMMENT '分类',
    `version` VARCHAR(50) DEFAULT '1.0' COMMENT '版本号',
    `author` VARCHAR(100) DEFAULT '' COMMENT '作者',
    `department` VARCHAR(100) DEFAULT '' COMMENT '部门',
    `status` VARCHAR(50) DEFAULT 'active' COMMENT '状态(active/archived)',
    `keywords` VARCHAR(500) DEFAULT '' COMMENT '关键词',
    `description` TEXT COMMENT '描述',
    `file_name` VARCHAR(255) DEFAULT NULL COMMENT '原始文件名',
    `file_path` VARCHAR(500) DEFAULT NULL COMMENT '文件存储路径',
    `file_size` BIGINT DEFAULT 0 COMMENT '文件大小(字节)',
    `file_type` VARCHAR(20) DEFAULT NULL COMMENT '文件扩展名',
    `operator` VARCHAR(100) DEFAULT '' COMMENT '上传人',
    `created_at` DATETIME DEFAULT CURRENT_TIMESTAMP,
    `updated_at` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    INDEX `idx_category` (`category`),
    INDEX `idx_status` (`status`),
    INDEX `idx_created_at` (`created_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='文档管理表';

-- ============================================================
-- 第2步：在 station_definitions 注册 document_manage 工位
-- ============================================================
INSERT INTO `DGZXY_station_definitions` (`station_type`, `db_table`, `time_column`, `has_product_type`, `has_product_model`, `filter_enabled`, `show_today_count`, `show_total_count`, `extra_config`)
VALUES ('document_manage', 'document', 'created_at', 0, 0, 0, 0, 0, '{"is_document_station":true}')
ON DUPLICATE KEY UPDATE `db_table`=VALUES(`db_table`), `time_column`=VALUES(`time_column`), `extra_config`=VALUES(`extra_config`);

-- ============================================================
-- 第3步：在 workstation 表注册工位（如果尚未存在）
-- ============================================================
-- 确保 workstation 表存在
CREATE TABLE IF NOT EXISTS `DGZXY_workstation` (
    `id` INT AUTO_INCREMENT PRIMARY KEY,
    `station_name` VARCHAR(100) NOT NULL COMMENT '工位名称',
    `station_code` VARCHAR(50) NOT NULL COMMENT '工位编码',
    `station_type` VARCHAR(50) NOT NULL UNIQUE COMMENT '工位类型标识',
    `sort_order` INT DEFAULT 0 COMMENT '排序',
    `status` TINYINT(1) DEFAULT 1 COMMENT '状态(1启用/0禁用)',
    `fields_config` TEXT COMMENT '字段配置(JSON)',
    `created_at` DATETIME DEFAULT CURRENT_TIMESTAMP,
    `updated_at` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    INDEX `idx_station_type` (`station_type`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='工位表';

-- 插入 document_manage 工位
INSERT INTO `DGZXY_workstation` (`station_name`, `station_code`, `station_type`, `sort_order`, `status`, `fields_config`)
VALUES ('文件管理', 'DOC', 'document_manage', 8, 1, '[]')
ON DUPLICATE KEY UPDATE `station_name`=VALUES(`station_name`), `station_code`=VALUES(`station_code`), `sort_order`=VALUES(`sort_order`);
