"""Add user address to payment methods

Revision ID: d143acc929ee
Revises: e037b5354fbf
Create Date: 2022-12-04 14:35:03.964397

"""

from collections.abc import Sequence

import sqlalchemy as sa
from alembic import op

# revision identifiers, used by Alembic.
revision: str = "d143acc929ee"
down_revision: str | None = "e037b5354fbf"
branch_labels: str | Sequence[str] | None = None
depends_on: str | Sequence[str] | None = None


def upgrade() -> None:
    # ### commands auto generated by Alembic - please adjust! ###
    op.add_column("paymentmethods", sa.Column("wallet_id", sa.Text(), nullable=True))
    op.add_column("paymentmethods", sa.Column("user_address", sa.Text(), nullable=True, server_default=""))
    op.create_foreign_key(
        op.f("paymentmethods_wallet_id_wallets_fkey"), "paymentmethods", "wallets", ["wallet_id"], ["id"], ondelete="SET NULL"
    )
    op.alter_column("paymentmethods", "user_address", server_default=None)
    # ### end Alembic commands ###


def downgrade() -> None:
    # ### commands auto generated by Alembic - please adjust! ###
    op.drop_constraint(op.f("paymentmethods_wallet_id_wallets_fkey"), "paymentmethods", type_="foreignkey")
    op.drop_column("paymentmethods", "user_address")
    op.drop_column("paymentmethods", "wallet_id")
    # ### end Alembic commands ###
