"""user consent to personal data processing

Согласие на обработку персональных данных при регистрации (сессия 30):
- `users.consent_version` — редакция регламента (`instance_settings.consent_policy.version`),
  с которой согласился пользователь;
- `users.consent_given_at` — момент согласия.

Оба поля nullable: у существующих пользователей и у зарегистрированных при
выключенном модуле согласие не запрашивалось — `NULL` трактуется как
«согласие не запрашивалось», вход таким пользователям не блокируется.

Revision ID: 4d08a44ad153
Revises: d87681e12784
Create Date: 2026-08-04 21:41:33.813206

"""
from typing import Sequence, Union

from alembic import op
import sqlalchemy as sa


# revision identifiers, used by Alembic.
revision: str = '4d08a44ad153'
down_revision: Union[str, Sequence[str], None] = 'd87681e12784'
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None


def upgrade() -> None:
    """Upgrade schema."""
    op.add_column('users', sa.Column('consent_version', sa.Integer(), nullable=True))
    op.add_column(
        'users', sa.Column('consent_given_at', sa.DateTime(timezone=True), nullable=True)
    )


def downgrade() -> None:
    """Downgrade schema."""
    op.drop_column('users', 'consent_given_at')
    op.drop_column('users', 'consent_version')
