"""Add teacher scoring fields to submissions

Revision ID: add_teacher_scoring
Revises: 
Create Date: 2025-11-03

"""
from alembic import op
import sqlalchemy as sa


# revision identifiers, used by Alembic.
revision = 'add_teacher_scoring'
down_revision = None
branch_labels = None
depends_on = None


def upgrade():
    # Add new columns for teacher review
    op.add_column('submissions', sa.Column('teacher_score', sa.Float(), nullable=True))
    op.add_column('submissions', sa.Column('teacher_feedback', sa.Text(), nullable=True))
    op.add_column('submissions', sa.Column('teacher_notes', sa.Text(), nullable=True))
    op.add_column('submissions', sa.Column('reviewed_by', sa.Integer(), nullable=True))
    op.add_column('submissions', sa.Column('reviewed_at', sa.DateTime(), nullable=True))
    
    # Add foreign key for reviewed_by
    try:
        op.create_foreign_key('fk_submissions_reviewed_by', 'submissions', 'users', ['reviewed_by'], ['id'])
    except:
        pass  # Foreign key might already exist


def downgrade():
    # Remove foreign key
    try:
        op.drop_constraint('fk_submissions_reviewed_by', 'submissions', type_='foreignkey')
    except:
        pass
    
    # Remove columns
    op.drop_column('submissions', 'reviewed_at')
    op.drop_column('submissions', 'reviewed_by')
    op.drop_column('submissions', 'teacher_notes')
    op.drop_column('submissions', 'teacher_feedback')
    op.drop_column('submissions', 'teacher_score')
