"""add devices table for push notification registration Revision ID: 004 Revises: 003 Create Date: 2026-05-10 """ from typing import Sequence, Union from alembic import op import sqlalchemy as sa from sqlalchemy.dialects import postgresql revision: str = '004' down_revision: Union[str, None] = '003' branch_labels: Union[str, Sequence[str], None] = None depends_on: Union[str, Sequence[str], None] = None def upgrade() -> None: op.create_table('devices', sa.Column('id', postgresql.UUID(as_uuid=True), nullable=False), sa.Column('user_id', postgresql.UUID(as_uuid=True), nullable=False), sa.Column('platform', sa.String(length=50), nullable=True), sa.Column('push_token', sa.String(length=500), nullable=True), sa.Column('client_id', sa.String(length=255), nullable=False), sa.Column('device_info', postgresql.JSONB(astext_type=sa.Text()), nullable=True), sa.Column('is_active', sa.Boolean(), nullable=True), sa.Column('created_at', sa.DateTime(), nullable=True), sa.Column('updated_at', sa.DateTime(), nullable=True), sa.PrimaryKeyConstraint('id') ) op.create_index(op.f('ix_devices_user_id'), 'devices', ['user_id'], unique=False) def downgrade() -> None: op.drop_table('devices')