-- =============================================================================
-- 员工档案扩展表 + 扫码入职匿名提交表
-- 说明：
--   1. 主键 F_Id 须由应用层 YitIdHelper.NextId().ToString() 生成。
--   2. 真实入职日期仍使用 BASE_USER.F_ENTRYDATE；本表不重复存储 EntryDate（profile）。
--   3. submission.F_EntryDate 为申请人填报的入职日期，审核通过后写入 BASE_USER.F_ENTRYDATE。
--   4. 身份证/银行卡仅落密文字段 F_IdCardCipher / F_BankCardCipher；查重用 F_IdCardHash，不对密文建唯一。
--   5. 年龄、司龄不落库；证件类型固定身份证，不扩展重复字段。
-- =============================================================================

CREATE TABLE IF NOT EXISTS `lq_employee_profile` (
  `F_Id` varchar(50) NOT NULL COMMENT '主键',
  `F_UserId` varchar(50) NOT NULL COMMENT '用户ID，关联 BASE_USER.F_Id（一对一）',
  `F_MaritalStatus` int DEFAULT NULL COMMENT '婚姻状况，见 EmployeeMaritalStatusEnum',
  `F_PoliticalStatus` int DEFAULT NULL COMMENT '政治面貌，见 EmployeePoliticalStatusEnum',
  `F_HouseholdType` int DEFAULT NULL COMMENT '户口类型，见 EmployeeHouseholdTypeEnum',
  `F_CurrentAddress` varchar(500) DEFAULT NULL COMMENT '现居住地址',
  `F_EmployeeNo` varchar(64) DEFAULT NULL COMMENT '工号，非空时全局唯一',
  `F_EmployeeType` int DEFAULT NULL COMMENT '员工类型：全职/实习/其他',
  `F_EmployeeStatus` int DEFAULT NULL COMMENT '员工状态：正式/试用/待离职（与 F_IsOnJob 分离）',
  `F_ProbationMonths` int DEFAULT NULL COMMENT '试用期月数：3/6',
  `F_RegularizationDate` date DEFAULT NULL COMMENT '转正日期',
  `F_RecruitmentType` int DEFAULT NULL COMMENT '招聘类型',
  `F_BankName` varchar(200) DEFAULT NULL COMMENT '开户行',
  `F_BankCardCipher` varchar(500) DEFAULT NULL COMMENT '银行卡号密文（服务层加密）',
  `F_GraduateSchool` varchar(200) DEFAULT NULL COMMENT '毕业院校',
  `F_EnrollmentDate` date DEFAULT NULL COMMENT '入学时间',
  `F_GraduationDate` date DEFAULT NULL COMMENT '毕业时间',
  `F_Major` varchar(200) DEFAULT NULL COMMENT '专业',
  `F_PreviousCompany` varchar(200) DEFAULT NULL COMMENT '前公司',
  `F_PreviousPosition` varchar(200) DEFAULT NULL COMMENT '前公司职位',
  `F_PreviousStartDate` date DEFAULT NULL COMMENT '前公司开始时间',
  `F_PreviousEndDate` date DEFAULT NULL COMMENT '前公司结束时间',
  `F_EmergencyContactRelation` varchar(64) DEFAULT NULL COMMENT '紧急联系人关系',
  `F_EmergencyContactAddress` varchar(500) DEFAULT NULL COMMENT '紧急联系人住址',
  `F_CreateTime` datetime DEFAULT NULL COMMENT '创建时间',
  `F_UpdateTime` datetime DEFAULT NULL COMMENT '更新时间',
  `F_CreateUser` varchar(50) DEFAULT NULL COMMENT '创建人',
  `F_UpdateUser` varchar(50) DEFAULT NULL COMMENT '更新人',
  `F_LastReviewUserId` varchar(50) DEFAULT NULL COMMENT '最近审核人ID',
  `F_LastReviewUserName` varchar(128) DEFAULT NULL COMMENT '最近审核人姓名',
  `F_LastReviewTime` datetime DEFAULT NULL COMMENT '最近审核时间',
  PRIMARY KEY (`F_Id`),
  UNIQUE KEY `UK_lq_employee_profile_UserId` (`F_UserId`),
  UNIQUE KEY `UK_lq_employee_profile_EmployeeNo` (`F_EmployeeNo`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='员工档案扩展（一对一 BASE_USER）';

CREATE TABLE IF NOT EXISTS `lq_employee_profile_submission` (
  `F_Id` varchar(50) NOT NULL COMMENT '主键',
  `F_SubmissionNo` varchar(32) NOT NULL COMMENT '申请编号（对外展示）',
  `F_Status` int NOT NULL DEFAULT 1 COMMENT '审核状态：1待审核 2已通过 3已驳回 4已作废',
  `F_RejectReason` varchar(500) DEFAULT NULL COMMENT '驳回原因',
  `F_LinkedUserId` varchar(50) DEFAULT NULL COMMENT '审核通过后关联 BASE_USER.F_Id',
  `F_ReviewUserId` varchar(50) DEFAULT NULL COMMENT '审核人ID',
  `F_ReviewUserName` varchar(128) DEFAULT NULL COMMENT '审核人姓名',
  `F_ReviewTime` datetime DEFAULT NULL COMMENT '审核时间',
  `F_SubmitSource` int NOT NULL DEFAULT 1 COMMENT '提交来源：1扫码填报 2管理后台',
  `F_SubmitIp` varchar(64) DEFAULT NULL COMMENT '提交IP',
  `F_SubmitTime` datetime NOT NULL COMMENT '提交时间',
  `F_UserAgent` varchar(500) DEFAULT NULL COMMENT '提交端 User-Agent',
  `F_VoidUserId` varchar(50) DEFAULT NULL COMMENT '作废操作人ID',
  `F_VoidTime` datetime DEFAULT NULL COMMENT '作废时间',
  `F_RealName` varchar(128) DEFAULT NULL COMMENT '姓名',
  `F_MobilePhone` varchar(32) DEFAULT NULL COMMENT '手机号',
  `F_Gender` int DEFAULT NULL COMMENT '性别',
  `F_Birthday` datetime DEFAULT NULL COMMENT '出生日期',
  `F_Nation` varchar(64) DEFAULT NULL COMMENT '民族',
  `F_NativePlace` varchar(128) DEFAULT NULL COMMENT '籍贯',
  `F_IdCardCipher` varchar(500) DEFAULT NULL COMMENT '身份证号密文',
  `F_IdCardHash` char(64) DEFAULT NULL COMMENT '身份证号哈希（查重，非唯一）',
  `F_Education` varchar(64) DEFAULT NULL COMMENT '文化程度',
  `F_EntryDate` date DEFAULT NULL COMMENT '申请入职日期（通过后写 BASE_USER.F_ENTRYDATE）',
  `F_OrganizeId` varchar(50) DEFAULT NULL COMMENT '组织ID',
  `F_Mdid` varchar(50) DEFAULT NULL COMMENT '门店ID',
  `F_Zw` varchar(64) DEFAULT NULL COMMENT '职位',
  `F_Gwfl` varchar(64) DEFAULT NULL COMMENT '岗位分类',
  `F_Gw` varchar(64) DEFAULT NULL COMMENT '岗位',
  `F_TelePhone` varchar(32) DEFAULT NULL COMMENT '办公电话',
  `F_Landline` varchar(32) DEFAULT NULL COMMENT '办公座机',
  `F_UrgentContacts` varchar(128) DEFAULT NULL COMMENT '紧急联系人',
  `F_UrgentTelePhone` varchar(32) DEFAULT NULL COMMENT '紧急联系人电话',
  `F_PostalAddress` varchar(500) DEFAULT NULL COMMENT '通讯地址',
  `F_MaritalStatus` int DEFAULT NULL COMMENT '婚姻状况',
  `F_PoliticalStatus` int DEFAULT NULL COMMENT '政治面貌',
  `F_HouseholdType` int DEFAULT NULL COMMENT '户口类型',
  `F_CurrentAddress` varchar(500) DEFAULT NULL COMMENT '现居住地址',
  `F_EmployeeNo` varchar(64) DEFAULT NULL COMMENT '工号',
  `F_EmployeeType` int DEFAULT NULL COMMENT '员工类型',
  `F_EmployeeStatus` int DEFAULT NULL COMMENT '员工状态',
  `F_ProbationMonths` int DEFAULT NULL COMMENT '试用期月数',
  `F_RegularizationDate` date DEFAULT NULL COMMENT '转正日期',
  `F_RecruitmentType` int DEFAULT NULL COMMENT '招聘类型',
  `F_BankName` varchar(200) DEFAULT NULL COMMENT '开户行',
  `F_BankCardCipher` varchar(500) DEFAULT NULL COMMENT '银行卡号密文',
  `F_GraduateSchool` varchar(200) DEFAULT NULL COMMENT '毕业院校',
  `F_EnrollmentDate` date DEFAULT NULL COMMENT '入学时间',
  `F_GraduationDate` date DEFAULT NULL COMMENT '毕业时间',
  `F_Major` varchar(200) DEFAULT NULL COMMENT '专业',
  `F_PreviousCompany` varchar(200) DEFAULT NULL COMMENT '前公司',
  `F_PreviousPosition` varchar(200) DEFAULT NULL COMMENT '前公司职位',
  `F_PreviousStartDate` date DEFAULT NULL COMMENT '前公司开始时间',
  `F_PreviousEndDate` date DEFAULT NULL COMMENT '前公司结束时间',
  `F_EmergencyContactRelation` varchar(64) DEFAULT NULL COMMENT '紧急联系人关系',
  `F_EmergencyContactAddress` varchar(500) DEFAULT NULL COMMENT '紧急联系人住址',
  `F_FormSnapshotJson` longtext COMMENT '表单快照 JSON（身份证、银行卡仅保存脱敏值）',
  `F_CreateTime` datetime DEFAULT NULL COMMENT '创建时间',
  `F_UpdateTime` datetime DEFAULT NULL COMMENT '更新时间',
  PRIMARY KEY (`F_Id`),
  UNIQUE KEY `UK_lq_employee_profile_submission_No` (`F_SubmissionNo`),
  KEY `IDX_lq_employee_profile_submission_Status_SubmitTime` (`F_Status`, `F_SubmitTime`),
  KEY `IDX_lq_employee_profile_submission_IdCardHash` (`F_IdCardHash`),
  KEY `IDX_lq_employee_profile_submission_MobilePhone` (`F_MobilePhone`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='员工档案匿名提交（扫码入职待审核）';
