Files
PocketVeto/backend/alembic/versions/0007_add_member_bio_fields.py
Jack Levy e21eb21acf feat(members): add full member bio, contact info, and service history
Lazy-enriches member profiles on first view via Congress.gov detail API.
Adds office address, phone, official website, congress.gov link, birth
year, terms history, leadership roles, and sponsored/cosponsored counts.
Includes DB migration 0007 for new member columns.

Co-Authored-By: Jack Levy
2026-03-01 00:14:16 -05:00

38 lines
1.4 KiB
Python

"""add member bio and contact fields
Revision ID: 0007
Revises: 0006
Create Date: 2026-03-01
"""
import sqlalchemy as sa
from alembic import op
revision = "0007"
down_revision = "0006"
branch_labels = None
depends_on = None
def upgrade():
op.add_column("members", sa.Column("congress_url", sa.String(), nullable=True))
op.add_column("members", sa.Column("birth_year", sa.String(10), nullable=True))
op.add_column("members", sa.Column("address", sa.String(), nullable=True))
op.add_column("members", sa.Column("phone", sa.String(50), nullable=True))
op.add_column("members", sa.Column("terms_json", sa.JSON(), nullable=True))
op.add_column("members", sa.Column("leadership_json", sa.JSON(), nullable=True))
op.add_column("members", sa.Column("sponsored_count", sa.Integer(), nullable=True))
op.add_column("members", sa.Column("cosponsored_count", sa.Integer(), nullable=True))
op.add_column("members", sa.Column("detail_fetched", sa.DateTime(timezone=True), nullable=True))
def downgrade():
op.drop_column("members", "congress_url")
op.drop_column("members", "birth_year")
op.drop_column("members", "address")
op.drop_column("members", "phone")
op.drop_column("members", "terms_json")
op.drop_column("members", "leadership_json")
op.drop_column("members", "sponsored_count")
op.drop_column("members", "cosponsored_count")
op.drop_column("members", "detail_fetched")