-- 创建检验项目配置表
CREATE TABLE IF NOT EXISTS inspection_config (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    position INTEGER NOT NULL,        -- 位置序号 (1-6)
    name VARCHAR(50) NOT NULL,        -- 检验项目名称
    display_name VARCHAR(50) NOT NULL, -- 显示名称
    enabled BOOLEAN DEFAULT TRUE,     -- 是否启用
    required BOOLEAN DEFAULT FALSE,   -- 是否必填
    data_type VARCHAR(20) DEFAULT 'text', -- 数据类型: text, number, enum
    min_value FLOAT,                  -- 最小值 (用于number类型)
    max_value FLOAT,                  -- 最大值 (用于number类型)
    enum_values TEXT,                 -- 枚举值 (用于enum类型, JSON格式存储)
    unit VARCHAR(20),                 -- 单位
    sort_order INTEGER NOT NULL,      -- 排序顺序
    create_time TIMESTAMP NOT NULL,
    create_by VARCHAR(50) NOT NULL,
    update_time TIMESTAMP,
    update_by VARCHAR(50),
    is_deleted BOOLEAN DEFAULT FALSE,
    UNIQUE(position, is_deleted) -- 确保同一位置只有一个激活的配置
);

-- 创建检验数据记录表
CREATE TABLE IF NOT EXISTS inspection_data (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    order_id VARCHAR(50) NOT NULL,    -- 关联的工程号
    position INTEGER NOT NULL,        -- 位置序号
    config_id INTEGER NOT NULL,       -- 关联的配置ID
    value TEXT NOT NULL,              -- 检验值 (所有类型都用TEXT存储)
    status VARCHAR(20) DEFAULT 'pass', -- 状态: pass, fail, warning
    remark TEXT,                      -- 备注
    create_time TIMESTAMP NOT NULL,
    create_by VARCHAR(50) NOT NULL,
    update_time TIMESTAMP,
    update_by VARCHAR(50),
    is_deleted BOOLEAN DEFAULT FALSE,
    FOREIGN KEY(config_id) REFERENCES inspection_config(id)
);

-- 创建默认检验项目数据
INSERT OR IGNORE INTO inspection_config (
    position, name, display_name, enabled, required, data_type, 
    min_value, max_value, unit, sort_order, create_time, create_by
) VALUES 
(1, 'appearance', '外观', TRUE, TRUE, 'enum', NULL, NULL, '', 1, CURRENT_TIMESTAMP, 'system'),
(2, 'diameter', '线径', TRUE, TRUE, 'number', 0, 100, 'mm', 2, CURRENT_TIMESTAMP, 'system'),
(3, 'resistance', '电阻', TRUE, FALSE, 'number', 0, 1000, 'Ω', 3, CURRENT_TIMESTAMP, 'system'),
(4, 'hardness', '硬度', FALSE, FALSE, 'number', 0, 100, 'HRC', 4, CURRENT_TIMESTAMP, 'system'),
(5, 'strength', '强度', FALSE, FALSE, 'number', 0, 1000, 'MPa', 5, CURRENT_TIMESTAMP, 'system'),
(6, 'custom', '自定义', FALSE, FALSE, 'text', NULL, NULL, '', 6, CURRENT_TIMESTAMP, 'system');

-- 为外观检验项设置枚举值
UPDATE inspection_config 
SET enum_values = '["合格", "不合格", "需要重检"]' 
WHERE name = 'appearance'; 