CREATE TABLE IF NOT EXISTS `ftb_store_certificate_photo` (
  `F_Id` varchar(50) NOT NULL COMMENT '主键ID',
  `F_CertificateName` varchar(100) NOT NULL COMMENT '证照名称',
  `F_ImageCount` int NOT NULL DEFAULT 1 COMMENT '证照图片数量',
  `F_RequireAllUpload` tinyint NOT NULL DEFAULT 0 COMMENT '是否必须全部上传：0否 1是',
  `F_ExpireDateEnabled` tinyint NOT NULL DEFAULT 0 COMMENT '是否增加到期日期：0否 1是',
  `F_ExpireDateName` varchar(100) NOT NULL COMMENT '到期日期名称',
  `F_ExpiryReminderDays` int NOT NULL COMMENT '临期提醒时间（天）',
  `F_Status` tinyint NOT NULL DEFAULT 0 COMMENT '状态：0启用 1禁用',
  `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_ValidCertificateName` varchar(100) GENERATED ALWAYS AS (
    CASE WHEN `F_EnabledMark` = 0 THEN `F_CertificateName` ELSE NULL END
  ) STORED COMMENT '有效证照名称，仅用于唯一约束',
  `F_TenantId` varchar(50) DEFAULT NULL COMMENT 'tenant id',
  PRIMARY KEY (`F_Id`),
  KEY `idx_certificate_name` (`F_CertificateName`),
  KEY `idx_enabled_mark` (`F_EnabledMark`),
  UNIQUE KEY `uk_valid_certificate_name` (`F_ValidCertificateName`)
) ENGINE=InnoDB  COMMENT='门店证件照表';

CREATE TABLE IF NOT EXISTS `ftb_store_certificate_photo_item` (
  `F_Id` varchar(50) NOT NULL COMMENT '主键ID',
  `F_PhotoId` varchar(50) NOT NULL COMMENT '门店证件照ID',
  `F_ItemType` tinyint NOT NULL COMMENT '子项类型：1图片名称 2文本名称',
  `F_ItemName` varchar(100) NOT NULL COMMENT '子项名称',
  `F_TextPrompt` varchar(200) 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_photo_id` (`F_PhotoId`),
  KEY `idx_item_type` (`F_ItemType`),
  KEY `idx_enabled_mark` (`F_EnabledMark`)
) ENGINE=InnoDB  COMMENT='门店证件照子项表';

-- 已存在表结构升级时，请按需单独执行以下语句：
-- ALTER TABLE `ftb_store_certificate_photo`
-- ADD COLUMN `F_ValidCertificateName` varchar(100) GENERATED ALWAYS AS (
--   CASE WHEN `F_EnabledMark` = 0 THEN `F_CertificateName` ELSE NULL END
-- ) STORED COMMENT '有效证照名称，仅用于唯一约束';
--
-- ALTER TABLE `ftb_store_certificate_photo`
-- ADD UNIQUE KEY `uk_valid_certificate_name` (`F_ValidCertificateName`);
