"""Add created_by and source to materials

Revision ID: 008
Revises: 007
Create Date: 2026-03-01

"""
from typing import Sequence, Union
from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects.postgresql import UUID

revision: str = "008"
down_revision: Union[str, None] = "007"
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None


def upgrade() -> None:
    op.execute(
        "ALTER TABLE materials "
        "ADD COLUMN IF NOT EXISTS created_by UUID REFERENCES users(id) ON DELETE SET NULL, "
        "ADD COLUMN IF NOT EXISTS source VARCHAR(20) NOT NULL DEFAULT 'manual'"
    )


def downgrade() -> None:
    op.execute(
        "ALTER TABLE materials "
        "DROP COLUMN IF EXISTS created_by, "
        "DROP COLUMN IF EXISTS source"
    )
