CREATE TABLE IF NOT EXISTS `tcm_app_system_notice` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', `app_user_id` bigint NOT NULL COMMENT 'APP用户ID', `notice_type_code` varchar(64) NOT NULL COMMENT '通知类型编码', `title` varchar(128) NOT NULL COMMENT '通知标题', `content` varchar(500) NOT NULL COMMENT '通知摘要内容', `reference_type` varchar(64) DEFAULT NULL COMMENT '业务引用类型', `reference_id` bigint DEFAULT NULL COMMENT '业务引用主键', `payload_json` text COMMENT '透传载荷JSON', `push_status` varchar(32) NOT NULL DEFAULT 'PENDING' COMMENT '推送状态:PENDING/SUCCESS/FAILED/SKIPPED', `push_error_message` varchar(500) DEFAULT NULL COMMENT '推送失败原因', `pushed_at` datetime DEFAULT NULL COMMENT '推送时间', `read_at` datetime DEFAULT NULL COMMENT '已读时间', `deleted` tinyint NOT NULL DEFAULT '0' COMMENT '是否删除:0否 1是', `created_by` varchar(64) DEFAULT NULL COMMENT '创建人', `updated_by` varchar(64) DEFAULT NULL COMMENT '更新人', `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (`id`), UNIQUE KEY `uk_app_notice_ref_deleted` (`app_user_id`,`notice_type_code`,`reference_type`,`reference_id`,`deleted`), KEY `idx_app_notice_user_created` (`app_user_id`,`deleted`,`created_at`), KEY `idx_app_notice_type_created` (`notice_type_code`,`deleted`,`created_at`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='APP统一系统通知表';