# 文章相关系统事件常量定义
# 用途：统一管理插件系统中与文章操作相关的事件名称，避免硬编码导致的不一致问题
# 所有事件名称均采用大写蛇形命名法（UPPER_SNAKE_CASE），符合Python常量命名规范

# 事件：文章详情页加载完成
# 触发时机：当用户访问某篇文章的详情页，页面内容加载完成后触发
# 应用场景：插件可监听此事件，执行详情页相关的自定义逻辑（如添加页面统计代码、注入额外内容等）
ARTICLE_DETAIL_LOAD = 'article_detail_load'

# 事件：文章创建完成
# 触发时机：当一篇新文章在系统中创建成功（如数据库写入完成、状态设为"已发布"或"草稿"）后触发
# 应用场景：插件可监听此事件，执行创建后的后续操作（如自动生成文章摘要、同步到外部平台、发送通知等）
ARTICLE_CREATE = 'article_create'

# 事件：文章更新完成
# 触发时机：当已存在的文章内容、属性（如标题、分类、状态）修改并保存成功后触发
# 应用场景：插件可监听此事件，执行更新后的联动操作（如更新文章索引、记录修改日志、重新生成相关统计数据等）
ARTICLE_UPDATE = 'article_update'

# 事件：文章删除完成
# 触发时机：当一篇文章从系统中删除（物理删除或逻辑删除，如标记为"已删除"状态）后触发
# 应用场景：插件可监听此事件，执行删除后的清理操作（如删除关联的评论、移除相关缓存、同步删除外部存储的附件等）
ARTICLE_DELETE = 'article_delete'


# 文章内容钩子名称常量
# 用途：定义专门用于拦截、修改文章内容的钩子标识，与上述"操作事件"区分（事件侧重流程节点，钩子侧重内容处理）
# 命名格式与事件常量保持一致，确保插件系统中钩子名称的唯一性和可识别性
# 应用场景：插件可注册此钩子，在文章内容渲染前（如详情页展示、导出为PDF）对内容进行自定义处理（如过滤敏感词、替换关键词、添加水印等）
ARTICLE_CONTENT_HOOK_NAME = "the_content"