CREATE TABLE IF NOT EXISTS `ftb_franchisee` (
  `F_Id` varchar(50) NOT NULL COMMENT '主键ID',
  `F_FranchiseeNature` varchar(50) DEFAULT NULL COMMENT '加盟商性质',
  `F_FranchiseeName` varchar(100) NOT NULL COMMENT '加盟商名称',
  `F_BusinessLicenseUrl` varchar(255) DEFAULT NULL COMMENT '营业执照图片',
  `F_CompanyName` varchar(100) DEFAULT NULL COMMENT '公司名称',
  `F_Gender` varchar(20) DEFAULT NULL COMMENT '性别',
  `F_IdCardFrontUrl` varchar(255) DEFAULT NULL COMMENT '负责人身份证正面照片',
  `F_IdCardNumber` varchar(50) DEFAULT NULL COMMENT '负责人身份证号',
  `F_CurrentAddress` varchar(255) DEFAULT NULL COMMENT '现住址/公司地址',
  `F_BankCardNumber` varchar(50) DEFAULT NULL COMMENT '银行卡号',
  `F_FranchiseeCode` varchar(50) NOT NULL COMMENT '加盟商编号',
  `F_MobilePhone` varchar(20) NOT NULL COMMENT '手机号',
  `F_Principal` varchar(50) DEFAULT NULL COMMENT '负责人/法定代表人/经营者',
  `F_IdCardBackUrl` varchar(255) DEFAULT NULL COMMENT '负责人身份证反面照片',
  `F_Age` int DEFAULT NULL COMMENT '年龄',
  `F_BankName` varchar(100) DEFAULT NULL COMMENT '开户行',
  `F_FranchiseeStatus` varchar(50) DEFAULT NULL COMMENT '加盟商状态',
  `F_JoinType` varchar(50) DEFAULT NULL COMMENT '加盟方式',
  `F_JoinDate` date DEFAULT NULL COMMENT '加盟日期',
  `F_EstablishDate` date DEFAULT NULL COMMENT '成立时间',
  `F_JoinRegion` varchar(100) DEFAULT NULL COMMENT '加盟地区',
  `F_BusinessNature` varchar(50) DEFAULT NULL COMMENT '经营性质',
  `F_StoreBusinessDistrict` varchar(100) DEFAULT NULL COMMENT '门店商圈',
  `F_StoreNum` int DEFAULT 0 COMMENT '门店数量',
  `F_InvestStoreCount` int DEFAULT NULL COMMENT '投资门店数',
  `F_InvestAmount` decimal(18,2) DEFAULT NULL COMMENT '投资金额',
  `F_ProfitExpectation` varchar(50) DEFAULT NULL COMMENT '盈利预期',
  `F_ExpectedStaffCount` int DEFAULT NULL COMMENT '预计员工数',
  `F_AnnualIncome` varchar(50) DEFAULT NULL COMMENT '年收入',
  `F_IncomeSource` varchar(50) DEFAULT NULL COMMENT '收入来源',
  `F_DebtSituation` varchar(50) DEFAULT NULL COMMENT '债务情况',
  `F_EnabledMark` tinyint NOT NULL DEFAULT 0 COMMENT '有效标识（0有效，1删除）',
  `F_CreatorUserId` varchar(50) DEFAULT NULL COMMENT '创建人',
  `F_CreatorTime` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `F_LastModifyUserId` varchar(50) DEFAULT NULL COMMENT '修改人',
  `F_LastModifyTime` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
  `F_UpdateStoreNumTimestamp` bigint DEFAULT 0 COMMENT '更新门店数量更新时间',
  `F_TenantId` varchar(50) DEFAULT NULL COMMENT 'tenant id',
  PRIMARY KEY (`F_Id`),
  KEY `idx_franchisee_code` (`F_FranchiseeCode`),
  KEY `idx_enabled_mark` (`F_EnabledMark`),
  UNIQUE KEY `uk_franchisee_code` (`F_FranchiseeCode`,`F_EnabledMark`),
  UNIQUE KEY `uk_franchisee_name` (`F_FranchiseeName`,`F_EnabledMark`)
) ENGINE=InnoDB  COMMENT='加盟商主表';

CREATE TABLE IF NOT EXISTS `ftb_franchisee_custom_field` (
  `F_Id` varchar(50) NOT NULL COMMENT '主键ID',
  `F_FranchiseeId` varchar(50) NOT NULL COMMENT '加盟商ID',
  `F_FieldName` varchar(100) NOT NULL COMMENT '字段名称',
  `F_FieldValue` varchar(500) DEFAULT NULL COMMENT '字段值',
  `F_Sorts` bigint NOT NULL DEFAULT 0 COMMENT '排序',
  `F_EnabledMark` tinyint NOT NULL DEFAULT 0 COMMENT '有效标识（0有效，1删除）',
  `F_CreatorUserId` varchar(50) DEFAULT NULL COMMENT '创建人',
  `F_CreatorTime` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `F_LastModifyUserId` varchar(50) DEFAULT NULL COMMENT '修改人',
  `F_LastModifyTime` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
  `F_TenantId` varchar(50) DEFAULT NULL COMMENT 'tenant id',
  PRIMARY KEY (`F_Id`),
  KEY `idx_franchisee_id` (`F_FranchiseeId`),
  KEY `idx_enabled_mark` (`F_EnabledMark`)
) ENGINE=InnoDB  COMMENT='加盟商自定义字段表';

CREATE TABLE IF NOT EXISTS `ftb_franchisee_experience` (
  `F_Id` varchar(50) NOT NULL COMMENT '主键ID',
  `F_FranchiseeId` varchar(50) NOT NULL COMMENT '加盟商ID',
  `F_CompanyName` varchar(100) DEFAULT NULL COMMENT '公司名称',
  `F_PositionName` varchar(100) DEFAULT NULL COMMENT '岗位名称',
  `F_StartTime` date DEFAULT NULL COMMENT '开始时间',
  `F_EndTime` date DEFAULT NULL COMMENT '结束时间',
  `F_Industry` varchar(100) DEFAULT NULL COMMENT '行业',
  `F_WorkDescription` varchar(1000) DEFAULT NULL COMMENT '工作描述',
  `F_Sorts` bigint NOT NULL DEFAULT 0 COMMENT '排序',
  `F_EnabledMark` tinyint NOT NULL DEFAULT 0 COMMENT '有效标识（0有效，1删除）',
  `F_CreatorUserId` varchar(50) DEFAULT NULL COMMENT '创建人',
  `F_CreatorTime` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `F_LastModifyUserId` varchar(50) DEFAULT NULL COMMENT '修改人',
  `F_LastModifyTime` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
  `F_TenantId` varchar(50) DEFAULT NULL COMMENT 'tenant id',
  PRIMARY KEY (`F_Id`),
  KEY `idx_franchisee_id` (`F_FranchiseeId`),
  KEY `idx_enabled_mark` (`F_EnabledMark`)
) ENGINE=InnoDB  COMMENT='加盟商从业经历表';

-- 已存在表结构升级时，请按需单独执行以下语句：
-- ALTER TABLE `ftb_franchisee`
-- ADD COLUMN `F_CustomFieldList` longtext COMMENT '自定义字段列表（JSONArray字符串）';
--
-- ALTER TABLE `ftb_franchisee`
-- ADD COLUMN `F_StoreNum` int DEFAULT 0 COMMENT '门店数量';
--
-- ALTER TABLE `ftb_franchisee`
-- ADD COLUMN `F_BusinessLicenseUrl` varchar(500) DEFAULT NULL COMMENT '营业执照图片';
--
-- ALTER TABLE `ftb_franchisee`
-- ADD COLUMN `F_CompanyName` varchar(100) DEFAULT NULL COMMENT '公司名称';
--
-- ALTER TABLE `ftb_franchisee`
-- ADD COLUMN `F_EstablishDate` date DEFAULT NULL COMMENT '成立时间';
--
-- ALTER TABLE `ftb_franchisee`
-- DROP INDEX `uk_valid_franchisee_code`;
--
-- ALTER TABLE `ftb_franchisee`
-- DROP COLUMN `F_ValidFranchiseeCode`;
--
-- ALTER TABLE `ftb_franchisee`
-- ADD UNIQUE KEY `uk_franchisee_code` (`F_FranchiseeCode`);

CREATE TABLE IF NOT EXISTS `ftb_franchisee_join_region` (
  `F_Id` varchar(50) NOT NULL COMMENT '主键ID',
  `F_FranchiseeId` varchar(50) NOT NULL COMMENT '加盟商ID',
  `F_Province` varchar(50) DEFAULT '' COMMENT '省',
  `F_City` varchar(50) DEFAULT '' COMMENT '市',
  `F_District` varchar(50) DEFAULT '' COMMENT '区',
  `F_County` varchar(50) DEFAULT '' COMMENT '县',
  `F_TenantId` varchar(50) DEFAULT NULL COMMENT 'tenant id',
  PRIMARY KEY (`F_Id`),
  KEY `idx_franchisee_id` (`F_FranchiseeId`),
  KEY `idx_province_city_district_county` (`F_Province`, `F_City`, `F_District`, `F_County`,`F_FranchiseeId`)
) ENGINE=InnoDB  COMMENT='加盟商加盟地区冗余表';

-- 已存在表结构升级时，请按需单独执行以下语句：
-- ALTER TABLE `ftb_franchisee_join_region`
-- DROP INDEX `idx_type_area_code_franchisee_id`;
--
-- ALTER TABLE `ftb_franchisee_join_region`
-- DROP COLUMN `F_Type`,
-- DROP COLUMN `F_AreaCode`,
-- ADD COLUMN `F_Province` varchar(50) DEFAULT NULL COMMENT '省',
-- ADD COLUMN `F_City` varchar(50) DEFAULT NULL COMMENT '市',
-- ADD COLUMN `F_District` varchar(50) DEFAULT NULL COMMENT '区',
-- ADD COLUMN `F_County` varchar(50) DEFAULT NULL COMMENT '县',
-- ADD KEY `idx_province_city_district_county` (`F_Province`, `F_City`, `F_District`, `F_County`);
