"""xp events table (gamification)
Revision ID: a1f2c3d4e5f6
Revises: 5245dee4bd6e
Create Date: 2026-09-20 12:00:00.000000
"""
from collections.abc import Sequence
import sqlalchemy as sa
from alembic import op
# revision identifiers, used by Alembic.
revision: str = 'a1f2c3d4e5f6'
down_revision: str | Sequence[str] | None = '5245dee4bd6e'
branch_labels: str | Sequence[str] | None = None
depends_on: str | Sequence[str] | None = None
def upgrade() -> None:
"""Upgrade schema."""
op.create_table('xp_events',
sa.Column('id', sa.Integer(), nullable=False),
sa.Column('task_id', sa.Integer(), nullable=True),
sa.Column('amount', sa.Integer(), nullable=False),
sa.Column('created_at', sa.DateTime(timezone=True), nullable=False),
sa.ForeignKeyConstraint(['task_id'], ['tasks.id'], ondelete='SET NULL'),
sa.PrimaryKeyConstraint('id'),
sa.UniqueConstraint('task_id')
)
def downgrade() -> None:
"""Downgrade schema."""
op.drop_table('xp_events')