"""Add survey_invites table and invite_id FK on survey_responses. Revision ID: 047 Revises: 046 Create Date: 2026-03-04 """ from typing import Sequence, Union from alembic import op import sqlalchemy as sa from sqlalchemy.dialects.postgresql import UUID revision: str = "047" down_revision: str = "046" branch_labels: Union[str, Sequence[str], None] = None depends_on: Union[str, Sequence[str], None] = None def upgrade() -> None: op.create_table( "survey_invites", sa.Column("id", UUID(as_uuid=True), primary_key=True), sa.Column("token", sa.String(32), unique=True, nullable=False), sa.Column("recipient_name", sa.String(255), nullable=False), sa.Column("recipient_email", sa.String(255), nullable=True), sa.Column("status", sa.String(20), nullable=False, server_default="pending"), sa.Column("email_sent", sa.Boolean, nullable=False, server_default="false"), sa.Column("created_at", sa.DateTime(timezone=True), nullable=False), sa.Column("completed_at", sa.DateTime(timezone=True), nullable=True), ) op.add_column( "survey_responses", sa.Column("invite_id", UUID(as_uuid=True), sa.ForeignKey("survey_invites.id"), nullable=True), ) def downgrade() -> None: op.drop_column("survey_responses", "invite_id") op.drop_table("survey_invites")