feat: 添加日历事件订阅者功能及权限重构

This commit is contained in:
zl-q
2026-03-30 09:05:50 +08:00
parent f126d7a547
commit 1aac62f39e
13 changed files with 498 additions and 74 deletions
@@ -0,0 +1,33 @@
"""expand schedule_subscriptions permission constraint to 15
Revision ID: 202603270001
Revises: 202603260001
Create Date: 2026-03-27 00:00:00
"""
from typing import Sequence, Union
from alembic import op
revision: str = "202603270001"
down_revision: Union[str, Sequence[str], None] = "202603260001"
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None
def upgrade() -> None:
op.execute(
"ALTER TABLE schedule_subscriptions DROP CONSTRAINT IF EXISTS chk_schedule_subscription_permission"
)
op.execute(
"ALTER TABLE schedule_subscriptions ADD CONSTRAINT chk_schedule_subscription_permission CHECK (permission BETWEEN 0 AND 15)"
)
def downgrade() -> None:
op.execute(
"ALTER TABLE schedule_subscriptions DROP CONSTRAINT IF EXISTS chk_schedule_subscription_permission"
)
op.execute(
"ALTER TABLE schedule_subscriptions ADD CONSTRAINT chk_schedule_subscription_permission CHECK (permission BETWEEN 0 AND 7)"
)
@@ -0,0 +1,33 @@
"""remove paused status from schedule_subscriptions
Revision ID: 202603300001
Revises: 202603270001
Create Date: 2026-03-30 00:00:00
"""
from typing import Sequence, Union
from alembic import op
revision: str = "202603300001"
down_revision: Union[str, Sequence[str], None] = "202603270001"
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None
def upgrade() -> None:
op.execute(
"ALTER TABLE schedule_subscriptions DROP CONSTRAINT IF EXISTS chk_schedule_subscription_status"
)
op.execute(
"ALTER TABLE schedule_subscriptions ADD CONSTRAINT chk_schedule_subscription_status CHECK (status::text = ANY (ARRAY['active'::character varying, 'pending'::character varying, 'unsubscribed'::character varying]::text[]))"
)
def downgrade() -> None:
op.execute(
"ALTER TABLE schedule_subscriptions DROP CONSTRAINT IF EXISTS chk_schedule_subscription_status"
)
op.execute(
"ALTER TABLE schedule_subscriptions ADD CONSTRAINT chk_schedule_subscription_status CHECK (status::text = ANY (ARRAY['active'::character varying, 'paused'::character varying, 'pending'::character varying, 'unsubscribed'::character varying]::text[]))"
)