"""Run the platform AI brief once per week. Revision ID: 520 Revises: 519 """ import sqlalchemy as sa from alembic import op revision = "520" down_revision = "519" branch_labels = None depends_on = None _JOB = "intelligence.analysis_daily" _WEEKLY_CRON = "35 7 * * 1" _DAILY_CRON = "35 7 * * *" def upgrade() -> None: """Keep the stable job key/history while moving its automatic run to Monday.""" op.get_bind().execute( sa.text( """ UPDATE scheduled_jobs SET cron_expr = :cron_expr, display_name = :display_name, description = :description, updated_at = UTC_TIMESTAMP() WHERE name = :name """ ), { "name": _JOB, "cron_expr": _WEEKLY_CRON, "display_name": "AI 大脑每周跨域简报", "description": ( "每周一 07:35 UTC 在确定性快照生成后,按事实 Hash 生成全平台中英双语简报;" "功能开关关闭时安全跳过,不影响快照和平台运行。" ), }, ) def downgrade() -> None: op.get_bind().execute( sa.text( """ UPDATE scheduled_jobs SET cron_expr = :cron_expr, display_name = :display_name, description = :description, updated_at = UTC_TIMESTAMP() WHERE name = :name """ ), { "name": _JOB, "cron_expr": _DAILY_CRON, "display_name": "AI 大脑每日跨域简报", "description": ( "在确定性快照生成后按事实 Hash 生成全平台中英双语简报;" "功能开关关闭时安全跳过,不影响快照和平台运行。" ), }, )