import sqlalchemy as sa
from alembic import op
from sqlalchemy.dialects.postgresql import JSON

revision = '005_dpo_tasks'
down_revision = '004_sft_tasks'
branch_labels = None
depends_on = None

def upgrade():
    op.create_table('dpo_tasks', sa.Column('id', sa.Integer(), primary_key=True, index=True), sa.Column('name', sa.String(255), nullable=False), sa.Column('description', sa.Text(), nullable=True), sa.Column('status', sa.String(50), default='pending', nullable=False), sa.Column('dataset_id', sa.Integer(), nullable=False), sa.Column('model_name', sa.String(255), nullable=False), sa.Column('hyperparameters', JSON, nullable=True), sa.Column('result', JSON, nullable=True), sa.Column('tenant_id', sa.Integer(), nullable=True, index=True), sa.Column('created_by', sa.Integer(), nullable=True), sa.Column('created_at', sa.DateTime(), nullable=False), sa.Column('updated_at', sa.DateTime(), nullable=False), sa.Column('is_deleted', sa.Boolean(), default=False, nullable=False, index=True), sa.Column('deleted_at', sa.DateTime(), nullable=True), sa.Column('deleted_by', sa.Integer(), nullable=True), schema='hub_global')

def downgrade():
    op.drop_table('dpo_tasks', schema='hub_global')
