"""套餐 v1:额度数字是 PRD 的建议值,D2 成本实测后改数字就是加一个版本(data-model §4.3)。 Revision ID: 0002 """ from __future__ import annotations import json from alembic import op from sqlalchemy import text revision = "0002" down_revision = "0001" MB = 1024 * 1024 PLANS = [ ("free", 1, "免费版", {"parse": 3}, {"max_file_bytes": 50 * MB, "max_pages": 300, "max_projects": 1}), ( "pro", 1, "专业版", {"parse": 500, "generate": 300}, {"max_file_bytes": 200 * MB, "max_pages": 1000, "max_projects": None}, ), ] def upgrade() -> None: for code, version, name, quotas, limits in PLANS: op.get_bind().execute( text("INSERT INTO plan (code, version, name, quotas, limits) VALUES (:c, :v, :n, :q, :l)"), {"c": code, "v": version, "n": name, "q": json.dumps(quotas), "l": json.dumps(limits)}, ) def downgrade() -> None: op.get_bind().execute(text("DELETE FROM plan WHERE version = 1"))