"""make_customer_id_payer_id_payment_request_id_nullable_in_payment_methods

Revision ID: a5020d338f05
Revises: 0d15d7784f71
Create Date: 2025-12-18 00:54:47.557318

"""
from typing import Sequence, Union

from alembic import op
import sqlalchemy as sa


# revision identifiers, used by Alembic.
revision: str = 'a5020d338f05'
down_revision: Union[str, Sequence[str], None] = '0d15d7784f71'
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None


def upgrade() -> None:
    """Upgrade schema."""
    # Make customer_id, payer_id, and payment_request_id nullable in payment_methods table
    op.alter_column('payment_methods', 'customer_id',
                    existing_type=sa.Integer(),
                    nullable=True)
    op.alter_column('payment_methods', 'payer_id',
                    existing_type=sa.Integer(),
                    nullable=True)
    op.alter_column('payment_methods', 'payment_request_id',
                    existing_type=sa.Integer(),
                    nullable=True)


def downgrade() -> None:
    """Downgrade schema."""
    # Revert customer_id, payer_id, and payment_request_id to non-nullable
    op.alter_column('payment_methods', 'customer_id',
                    existing_type=sa.Integer(),
                    nullable=False)
    op.alter_column('payment_methods', 'payer_id',
                    existing_type=sa.Integer(),
                    nullable=False)
    op.alter_column('payment_methods', 'payment_request_id',
                    existing_type=sa.Integer(),
                    nullable=False)
