CREATE TABLE IF NOT EXISTS `ftb_certificate_instance` (
  `F_Id` varchar(50) NOT NULL COMMENT '主键',
  `F_CertificateType` varchar(50) NOT NULL COMMENT '证照类型：健康证、营业执照、食品许可证、门店自定义证照',
  `F_TemplateId` varchar(50) DEFAULT '' COMMENT '自定义模板标识',
  `F_TemplateStatus` tinyint DEFAULT 1 COMMENT '模板状态（来自门店自定义证件模板状态）默认为1，如果是非自定义模板，该字段也为1 方便查询',
  `F_SubjectType` tinyint NOT NULL COMMENT '关联主体类型：1员工，2组织，3门店',
  `F_SubjectId` varchar(50) NOT NULL COMMENT '关联主体标识',
  `F_CertificateNo` varchar(100) DEFAULT NULL COMMENT '证照编号',
  `F_IssueDate` date DEFAULT NULL COMMENT '发证日期',
  `F_ExpireDate` date DEFAULT NULL COMMENT '到期日期',
  `F_ExpireTimestamp` bigint DEFAULT NULL COMMENT '到期日期时间戳',
  `F_IsLongTerm` tinyint NOT NULL DEFAULT 0 COMMENT '是否长期：0否，1是',
  `F_Status` tinyint NOT NULL DEFAULT 0 COMMENT '状态：1-缺失，2-过期，3-临期，4-正常。',
  `F_StoreDisable` tinyint NOT NULL DEFAULT 0 COMMENT '冗余门店得disable状态。默认为0.0为不禁用，1为禁用',
  `F_CertificateImage` varchar(1000) 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_TenantId` varchar(50) DEFAULT NULL COMMENT 'tenant id',
  PRIMARY KEY (`F_Id`),
  KEY `idx_type_expire` (`F_CertificateType`, `F_ExpireDate`, `F_EnabledMark`),
  KEY `idx_subject` (`F_SubjectType`, `F_SubjectId`, `F_EnabledMark` , `F_TemplateStatus`),
  KEY `idx_type_status` (`F_CertificateType`, `F_Status`, `F_EnabledMark`),
  UNIQUE KEY `uk_unique` (`F_SubjectId`,`F_CertificateType`, `F_TemplateId`)
) ENGINE=InnoDB COMMENT='证照实例表';

CREATE TABLE IF NOT EXISTS `ftb_certificate_instance_item` (
  `F_Id` varchar(50) NOT NULL COMMENT '主键',
  `F_InstanceId` varchar(50) NOT NULL COMMENT '证照实例标识',
  `F_TemplateItemId` varchar(50) DEFAULT NULL COMMENT '模板明细标识',
  `F_ItemName` varchar(100) NOT NULL COMMENT '明细名称',
  `F_ItemType` tinyint NOT NULL COMMENT '明细类型：1图片，2文本，3日期，4数字',
  `F_ItemValue` text 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_instance` (`F_InstanceId`, `F_EnabledMark`),
  KEY `idx_template_item` (`F_TemplateItemId`, `F_EnabledMark`)
) ENGINE=InnoDB  COMMENT='证照实例明细表';

CREATE TABLE IF NOT EXISTS `ftb_certificate_warning_log` (
  `F_Id` varchar(50) NOT NULL COMMENT '主键',
  `F_InstanceId` varchar(50) NOT NULL COMMENT '证照实例标识',
  `F_CertificateType` varchar(50) NOT NULL COMMENT '证照类型',
  `F_BizDate` date NOT NULL COMMENT '业务日期',
  `F_DaysToExpire` int DEFAULT NULL COMMENT '距离到期天数',
  `F_NoticeFrequencyDays` int NOT NULL COMMENT '通知频率（天）',
  `F_ReceiverJson` longtext COMMENT '接收人快照',
  `F_Channel` varchar(20) DEFAULT 'system' COMMENT '通知渠道',
  `F_SendStatus` tinyint NOT NULL DEFAULT 0 COMMENT '发送状态：0成功，1失败',
  `F_FailReason` varchar(500) DEFAULT NULL COMMENT '失败原因',
  `F_CreatorTime` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `F_TenantId` varchar(50) DEFAULT NULL COMMENT 'tenant id',
  PRIMARY KEY (`F_Id`),
  KEY `idx_instance_bizdate` (`F_InstanceId`, `F_BizDate`),
  KEY `idx_type_bizdate` (`F_CertificateType`, `F_BizDate`)
) ENGINE=InnoDB  COMMENT='证照预警日志表';

CREATE TABLE IF NOT EXISTS `ftb_certificate_instance_business_license_ext` (
  `F_Id` varchar(50) NOT NULL COMMENT '主键',
  `F_InstanceId` varchar(50) NOT NULL COMMENT '证照实例标识',
  `F_CompanyName` varchar(200) DEFAULT NULL COMMENT '公司名称',
  `F_CompanyAddress` TEXT DEFAULT NULL COMMENT '公司地址',
  `F_LegalRepresentative` varchar(255) DEFAULT NULL COMMENT '法定代表人',
  `F_EstablishDate` date DEFAULT NULL COMMENT '成立时间',
  `F_BusinessScope` text 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`),
  UNIQUE KEY `uk_instance` (`F_InstanceId`),
  KEY `idx_instance` (`F_InstanceId`, `F_EnabledMark`)
) ENGINE=InnoDB  COMMENT='营业执照扩展表';

CREATE TABLE IF NOT EXISTS `ftb_certificate_instance_hygiene_license_ext` (
  `F_Id` varchar(50) NOT NULL COMMENT '主键',
  `F_InstanceId` varchar(50) NOT NULL COMMENT '证照实例标识',
  `F_BusinessProject` text 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`),
  UNIQUE KEY `uk_instance` (`F_InstanceId`),
  KEY `idx_instance` (`F_InstanceId`, `F_EnabledMark`)
) ENGINE=InnoDB  COMMENT='食品许可证扩展表';