Files
server-core/alembic/versions/0033_booking_lifecycle.py
T
Pine 614804a0a6 feat(training): 活动体系重构与报名生命周期闭环
- 活动三维标签(区域/类型/模式)+ 发布范围(本园区/公开)+ 审核流(0031):C 端仅展示 approved,园区活动仅本园区可见
- 独立字段:富文本介绍 body、注意事项 notice(0032)、外链报名 signup_mode/external_url、发布者信息
- 审核端点 /api/events/{eid}/review 双身份(operator 任意 / carrier 限本园区)+ /api/events/mine
- 报名生命周期闭环(0033):未支付/待审核=删除,待参加=取消,结束未签到=爽约可申诉,未支付 15 分钟自动关闭删除

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-31 20:36:42 +08:00

35 lines
1.2 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""报名生命周期:爽约与申诉(bookings 加 appeal_status/appeal_reason/appeal_at
状态语义(本迁移后完整闭环):
未支付(unpaid) → 15 分钟未付自动关闭并删除报名
待审核(audit pending, 免费人工审) → 可删除报名
待参加(approved) → 免费可取消;已支付不可取消
已结束(done) → 已签到=已完成;未签到=爽约(可申诉)
已取消(cancelled)
Revision ID: 0033_booking_lifecycle
Revises: 0032_event_notice
Create Date: 2026-08-31
"""
from __future__ import annotations
import sqlalchemy as sa
from alembic import op
revision = "0033_booking_lifecycle"
down_revision = "0032_event_notice"
branch_labels = None
depends_on = None
def upgrade() -> None:
op.add_column("bookings", sa.Column("appeal_status", sa.String(), nullable=True, server_default="")) # ''|pending|approved|rejected
op.add_column("bookings", sa.Column("appeal_reason", sa.Text(), nullable=True, server_default=""))
op.add_column("bookings", sa.Column("appeal_at", sa.String(), nullable=True, server_default=""))
def downgrade() -> None:
op.drop_column("bookings", "appeal_at")
op.drop_column("bookings", "appeal_reason")
op.drop_column("bookings", "appeal_status")