"""add recurring meeting invites

Revision ID: d6520aedd835
Revises: b00bf41a650e
Create Date: 2026-06-11 18:38:45.170262
"""
from __future__ import annotations

from alembic import op
import sqlalchemy as sa



# revision identifiers, used by Alembic.
revision = 'd6520aedd835'
down_revision = 'b00bf41a650e'
branch_labels = None
depends_on = None


def upgrade() -> None:
    # ### commands auto generated by Alembic - please adjust! ###
    op.create_table('recurring_meeting_invites',
    sa.Column('id', sa.Integer(), nullable=False),
    sa.Column('host_user_id', sa.Integer(), nullable=False),
    sa.Column('guest_user_id', sa.Integer(), nullable=False),
    sa.Column('recurring_series_id', sa.String(), nullable=False),
    sa.Column('google_event_id', sa.String(), nullable=False),
    sa.Column('title', sa.String(), nullable=True),
    sa.Column('meet_link', sa.String(), nullable=False),
    sa.Column('platform', sa.String(), nullable=False),
    sa.Column('scheduled_at', sa.DateTime(timezone=True), nullable=False),
    sa.Column('guest_rsvp_status', sa.String(), nullable=True),
    sa.Column('organizer_email', sa.String(), nullable=True),
    sa.Column('created_at', sa.DateTime(timezone=True), server_default=sa.text('now()'), nullable=True),
    sa.Column('updated_at', sa.DateTime(timezone=True), server_default=sa.text('now()'), nullable=True),
    sa.ForeignKeyConstraint(['guest_user_id'], ['users.id'], ),
    sa.ForeignKeyConstraint(['host_user_id'], ['users.id'], ),
    sa.PrimaryKeyConstraint('id'),
    sa.UniqueConstraint('guest_user_id', 'google_event_id', name='uq_recurring_meeting_invite_guest_event')
    )
    op.create_index(op.f('ix_recurring_meeting_invites_google_event_id'), 'recurring_meeting_invites', ['google_event_id'], unique=False)
    op.create_index(op.f('ix_recurring_meeting_invites_guest_user_id'), 'recurring_meeting_invites', ['guest_user_id'], unique=False)
    op.create_index(op.f('ix_recurring_meeting_invites_host_user_id'), 'recurring_meeting_invites', ['host_user_id'], unique=False)
    op.create_index(op.f('ix_recurring_meeting_invites_id'), 'recurring_meeting_invites', ['id'], unique=False)
    op.create_index(op.f('ix_recurring_meeting_invites_recurring_series_id'), 'recurring_meeting_invites', ['recurring_series_id'], unique=False)
    op.create_index(op.f('ix_recurring_meeting_invites_scheduled_at'), 'recurring_meeting_invites', ['scheduled_at'], unique=False)
    # ### end Alembic commands ###


def downgrade() -> None:
    # ### commands auto generated by Alembic - please adjust! ###
    op.drop_index(op.f('ix_recurring_meeting_invites_scheduled_at'), table_name='recurring_meeting_invites')
    op.drop_index(op.f('ix_recurring_meeting_invites_recurring_series_id'), table_name='recurring_meeting_invites')
    op.drop_index(op.f('ix_recurring_meeting_invites_id'), table_name='recurring_meeting_invites')
    op.drop_index(op.f('ix_recurring_meeting_invites_host_user_id'), table_name='recurring_meeting_invites')
    op.drop_index(op.f('ix_recurring_meeting_invites_guest_user_id'), table_name='recurring_meeting_invites')
    op.drop_index(op.f('ix_recurring_meeting_invites_google_event_id'), table_name='recurring_meeting_invites')
    op.drop_table('recurring_meeting_invites')
    # ### end Alembic commands ###
