-- ----------------------------
-- 洪水知识库表
-- ----------------------------
drop table if exists flood_knowledge_base;
create table flood_knowledge_base (
  knowledge_id        bigint(20)      not null auto_increment    comment '知识库ID',
  knowledge_name      varchar(200)    not null                   comment '知识库名称（目录名）',
  knowledge_desc      varchar(500)    default ''                 comment '知识库描述',
  file_count         int(11)         default 0                   comment '文件数量',
  status              char(1)         default '0'                comment '状态（0正常 1停用）',
  create_by           varchar(64)     default ''                 comment '创建者',
  create_time         datetime                                   comment '创建时间',
  update_by           varchar(64)     default ''                 comment '更新者',
  update_time         datetime                                   comment '更新时间',
  remark              varchar(500)    default null                comment '备注',
  primary key (knowledge_id),
  unique key uk_knowledge_name (knowledge_name)
) engine=innodb auto_increment=1 comment = '洪水知识库表';

-- ----------------------------
-- 知识库文件表
-- ----------------------------
drop table if exists flood_knowledge_file;
create table flood_knowledge_file (
  file_id             bigint(20)      not null auto_increment    comment '文件ID',
  knowledge_id        bigint(20)      default null              comment '知识库ID（允许为空，用于临时上传的文件）',
  file_name           varchar(200)    not null                   comment '文件名称',
  original_name       varchar(200)    not null                   comment '原始文件名',
  file_path           varchar(500)    not null                   comment '文件路径',
  file_type           varchar(50)     default ''                 comment '文件类型（jpg,png,pdf,doc,docx,ppt,pptx等）',
  file_size           bigint(20)      default 0                  comment '文件大小（字节）',
  file_url            varchar(500)    default ''                 comment '文件访问URL',
  sort_order          int(11)         default 0                  comment '排序顺序',
  status              char(1)         default '0'                comment '状态（0正常 1停用）',
  create_by           varchar(64)     default ''                 comment '创建者',
  create_time         datetime                                   comment '创建时间',
  update_by           varchar(64)     default ''                 comment '更新者',
  update_time         datetime                                   comment '更新时间',
  remark              varchar(500)    default null               comment '备注',
  primary key (file_id),
  key idx_knowledge_id (knowledge_id)
) engine=innodb auto_increment=1 comment = '知识库文件表';

-- ----------------------------
-- 应急预案库表
-- ----------------------------
drop table if exists flood_emergency_plan;
create table flood_emergency_plan (
  plan_id             bigint(20)      not null auto_increment    comment '预案ID',
  plan_level          varchar(50)     default ''                 comment '预案等级',
  plan_name           varchar(200)    not null                   comment '预案名称',
  plan_url            text            not null                   comment '预案地址',
  plan_desc           varchar(500)    default ''                  comment '预案描述',
  status              char(1)         default '0'                comment '状态（0正常 1停用）',
  create_by           varchar(64)     default ''                 comment '创建者',
  create_time         datetime                                   comment '创建时间',
  update_by           varchar(64)     default ''                 comment '更新者',
  update_time         datetime                                   comment '更新时间',
  remark              varchar(500)    default null               comment '备注',
  primary key (plan_id)
) engine=innodb auto_increment=1 comment = '应急预案库表';

-- ----------------------------
-- 洪水案例库表（根据Excel实际结构设计）
-- ----------------------------
drop table if exists flood_case;
create table flood_case (
  case_id             bigint(20)      not null auto_increment    comment '案例ID',
  case_type           varchar(100)    not null                   comment '案例类型（对应Excel的sheet名称）',
  
  -- 核心字段（从Excel中自动识别）
  case_name           varchar(500)    default ''                 comment '案例名称',
  case_time           varchar(200)    default ''                 comment '案例时间/发生时间',
  case_location       varchar(500)    default ''                 comment '案例地点/发生地点',
  case_description    text                                       comment '案例描述/简介',
  
  -- 扩展字段（根据Excel列名动态映射，支持常见字段）
  disaster_type       varchar(200)    default ''                 comment '灾害类型',
  affected_area       text                                       comment '影响范围/受灾区域',
  economic_loss       text                                       comment '经济损失',
  casualties          text                                       comment '人员伤亡',
  rainfall            varchar(200)    default ''                 comment '降雨量',
  water_level         varchar(200)    default ''                 comment '水位',
  duration            varchar(200)    default ''                 comment '持续时间',
  response_measures   text                                       comment '应对措施',
  river_basin         varchar(200)    default ''                 comment '流域',
  flood_scale         varchar(200)    default ''                 comment '洪水规模',
  peak_flow           text                                       comment '洪峰流量',
  affected_population text                                       comment '受灾人口',
  damaged_houses      text                                       comment '房屋损毁',
  damaged_crops       text                                       comment '农作物受灾',
  infrastructure_damage text                                      comment '基础设施损毁',
  rescue_situation    text                                       comment '救援情况',
  prevention_measures  text                                       comment '预防措施',
  lessons_learned     text                                       comment '经验教训',
  weather_condition   varchar(500)    default ''                 comment '天气情况',
  flood_cause         varchar(500)    default ''                 comment '洪水成因',
  warning_level       varchar(100)    default ''                 comment '预警等级',
  evacuation_number   text                                       comment '转移人数',
  rescue_teams        varchar(500)    default ''                 comment '救援队伍',
  material_support    text                                       comment '物资支援',
  
  -- 动态字段（JSON格式存储Excel中的其他所有列）
  case_data           text                                       comment '案例数据（JSON格式存储Excel中的其他字段）',
  
  -- 系统字段
  status              char(1)         default '0'                comment '状态（0正常 1停用）',
  create_by           varchar(64)     default ''                 comment '创建者',
  create_time         datetime                                   comment '创建时间',
  update_by           varchar(64)     default ''                 comment '更新者',
  update_time         datetime                                   comment '更新时间',
  remark              varchar(500)    default null               comment '备注',
  
  primary key (case_id),
  key idx_case_type (case_type),
  key idx_case_name (case_name),
  key idx_case_time (case_time),
  key idx_case_location (case_location)
) engine=innodb auto_increment=1 comment = '洪水案例库表';
