-- ==========================================================
-- 轧机模块 Layer 2：阶段图片表 + 技术方案完善 + 问题反馈附件
-- 目的：创建阶段图片/成果表，技术方案增加完成时间和结束时间
-- 说明：这些变更已在开发环境在线执行，本文件供新环境初始化或追溯使用
-- ==========================================================
-- 前提：fad_rm_tech_plan_item 表已存在（Layer 0 基础表）
-- ==========================================================

-- ----------------------------------------------------------
-- 1. 创建阶段图片/成果表
-- ----------------------------------------------------------
CREATE TABLE IF NOT EXISTS `fad_rm_stage_image` (
    `image_id`    BIGINT       NOT NULL AUTO_INCREMENT COMMENT '图片ID',
    `project_id`  BIGINT       NOT NULL                COMMENT '项目ID',
    `stage_key`   VARCHAR(50)  NOT NULL                COMMENT '阶段标识',
    `image_url`   VARCHAR(500) DEFAULT NULL            COMMENT '图片地址',
    `description` TEXT         DEFAULT NULL            COMMENT '描述',
    `sort_order`  INT          DEFAULT 0               COMMENT '排序号',
    `create_by`   VARCHAR(64)  DEFAULT ''              COMMENT '创建者',
    `create_time` DATETIME     DEFAULT NULL             COMMENT '创建时间',
    `update_by`   VARCHAR(64)  DEFAULT ''              COMMENT '更新者',
    `update_time` DATETIME     DEFAULT NULL             COMMENT '更新时间',
    `del_flag`    INT          DEFAULT 0               COMMENT '删除标志',
    PRIMARY KEY (`image_id`),
    KEY `idx_project_stage` (`project_id`, `stage_key`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='阶段图片/成果表';

-- ----------------------------------------------------------
-- 2. fad_rm_tech_plan_item — 增加完成时间和结束时间
-- ----------------------------------------------------------
ALTER TABLE `fad_rm_tech_plan_item`
    ADD COLUMN `completion_date` DATE DEFAULT NULL COMMENT '完成时间' AFTER `owner`,
    ADD COLUMN `end_date`        DATE DEFAULT NULL COMMENT '结束时间' AFTER `completion_date`;

-- ----------------------------------------------------------
-- 3. fad_rm_install_feedback — 增加附件字段
-- ----------------------------------------------------------
ALTER TABLE `fad_rm_install_feedback`
    ADD COLUMN `attachment_url` VARCHAR(500) DEFAULT NULL COMMENT '附件URL（JSON数组，支持图片/文档）' AFTER `status`;

-- ----------------------------------------------------------
-- 4. fad_rm_acceptance_item — 修复列名并补齐字段
-- ----------------------------------------------------------
ALTER TABLE `fad_rm_acceptance_item`
    CHANGE COLUMN `standard` `requirement` VARCHAR(500) DEFAULT NULL COMMENT '要求值',
    ADD COLUMN `actual_value` VARCHAR(200) DEFAULT NULL COMMENT '实测值' AFTER `requirement`,
    ADD COLUMN `notes` VARCHAR(500) DEFAULT NULL COMMENT '备注' AFTER `result`,
    MODIFY COLUMN `result` VARCHAR(20) DEFAULT 'pending' COMMENT '结果(pending=待检,pass=合格,fail=不合格)';

-- ----------------------------------------------------------
-- 5. fad_rm_commissioning_clause — 修复列名并补齐字段
-- ----------------------------------------------------------
ALTER TABLE `fad_rm_commissioning_clause`
    CHANGE COLUMN `clause_content` `clause` TEXT DEFAULT NULL COMMENT '技术协议条款',
    ADD COLUMN `standard` VARCHAR(500) DEFAULT NULL COMMENT '标准要求' AFTER `clause`,
    ADD COLUMN `result` TEXT DEFAULT NULL COMMENT '试车结果' AFTER `standard`,
    ADD COLUMN `pass_flag` CHAR(1) DEFAULT '0' COMMENT '是否合格(0=待确认,1=合格)' AFTER `result`;

-- ----------------------------------------------------------
-- 6. fad_rm_commissioning — 热负荷试车整体记录
-- ----------------------------------------------------------
CREATE TABLE IF NOT EXISTS `fad_rm_commissioning` (
    `commissioning_id` BIGINT       NOT NULL AUTO_INCREMENT COMMENT '主键',
    `project_id`       BIGINT       NOT NULL                COMMENT '项目ID',
    `commissioning_date` DATE       DEFAULT NULL            COMMENT '试车总体日期',
    `confirmer`        VARCHAR(50)  DEFAULT NULL            COMMENT '总体确认人',
    `remark`           VARCHAR(500) DEFAULT NULL            COMMENT '备注',
    `create_by`        VARCHAR(64)  DEFAULT ''              COMMENT '创建者',
    `create_time`      DATETIME     DEFAULT NULL            COMMENT '创建时间',
    `update_by`        VARCHAR(64)  DEFAULT ''              COMMENT '更新者',
    `update_time`      DATETIME     DEFAULT NULL            COMMENT '更新时间',
    `del_flag`         INT          DEFAULT 0               COMMENT '删除标志',
    PRIMARY KEY (`commissioning_id`),
    UNIQUE KEY `uk_project_id` (`project_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='热负荷试车记录表';

-- ----------------------------------------------------------
-- 7. fad_rm_stage_confirm — 阶段完成确认表（项目经理确认）
-- ----------------------------------------------------------
CREATE TABLE IF NOT EXISTS `fad_rm_stage_confirm` (
    `confirm_id`   BIGINT       NOT NULL AUTO_INCREMENT COMMENT '确认ID',
    `project_id`   BIGINT       NOT NULL                COMMENT '项目ID',
    `stage_key`    VARCHAR(50)  NOT NULL                COMMENT '阶段标识',
    `confirm_type` VARCHAR(20)  DEFAULT 'confirm'       COMMENT '确认类型: confirm=正常确认, override=强制放行',
    `confirmer_id` BIGINT       NOT NULL                COMMENT '确认人用户ID',
    `confirmed_at` DATETIME     DEFAULT CURRENT_TIMESTAMP COMMENT '确认时间',
    `remark`       VARCHAR(255) DEFAULT NULL            COMMENT '备注',
    `create_by`    VARCHAR(64)  DEFAULT ''              COMMENT '创建者',
    `create_time`  DATETIME     DEFAULT NULL            COMMENT '创建时间',
    `update_by`    VARCHAR(64)  DEFAULT ''              COMMENT '更新者',
    `update_time`  DATETIME     DEFAULT NULL            COMMENT '更新时间',
    `del_flag`     INT          DEFAULT 0               COMMENT '删除标志',
    PRIMARY KEY (`confirm_id`),
    UNIQUE KEY `uk_project_stage` (`project_id`, `stage_key`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='阶段完成确认表';
