"""0004_autopass_rules

Revision ID: 1e6ee97c3120
Revises: b9d692c0a774
Create Date: 2026-07-19 02:43:06.090138
"""
from typing import Sequence, Union

from alembic import op
import sqlalchemy as sa


revision: str = '1e6ee97c3120'
down_revision: Union[str, None] = 'b9d692c0a774'
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None


def upgrade() -> None:
    # ### commands auto generated by Alembic - please adjust! ###
    op.create_table('autopass_rules',
    sa.Column('id', sa.UUID(), server_default=sa.text('gen_random_uuid()'), nullable=False),
    sa.Column('match_id', sa.UUID(), nullable=False),
    sa.Column('owner_player_id', sa.UUID(), nullable=False),
    sa.Column('trigger', sa.String(), nullable=False),
    sa.Column('trigger_player_id', sa.UUID(), nullable=True),
    sa.Column('target_player_id', sa.UUID(), nullable=False),
    sa.Column('active', sa.Boolean(), server_default=sa.text('true'), nullable=False),
    sa.Column('created_at', sa.TIMESTAMP(timezone=True), server_default=sa.text('now()'), nullable=False),
    sa.ForeignKeyConstraint(['match_id'], ['matches.id'], ondelete='CASCADE'),
    sa.ForeignKeyConstraint(['owner_player_id'], ['players.id'], ondelete='CASCADE'),
    sa.ForeignKeyConstraint(['target_player_id'], ['players.id'], ondelete='CASCADE'),
    sa.ForeignKeyConstraint(['trigger_player_id'], ['players.id'], ondelete='SET NULL'),
    sa.PrimaryKeyConstraint('id'),
    sa.UniqueConstraint('match_id', 'owner_player_id', name='uq_autopass_owner_per_match')
    )
    # ### end Alembic commands ###


def downgrade() -> None:
    # ### commands auto generated by Alembic - please adjust! ###
    op.drop_table('autopass_rules')
    # ### end Alembic commands ###
