v1
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
"""add member onboarding lifecycle
|
||||
|
||||
Revision ID: c7d2b6f4a9e1
|
||||
Revises: a1b2c3d4e5f6
|
||||
Create Date: 2026-03-31 23:25:00.000000
|
||||
|
||||
"""
|
||||
from typing import Sequence, Union
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
|
||||
revision: str = "c7d2b6f4a9e1"
|
||||
down_revision: Union[str, None] = "a1b2c3d4e5f6"
|
||||
branch_labels: Union[str, Sequence[str], None] = None
|
||||
depends_on: Union[str, Sequence[str], None] = None
|
||||
|
||||
|
||||
def upgrade() -> None:
|
||||
op.add_column("members", sa.Column("member_status", sa.String(length=32), nullable=False, server_default="invited"))
|
||||
op.add_column("members", sa.Column("claimed_at", sa.DateTime(timezone=True), nullable=True))
|
||||
op.add_column("members", sa.Column("onboarding_completed_at", sa.DateTime(timezone=True), nullable=True))
|
||||
op.add_column("members", sa.Column("contract_signed_at", sa.DateTime(timezone=True), nullable=True))
|
||||
op.add_column("members", sa.Column("contract_signer_name", sa.String(length=255), nullable=True))
|
||||
op.add_column("members", sa.Column("contract_version", sa.String(length=50), nullable=True))
|
||||
op.add_column("members", sa.Column("activated_at", sa.DateTime(timezone=True), nullable=True))
|
||||
op.create_index(op.f("ix_members_member_status"), "members", ["member_status"], unique=False)
|
||||
|
||||
op.execute("UPDATE members SET member_status = 'active' WHERE is_claimed = true")
|
||||
op.execute("UPDATE members SET member_status = 'invited' WHERE is_claimed = false")
|
||||
op.alter_column("members", "member_status", server_default=None)
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
op.drop_index(op.f("ix_members_member_status"), table_name="members")
|
||||
op.drop_column("members", "activated_at")
|
||||
op.drop_column("members", "contract_version")
|
||||
op.drop_column("members", "contract_signer_name")
|
||||
op.drop_column("members", "contract_signed_at")
|
||||
op.drop_column("members", "onboarding_completed_at")
|
||||
op.drop_column("members", "claimed_at")
|
||||
op.drop_column("members", "member_status")
|
||||
Reference in New Issue
Block a user