"""add calendar sync enabled flag

Revision ID: 20260525_0007
Revises: 20260525_0006
Create Date: 2026-05-25 01:20:00
"""
from __future__ import annotations

from alembic import op
import sqlalchemy as sa


revision = "20260525_0007"
down_revision = "20260525_0006"
branch_labels = None
depends_on = None


def upgrade() -> None:
    bind = op.get_bind()
    inspector = sa.inspect(bind)
    user_columns = {column["name"] for column in inspector.get_columns("users")}

    if "calendar_sync_enabled" not in user_columns:
        op.add_column(
            "users",
            sa.Column("calendar_sync_enabled", sa.Boolean(), nullable=True, server_default=sa.true()),
        )
        op.execute("UPDATE users SET calendar_sync_enabled = TRUE WHERE calendar_sync_enabled IS NULL")
        op.alter_column(
            "users",
            "calendar_sync_enabled",
            existing_type=sa.Boolean(),
            nullable=False,
            server_default=sa.true(),
        )


def downgrade() -> None:
    bind = op.get_bind()
    inspector = sa.inspect(bind)
    user_columns = {column["name"] for column in inspector.get_columns("users")}
    if "calendar_sync_enabled" in user_columns:
        op.drop_column("users", "calendar_sync_enabled")
