-- 人员信息表
CREATE TABLE person_info (
    id                  INT PRIMARY KEY AUTO_INCREMENT COMMENT 'ID',
    realname            VARCHAR(50) NOT NULL        COMMENT '姓名',
    id_card             CHAR(64) UNIQUE          COMMENT '身份证号',
    ethnic              VARCHAR(30)                 COMMENT '民族',
    age                 TINYINT                     COMMENT '年龄',
    gender              TINYINT NOT NULL            COMMENT '性别: 1-男, 2-女, 0-未知',
    birth_date          DATE                        COMMENT '出生日期',
    population_category TINYINT                     COMMENT '人口类别：0-本村户籍 ，1-非本村户籍',
    phone               VARCHAR(20)                 COMMENT '电话',
    population_tags     VARCHAR(1024)               COMMENT '人口标签(标签 json 列表)',
    occupation          VARCHAR(50)                 COMMENT '职业',
    grid                VARCHAR(30)                 COMMENT '所属网格',
    education_level     VARCHAR(20)                 COMMENT '文化程度',
    marital_status      TINYINT                     COMMENT '婚姻状况: 1-未婚, 2-已婚, 3-丧偶, 4-离婚',
    political_status    VARCHAR(20)                 COMMENT '政治面貌',
    religion            VARCHAR(30)                 COMMENT '宗教信仰',
    photo_url           VARCHAR(255)                COMMENT '照片URL',
    household_id        INT                         COMMENT '所属户籍ID',
    household_relation  VARCHAR(30)                 COMMENT '户籍关系',
    special_identity    VARCHAR(4)                COMMENT '特殊身份 0-无,1-特困人员,2-低保人员,3-高龄老人,4-空巢老人,5-留守儿童,6-残疾人',
    create_time        datetime     default CURRENT_TIMESTAMP not null comment '创建时间',
    create_by           varchar(64)      null comment '创建人',
    update_time      datetime     default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '修改时间',
    update_by           varchar(64)      null comment '修改人',
    del_flag            char default '0' null comment '删除标志',
    INDEX idx_realname (realname),
    INDEX idx_ethnic (ethnic),
    INDEX idx_id_card (id_card),
    INDEX idx_household (household_id),
    INDEX idx_special_identity (special_identity)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='人员信息表';

-- 户籍信息表
CREATE TABLE household_info (
    id                    INT PRIMARY KEY AUTO_INCREMENT    COMMENT '户籍ID',
    household_code        VARCHAR(50) UNIQUE  NOT NULL      COMMENT '户籍编号',
    household_head_id        int                      COMMENT '户主id',
    household_type          TINYINT     NOT NULL            COMMENT '户籍类型: 1-农业户口, 2-非农业户口',
    household_address       VARCHAR(200)                    COMMENT '户籍地址',
    belonging_area          VARCHAR(200)                    COMMENT '归属地区',
    house_code            VARCHAR(50)                       COMMENT '房屋编号',
  create_time        datetime     default CURRENT_TIMESTAMP not null comment '创建时间',
     update_time      datetime     default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '修改时间',
    del_flag            char default '0' null comment '删除标志',
    del_flag        char default '0' null comment '删除标志',
    INDEX idx_household_number (household_code),
    INDEX idx_house_code (house_code)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='户籍信息表';

-- 房屋信息表
CREATE TABLE house_info (
    id          INT    PRIMARY KEY  AUTO_INCREMENT COMMENT '房屋ID',
    house_code     VARCHAR(20) UNIQUE NOT NULL COMMENT '房屋编号(如FW0000580689)',
    doorplate_number  VARCHAR(50)           COMMENT '门牌号',
    house_address     VARCHAR(200)          COMMENT '房屋详细地址',
    house_owner_id    INT                   COMMENT '房主人员ID',
    total_points      INT DEFAULT 0         COMMENT '总积分',
    remaining_points  INT DEFAULT 0         COMMENT '剩余积分',
    house_category    TINYINT               COMMENT '房屋类别:1-修缮,2-原址重建,3-集中安置',
    building_area     DECIMAL(10,2)         COMMENT '宅基地面积(㎡)',
    grid             INT                    COMMENT '所属网格',
    photo_url         VARCHAR(256)          COMMENT '照片URL',
    house_tags        VARCHAR(1024)         COMMENT '家庭标签(JSON数组)',
  create_time        datetime     default CURRENT_TIMESTAMP not null comment '创建时间',
     update_time      datetime     default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '修改时间',
    del_flag          char default '0' null comment '删除标志',
    -- 索引
    INDEX idx_house_code (house_code),
    INDEX idx_doorplate (doorplate_number),
    INDEX idx_owner (house_owner_id),
    INDEX idx_house_category (house_category),
    INDEX idx_address (house_address)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='房屋信息表';

-- 人员-房屋 关联表
CREATE TABLE person_house_relation (
    id INT PRIMARY KEY AUTO_INCREMENT COMMENT 'ID',
    person_id INT NOT NULL COMMENT '人员ID',
    house_id INT NOT NULL COMMENT '房屋ID',
    create_time        datetime     default CURRENT_TIMESTAMP not null comment '创建时间',
       update_time      datetime     default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '修改时间',
    del_flag          char default '0' null comment '删除标志',
    -- 联合唯一约束（防止重复关联）
    UNIQUE KEY uk_person_house (person_id, house_id)
) ENGINE=InnoDB COMMENT='人员房屋关系表';

-- 项目表
CREATE TABLE projects (
    id                  INT PRIMARY KEY AUTO_INCREMENT COMMENT '项目ID',
    project_name        VARCHAR(100) NOT NULL   COMMENT '项目名称',
    project_description VARCHAR(256)            COMMENT '项目内容',
    investment_amount   DECIMAL(15,2)           COMMENT '投资金额(元)',
    start_date          DATE                    COMMENT '项目开始日期',
    estimated_completion_date   DATE            COMMENT '预计建成日期',
    actual_completion_date      DATE            COMMENT '实际建成日期',
    progress                    TINYINT DEFAULT 0 COMMENT '项目进度(0-建设中 1-已建成)',
    create_time        datetime     default CURRENT_TIMESTAMP not null comment '创建时间',
    update_time      datetime     default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '修改时间',
    del_flag          char default '0' null comment '删除标志',
    INDEX idx_progress (progress),
    INDEX idx_name (project_name),
    INDEX idx_dates (start_date, estimated_completion_date)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='项目表';

-- 补贴（项目管理）
CREATE TABLE subsidy_projects (
    id  INT PRIMARY KEY AUTO_INCREMENT                  COMMENT '序号ID',
    project_name VARCHAR(100) NOT NULL                  COMMENT '项目名称',
    category VARCHAR(100) NOT NULL                  COMMENT '补贴类别',
    name            VARCHAR(50) NOT NULL            COMMENT '姓名',
    id_card        CHAR(64) UNIQUE                   COMMENT '身份证号',
    money DECIMAL(20,2)                        COMMENT '实发金额(元)',
    bank_card CHAR(64) NOT NULL                 COMMENT '银行账号SHA-256哈希（加密存储）',
    date DATE NOT NULL                          COMMENT '兑现时间',
    status VARCHAR(20)      NOT NULL                    COMMENT '状态',
  create_time        datetime     default CURRENT_TIMESTAMP not null comment '创建时间',
     update_time      datetime     default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '修改时间',
    del_flag        char default '0' null               comment '删除标志',
    INDEX idx_type (category),
    INDEX idx_name (name),
    INDEX idx_payment_date (date),
    INDEX idx_status (status),
    INDEX idx_type_status (category, status),
    INDEX idx_type_name_date (category, name, date)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='补贴项目管理表';


-- 设施数据管理
CREATE TABLE facility_management (
    id                  INT PRIMARY KEY AUTO_INCREMENT        COMMENT 'ID',
    facility_type       VARCHAR(4) NOT NULL                  COMMENT '设施类型',
    facility_name       VARCHAR(100) NOT NULL                 COMMENT '设施名称',
    location           VARCHAR(200)                           COMMENT '位置描述',
    extent             VARCHAR(20)                           COMMENT '长度(米)',
    breadth            VARCHAR(20)                           COMMENT '宽度(米)',
    car_num            INT                                    COMMENT '车道数量',
    surface            VARCHAR(50)                            COMMENT '路面类型',
    line_length        VARCHAR(20)                           COMMENT '线路长度',
    electric   varchar(1024)                          COMMENT '电气与安全参数',
    coverage_area      VARCHAR(50)                           COMMENT '覆盖范围',
    power              VARCHAR(50)                            COMMENT '发射功率',
    operator           VARCHAR(50)                           COMMENT '运营商',
    area               VARCHAR(20)                          COMMENT '占地面积',
    year                 date null                           comment '建成年份';
    class_num          INT                                    COMMENT '班级数量',
    teacher_num        INT                                    COMMENT '教师人数',
    student_num        INT                                    COMMENT '学生人数',
    phone              VARCHAR(20)                            COMMENT '联系电话',
  create_time        datetime     default CURRENT_TIMESTAMP not null comment '创建时间',
     update_time      datetime     default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '修改时间',
    del_flag        char default '0' null               comment '删除标志',
    INDEX idx_facility_type (facility_type),
    INDEX idx_facility_name (facility_name)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='设施数据管理表';


-- 当地政策数据表
CREATE TABLE local_policy (
    id              INT PRIMARY KEY AUTO_INCREMENT         COMMENT 'ID',
    name            VARCHAR(100) NOT NULL                  COMMENT '政策名称',
    label           VARCHAR(512)                           COMMENT '政策描述',
    file            VARCHAR(255) NOT NULL                  COMMENT '政策文件路径',
  create_time        datetime     default CURRENT_TIMESTAMP not null comment '创建时间',
     update_time      datetime     default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '修改时间',
    del_flag        char default '0' null               comment '删除标志',
    INDEX idx_name (name),
    INDEX idx_label (label)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='当地政策数据表';


-- 产业数据收集
create table industry_data
(
    id       int auto_increment primary key,
    years    varchar(11)  null comment '年份',
    category int          null comment '产业类别：0-种植业/1-养殖业/2-保安腰刀产业/3-农家乐产业/4-民宿产业',
    scale    varchar(255) null comment '产业规模',
    yield    varchar(255) null comment '产量',
    value    varchar(255) null comment '产值',
    create_time        datetime     default CURRENT_TIMESTAMP not null comment '创建时间',
    update_time      datetime     default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '修改时间',
    del_flag        char default '0' null               comment '删除标志',
    INDEX idx_category (category),
    INDEX idx_years (years)
)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 comment '产业数据收集';


--  就业数据收集
create table employment_data
    (
        id               int auto_increment primary key,
        months           varchar(11)   null comment '月份',
        position_number  int           null comment '提供岗位数量',
        hire_number      int           null comment '录用人数',
        month_pay_low    varchar(255)  null comment '月薪范围下限',
        month_pay_high   varchar(255)  null comment '月薪资范围上限',
        shorage_position varchar(255)  null comment '当前缺口岗位',
        skill_training   int default 1 null comment '技能培训情况 1为是 0为否',
        create_time        datetime     default CURRENT_TIMESTAMP not null comment '创建时间',
        update_time      datetime     default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '修改时间',
        del_flag        char default '0' null               comment '删除标志'
    )ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 comment '就业数据收集';

-- 乡村振兴传统产业数据
create table village_tradition
(
    id                int auto_increment primary key,
    category int          null          comment '产业类别（0-种植业、1-养殖业）',
    name         varchar(255) null      comment '基地名称',
    location     varchar(255) null      comment '位置',
    area     varchar(255) null          comment '种植面积/养殖规模',
    variety           varchar(255) null comment '品种',
    promotion        varchar(255) null  comment '技术推广/应用情况',
    create_time        datetime     default CURRENT_TIMESTAMP not null comment '创建时间',
    update_time      datetime     default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '修改时间',
    del_flag        char default '0' null               comment '删除标志',
    INDEX idx_category (category),
    INDEX idx_name (name)
)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 comment '乡村振兴传统产业数据';


-- 乡村特色产业
create table village_special
(
    id                int auto_increment primary key,
    category int          null comment '产业类别（0-保安腰刀产业、1-农家乐产业、2-民宿产业）',
    name        varchar(255) null comment '产业名称',
    location          varchar(255) null comment '位置',
    people_num        varchar(255) null comment '传承人数',
    produce_num        varchar(255) null comment '产品人数',
    feature        varchar(255) null comment '经营特色',
    vegetable   varchar(255) null comment '菜品数量',
    room_num        varchar(255) null comment '房间数量',
    bed        varchar(255) null comment '床位数',
    ids               varchar(255) null comment '批量多项产品或菜品',
    create_time        datetime     default CURRENT_TIMESTAMP not null comment '创建时间',
    update_time      datetime     default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '修改时间',
    del_flag        char default '0' null               comment '删除标志',
    INDEX idx_category (category),
    INDEX idx_name (name)
)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 comment '乡村特色产业';

-- 乡村特色产业产品
create table production_data
(
    id               int auto_increment primary key,
    name  varchar(11)   null comment '产品名称/菜品名称',
    img   varchar(1000) null comment '产品图片/菜品图片',
    price varchar(11)   null comment '产品价格/菜品价格'
     create_time        datetime     default CURRENT_TIMESTAMP not null comment '创建时间',
        update_time      datetime     default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '修改时间',
        del_flag        char default '0' null               comment '删除标志',
) comment '乡村特色产业产品';


-- 乡村振兴产业服务与支持
create table village_service
(
    id      int auto_increment primary key,
    title   varchar(11)   null comment '标题',
    tag   varchar(512)   null   comment '标签',
    type   int default 1 null comment '类型 1-图文,2-视频',
    content varchar(255)  null comment '内容',
    photo_url varchar(255)  null comment '封面图',
    source varchar(255)  null   comment '来源',
    status  int default 1 null comment '发布状态 1未发布 2-已发布 3-下架',
    date datetime      null     comment '发布日期',
    issuer_id  int  null     comment '发布人id',
    create_time        datetime     default CURRENT_TIMESTAMP not null comment '创建时间',
    update_time      datetime     default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '修改时间',
    del_flag        char default '0' null               comment '删除标志',
    INDEX idx_tag (tag),
    INDEX idx_title (title),
    INDEX idx_content (content),
    INDEX idx_date (date),
    INDEX idx_status (status)
)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 comment '乡村振兴产业服务与支持';
