From 50e7763380c6c63a50b29b3513a9e353f7a450b3 Mon Sep 17 00:00:00 2001 From: Michael Chihlas Date: Wed, 6 May 2026 03:27:31 -0400 Subject: [PATCH] feat(onboarding): add accounts.team_size_bucket and primary_psa for wizard Co-Authored-By: Claude Opus 4.7 --- ...1af7ab57ceb_accounts_add_wizard_columns.py | 28 +++++++++++++++++++ backend/app/models/account.py | 2 ++ 2 files changed, 30 insertions(+) create mode 100644 backend/alembic/versions/e1af7ab57ceb_accounts_add_wizard_columns.py diff --git a/backend/alembic/versions/e1af7ab57ceb_accounts_add_wizard_columns.py b/backend/alembic/versions/e1af7ab57ceb_accounts_add_wizard_columns.py new file mode 100644 index 00000000..1f676fd6 --- /dev/null +++ b/backend/alembic/versions/e1af7ab57ceb_accounts_add_wizard_columns.py @@ -0,0 +1,28 @@ +"""accounts add wizard columns + +Revision ID: e1af7ab57ceb +Revises: 58e3caaa6269 +Create Date: 2026-05-06 07:27:15.755518 + +""" +from typing import Sequence, Union + +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision: str = 'e1af7ab57ceb' +down_revision: Union[str, None] = '58e3caaa6269' +branch_labels: Union[str, Sequence[str], None] = None +depends_on: Union[str, Sequence[str], None] = None + + +def upgrade() -> None: + op.add_column("accounts", sa.Column("team_size_bucket", sa.String(20), nullable=True)) + op.add_column("accounts", sa.Column("primary_psa", sa.String(20), nullable=True)) + + +def downgrade() -> None: + op.drop_column("accounts", "primary_psa") + op.drop_column("accounts", "team_size_bucket") diff --git a/backend/app/models/account.py b/backend/app/models/account.py index 78353111..aa2c5750 100644 --- a/backend/app/models/account.py +++ b/backend/app/models/account.py @@ -48,6 +48,8 @@ class Account(Base): branding_logo_url: Mapped[Optional[str]] = mapped_column(String(500), nullable=True) branding_primary_color: Mapped[Optional[str]] = mapped_column(String(7), nullable=True) # hex like #06b6d4 branding_company_name: Mapped[Optional[str]] = mapped_column(String(200), nullable=True) + team_size_bucket: Mapped[Optional[str]] = mapped_column(String(20), nullable=True) + primary_psa: Mapped[Optional[str]] = mapped_column(String(20), nullable=True) # SSO / SAML groundwork (Task 11) sso_enabled: Mapped[bool] = mapped_column(Boolean, default=False, server_default="false")