-- ----------------------------
-- 1. 背调分类表 (main_back_category)
-- ----------------------------
DROP TABLE IF EXISTS `main_back_category`;
CREATE TABLE `main_back_category` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `name` varchar(255) NOT NULL COMMENT '分类名称',
  `price` decimal(10, 2) DEFAULT '0.00' COMMENT '分类价格',
  `status` char(1) DEFAULT '1' COMMENT '状态（0停用 1正常）',
  `create_dept` bigint DEFAULT NULL COMMENT '创建部门',
  `create_by` bigint DEFAULT NULL COMMENT '创建者',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_by` bigint DEFAULT NULL COMMENT '更新者',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  `del_flag` char(1) DEFAULT '0' COMMENT '删除标志（0代表存在 1代表删除）',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='背调分类表';

-- ----------------------------
-- 2. 背调条款表 (main_back_clause)
-- ----------------------------
DROP TABLE IF EXISTS `main_back_clause`;
CREATE TABLE `main_back_clause` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `category_id` bigint NOT NULL COMMENT '所属分类ID',
  `name` varchar(255) NOT NULL COMMENT '条款名称',
  `type` varchar(50) DEFAULT NULL COMMENT '条款类型（字典：sys_clause_type）',
  `description` text COMMENT '条款描述',
  `price` decimal(10,2) DEFAULT '0.00' COMMENT '条款单价',
  `status` char(1) DEFAULT '1' COMMENT '状态（0停用 1正常）',
  `create_dept` bigint DEFAULT NULL COMMENT '创建部门',
  `create_by` bigint DEFAULT NULL COMMENT '创建者',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_by` bigint DEFAULT NULL COMMENT '更新者',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  `del_flag` char(1) DEFAULT '0' COMMENT '删除标志（0代表存在 1代表删除）',
  PRIMARY KEY (`id`),
  KEY `idx_category_id` (`category_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='背调条款表';

-- ----------------------------
-- 3. 学员个人信息表 (main_student)
-- ----------------------------
DROP TABLE IF EXISTS `main_student`;
CREATE TABLE `main_student` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '学员ID',
  `name` varchar(50) NOT NULL COMMENT '姓名',
  `mobile` varchar(20) NOT NULL COMMENT '手机号',
  `id_card_number` varchar(50) DEFAULT NULL COMMENT '证件号码',
  `unique_code` varchar(32) NOT NULL COMMENT '背调/测评唯一码',
  `gender` char(1) DEFAULT '0' COMMENT '性别（0男 1女 2未知）',
  `avatar` bigint DEFAULT NULL COMMENT '头像URL',
  `status` char(1) DEFAULT '0' COMMENT '状态（0正常 1停用）',
  `tenant_id` varchar(20) DEFAULT '000000' COMMENT '所属租户（默认平台）',
  `create_dept` bigint DEFAULT NULL COMMENT '创建部门',
  `create_by` bigint DEFAULT NULL COMMENT '创建者',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_by` bigint DEFAULT NULL COMMENT '更新者',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  `del_flag` char(1) DEFAULT '0' COMMENT '删除标志（0存在 1删除）',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_mobile` (`mobile`),
  UNIQUE KEY `uk_unique_code` (`unique_code`),
  UNIQUE KEY `uk_id_card` (`id_card_number`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='学员个人信息表';

-- ----------------------------
-- 4. 企业候选人关系表 (main_candidate)
-- ----------------------------
DROP TABLE IF EXISTS `main_candidate`;
CREATE TABLE `main_candidate` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `tenant_id` varchar(20) NOT NULL COMMENT '所属租户(企业ID)',
  `student_id` bigint NOT NULL COMMENT '关联学员ID',
  `source` varchar(50) DEFAULT NULL COMMENT '来源渠道',
  `create_dept` bigint DEFAULT NULL COMMENT '创建部门',
  `create_by` bigint DEFAULT NULL COMMENT '创建者',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_by` bigint DEFAULT NULL COMMENT '更新者',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  `del_flag` char(1) DEFAULT '0' COMMENT '删除标志',
  PRIMARY KEY (`id`),
  KEY `idx_tenant_id` (`tenant_id`),
  KEY `idx_student_id` (`student_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='企业候选人关系表';

-- ----------------------------
-- 5. 背调订单表 (main_back_order)
-- ----------------------------
DROP TABLE IF EXISTS `main_back_order`;
CREATE TABLE `main_back_order` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `order_no` varchar(64) NOT NULL COMMENT '订单编号',
  `tenant_id` varchar(20) NOT NULL COMMENT '下单租户(企业ID)',
  `category_id` bigint DEFAULT NULL COMMENT '背调套餐ID',
  `category_name` varchar(255) DEFAULT NULL COMMENT '套餐名称快照',
  `total_amount` decimal(10, 2) DEFAULT '0.00' COMMENT '订单金额',
  `status` char(1) DEFAULT '0' COMMENT '订单状态（0待处理 1进行中 2已完成 3已退款）',
  `create_dept` bigint DEFAULT NULL COMMENT '创建部门',
  `create_by` bigint DEFAULT NULL COMMENT '创建者',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_by` bigint DEFAULT NULL COMMENT '更新者',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  `del_flag` char(1) DEFAULT '0' COMMENT '删除标志',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_order_no` (`order_no`),
  KEY `idx_tenant_id` (`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='背调订单表';

-- ----------------------------
-- 6. 背调执行记录表 (main_back_record)
-- ----------------------------
DROP TABLE IF EXISTS `main_back_record`;
CREATE TABLE `main_back_record` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '任务ID',
  `order_id` bigint NOT NULL COMMENT '关联订单ID',
  `candidate_id` bigint NOT NULL COMMENT '关联企业候选人ID',
  `status` varchar(20) DEFAULT '未完成' COMMENT '状态（完成、未完成、失败）',
  `report_url` varchar(500) DEFAULT NULL COMMENT '报告地址',
  `finish_time` datetime DEFAULT NULL COMMENT '完成时间',
  `create_dept` bigint DEFAULT NULL COMMENT '创建部门',
  `create_by` bigint DEFAULT NULL COMMENT '创建者',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_by` bigint DEFAULT NULL COMMENT '更新者',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  `del_flag` char(1) DEFAULT '0' COMMENT '删除标志',
  PRIMARY KEY (`id`),
  KEY `idx_order_id` (`order_id`),
  KEY `idx_candidate_id` (`candidate_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='背调执行记录表';

-- ----------------------------
-- 7. 企业入驻申请表 (main_company_apply)
-- ----------------------------
DROP TABLE IF EXISTS `main_company_apply`;
CREATE TABLE `main_company_apply` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `apply_no` varchar(64) DEFAULT NULL COMMENT '申请编号',
  `company_name` varchar(255) DEFAULT NULL COMMENT '企业名称',
  `official_account` varchar(100) DEFAULT NULL COMMENT '公众号名称',
  `office_address` varchar(500) DEFAULT NULL COMMENT '办公地址',
  `credit_code` varchar(50) DEFAULT NULL COMMENT '统一社会信用代码',
  `auth_letter` bigint DEFAULT NULL COMMENT '授权委托书(文件ID)',
  `avatar` bigint DEFAULT NULL COMMENT '企业logo',
  `surname` varchar(50) DEFAULT NULL COMMENT '联系人姓',
  `name` varchar(50) DEFAULT NULL COMMENT '联系人名',
  `mobile` varchar(20) DEFAULT NULL COMMENT '联系电话',
  `apply_status` tinyint DEFAULT '0' COMMENT '申请状态（0待审核 1已通过 2已驳回）',
  `audit_id` bigint DEFAULT NULL COMMENT '审核ID',
  `tenant_id` varchar(64) DEFAULT NULL COMMENT '租户ID',
  `reject_reason` varchar(500) DEFAULT NULL COMMENT '驳回原因',
  `create_dept` bigint DEFAULT NULL COMMENT '创建部门',
  `create_by` bigint DEFAULT NULL COMMENT '创建者',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_by` bigint DEFAULT NULL COMMENT '更新者',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  `del_flag` char(1) DEFAULT '0' COMMENT '删除标志',
  PRIMARY KEY (`id`),
  KEY `idx_tenant_id` (`tenant_id`),
  KEY `idx_apply_no` (`apply_no`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='企业入驻申请表';

-- ----------------------------
-- 8. 岗位发布申请表 (main_post_apply)
-- ----------------------------
DROP TABLE IF EXISTS `main_post_apply`;
CREATE TABLE `main_post_apply` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `apply_no` varchar(64) DEFAULT NULL COMMENT '申请编号',
  `tenant_id` varchar(64) DEFAULT NULL COMMENT '租户ID',
  `post_name` varchar(255) DEFAULT NULL COMMENT '岗位名称',
  `company_name` varchar(255) DEFAULT NULL COMMENT '公司名称',
  `post_description` varchar(500) DEFAULT NULL COMMENT '岗位描述',
  `work_province` varchar(100) DEFAULT NULL COMMENT '工作省份',
  `work_city` varchar(100) DEFAULT NULL COMMENT '工作城市',
  `work_district` varchar(100) DEFAULT NULL COMMENT '工作区县',
  `work_address` varchar(500) DEFAULT NULL COMMENT '工作详细地址',
  `post_type` varchar(50) DEFAULT NULL COMMENT '岗位类型(字典值)',
  `education_requirement` varchar(50) DEFAULT NULL COMMENT '学历要求(字典值)',
  `salary_type` varchar(50) DEFAULT NULL COMMENT '薪资类型(字典值)',
  `salary_range` varchar(100) DEFAULT NULL COMMENT '薪资范围',
  `recruit_num` int DEFAULT NULL COMMENT '招聘人数',
  `registration_start_date` datetime DEFAULT NULL COMMENT '报名开始时间',
  `registration_end_date` datetime DEFAULT NULL COMMENT '报名结束时间',
  `is_urgent` tinyint(1) DEFAULT '0' COMMENT '是否急招',
  `school_requirement` varchar(50) DEFAULT NULL COMMENT '学校要求(字典值)',
  `gender_requirement` varchar(50) DEFAULT NULL COMMENT '性别要求(字典值)',
  `grade_requirement` varchar(50) DEFAULT NULL COMMENT '年级要求(字典值)',
  `arrival_time` varchar(50) DEFAULT NULL COMMENT '到岗时间(字典值)',
  `internship_duration` varchar(50) DEFAULT NULL COMMENT '实习时长(字典值)',
  `willing_to_travel` tinyint(1) DEFAULT '0' COMMENT '是否愿意出差',
  `welfare_tags` varchar(500) DEFAULT NULL COMMENT '福利标签',
  `job_requirement` text COMMENT '岗位要求',
  `post_level` varchar(50) DEFAULT NULL COMMENT '岗位等级(字典值)',
  `assessment_time` varchar(50) DEFAULT NULL COMMENT '测评时长(分钟)',
  `grade_a` decimal(10,2) DEFAULT NULL COMMENT '能力A及格分',
  `grade_b` decimal(10,2) DEFAULT NULL COMMENT '能力B及格分',
  `grade_c` decimal(10,2) DEFAULT NULL COMMENT '能力C及格分',
  `apply_status` tinyint DEFAULT '0' COMMENT '申请状态',
  `audit_id` bigint DEFAULT NULL COMMENT '审核ID',
  `post_id` bigint DEFAULT NULL COMMENT '对应已发布岗位ID',
  `reject_reason` varchar(500) DEFAULT NULL COMMENT '驳回原因',
  `create_dept` bigint DEFAULT NULL COMMENT '创建部门',
  `create_by` bigint DEFAULT NULL COMMENT '创建者',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_by` bigint DEFAULT NULL COMMENT '更新者',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  `del_flag` char(1) DEFAULT '0' COMMENT '删除标志',
  PRIMARY KEY (`id`),
  KEY `idx_tenant_id` (`tenant_id`),
  KEY `idx_apply_no` (`apply_no`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='岗位发布申请表';

-- ----------------------------
-- 9. 审核记录表 (main_audit)
-- ----------------------------
DROP TABLE IF EXISTS `main_audit`;
CREATE TABLE `main_audit` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `audit_type` tinyint DEFAULT NULL COMMENT '审核类型（1企业入驻 2岗位发布）',
  `target_id` bigint DEFAULT NULL COMMENT '审核目标ID',
  `audit_result` tinyint DEFAULT NULL COMMENT '审核结果（1通过 2驳回）',
  `audit_remark` varchar(500) DEFAULT NULL COMMENT '审核备注',
  `deposit` decimal(10,2) DEFAULT NULL COMMENT '保证金',
  `final_payment` decimal(10,2) DEFAULT NULL COMMENT '尾款',
  `audit_time` datetime DEFAULT NULL COMMENT '审核时间',
  `audit_by` bigint DEFAULT NULL COMMENT '审核人ID',
  `tenant_id` varchar(64) DEFAULT NULL COMMENT '租户ID',
  `create_dept` bigint DEFAULT NULL COMMENT '创建部门',
  `create_by` bigint DEFAULT NULL COMMENT '创建者',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_by` bigint DEFAULT NULL COMMENT '更新者',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  `del_flag` char(1) DEFAULT '0' COMMENT '删除标志',
  PRIMARY KEY (`id`),
  KEY `idx_tenant_id` (`tenant_id`),
  KEY `idx_target_id` (`target_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='审核记录表';

-- ----------------------------
-- 10. 字典数据
-- ----------------------------
-- 字典类型
DELETE FROM `sys_dict_type` WHERE `dict_type` = 'sys_clause_type';
INSERT INTO `sys_dict_type` (`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) 
VALUES (null, '背调条款类型', 'sys_clause_type', '0', 1, sysdate(), 1, sysdate(), '背调条款类型列表');

-- 字典数据
DELETE FROM `sys_dict_data` WHERE `dict_type` = 'sys_clause_type';
INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) 
VALUES (null, 1, '身份风险', '身份风险', 'sys_clause_type', '', 'primary', 'N', '0', 1, sysdate(), 1, sysdate(), '身份风险');

INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) 
VALUES (null, 2, '职业风险', '职业风险', 'sys_clause_type', '', 'warning', 'N', '0', 1, sysdate(), 1, sysdate(), '职业风险');

INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) 
VALUES (null, 3, '能力评估', '能力评估', 'sys_clause_type', '', 'success', 'N', '0', 1, sysdate(), 1, sysdate(), '能力评估');


CREATE TABLE `sys_tag` (
  `id` bigint NOT NULL COMMENT '主键ID',
  `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '标签名称',
  `description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '标签说明',
  `status` tinyint DEFAULT '0' COMMENT '状态 (0:启用, 1:停用)',
  `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '0' COMMENT '删除标志（0代表存在 1代表删除）',
  `create_dept` bigint DEFAULT NULL COMMENT '创建部门',
  `create_by` bigint DEFAULT NULL COMMENT '创建者',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_by` bigint DEFAULT NULL COMMENT '更新者',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='标签定义表';
