"""Add white-label columns

Revision ID: eb9aa2fd3071
Revises: 1adfc4d1c3fd
Create Date: 2026-01-08 01:18:55.830511

"""
from alembic import op
import sqlalchemy as sa


# revision identifiers, used by Alembic.
revision = 'eb9aa2fd3071'
down_revision = '1adfc4d1c3fd'
branch_labels = None
depends_on = None


def upgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    with op.batch_alter_table('users', schema=None) as batch_op:
        batch_op.add_column(sa.Column('logo_filename', sa.String(length=255), nullable=True))
        
        # Ajouter les colonnes AVEC valeur par défaut temporaire
        batch_op.add_column(sa.Column('show_logo_on_reports', sa.Boolean(), nullable=True))
        batch_op.add_column(sa.Column('show_company_name_on_reports', sa.Boolean(), nullable=True))
        batch_op.add_column(sa.Column('use_manager_branding', sa.Boolean(), nullable=True))

    # Mettre les valeurs par défaut pour les lignes existantes
    op.execute("UPDATE users SET show_logo_on_reports = FALSE WHERE show_logo_on_reports IS NULL")
    op.execute("UPDATE users SET show_company_name_on_reports = FALSE WHERE show_company_name_on_reports IS NULL")
    op.execute("UPDATE users SET use_manager_branding = TRUE WHERE use_manager_branding IS NULL")

    # Rendre les colonnes NOT NULL maintenant qu'elles ont des valeurs
    with op.batch_alter_table('users', schema=None) as batch_op:
        batch_op.alter_column('show_logo_on_reports', nullable=False)
        batch_op.alter_column('show_company_name_on_reports', nullable=False)
        batch_op.alter_column('use_manager_branding', nullable=False)
    # ### end Alembic commands ###


def downgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    with op.batch_alter_table('users', schema=None) as batch_op:
        batch_op.drop_column('use_manager_branding')
        batch_op.drop_column('show_company_name_on_reports')
        batch_op.drop_column('show_logo_on_reports')
        batch_op.drop_column('logo_filename')

    # ### end Alembic commands ###
