"""File upload (R2) and S3/S3-compatible import source columns.

Revision ID: 065
Revises: 064
Create Date: 2026-05-02
"""
from alembic import op
import sqlalchemy as sa

revision = "065"
down_revision = "064"
branch_labels = None
depends_on = None


def upgrade() -> None:
    # R2 key for file-upload imports (object is deleted after successful extraction)
    op.add_column("projects", sa.Column("source_r2_key", sa.Text(), nullable=True))
    # S3/S3-compatible: full object URL (public or private)
    op.add_column("projects", sa.Column("source_s3_object_url", sa.Text(), nullable=True))
    # Encrypted credentials — stored only until worker extracts the archive, then nulled
    op.add_column("projects", sa.Column("source_s3_access_key_enc", sa.Text(), nullable=True))
    op.add_column("projects", sa.Column("source_s3_secret_key_enc", sa.Text(), nullable=True))
    op.add_column("projects", sa.Column("source_s3_endpoint_url", sa.Text(), nullable=True))
    op.add_column("projects", sa.Column("source_s3_region", sa.String(64), nullable=True))


def downgrade() -> None:
    op.drop_column("projects", "source_s3_region")
    op.drop_column("projects", "source_s3_endpoint_url")
    op.drop_column("projects", "source_s3_secret_key_enc")
    op.drop_column("projects", "source_s3_access_key_enc")
    op.drop_column("projects", "source_s3_object_url")
    op.drop_column("projects", "source_r2_key")
