"""tables Revision ID: d009e91d1863 Revises: 84f73c5eb1f2 Create Date: 2025-11-09 01:50:32.046162 """ from typing import Sequence, Union from alembic import op import sqlalchemy as sa # revision identifiers, used by Alembic. revision: str = 'd009e91d1863' down_revision: Union[str, None] = '84f73c5eb1f2' branch_labels: Union[str, Sequence[str], None] = None depends_on: Union[str, Sequence[str], None] = None def upgrade() -> None: """Upgrade schema.""" # ### commands auto generated by Alembic - please adjust! ### op.create_table('sessions', sa.Column('id', sa.Integer(), autoincrement=True, nullable=False), sa.Column('code', sa.String(length=8), nullable=False), sa.Column('patient_id', sa.Integer(), nullable=False), sa.Column('sent_at', sa.DateTime(), nullable=False), sa.Column('consulted_at', sa.DateTime(), nullable=True), sa.Column('doctor_id', sa.Integer(), nullable=False), sa.Column('paid_at', sa.DateTime(), nullable=True), sa.ForeignKeyConstraint(['doctor_id'], ['doctors.id'], ), sa.ForeignKeyConstraint(['patient_id'], ['patients.id'], ondelete='CASCADE'), sa.PrimaryKeyConstraint('id'), sa.UniqueConstraint('code') ) op.create_table('session_date_time_history', sa.Column('id', sa.Integer(), autoincrement=True, nullable=False), sa.Column('sessions_id', sa.Integer(), nullable=False), sa.Column('updated_at', sa.DateTime(), nullable=False), sa.Column('consultation_date_time', sa.DateTime(), nullable=True), sa.Column('who_updated', sa.String(length=50), nullable=True), sa.ForeignKeyConstraint(['sessions_id'], ['sessions.id'], ondelete='CASCADE'), sa.PrimaryKeyConstraint('id') ) op.create_table('session_notifications', sa.Column('id', sa.Integer(), autoincrement=True, nullable=False), sa.Column('session_id', sa.Integer(), nullable=False), sa.Column('patient_id', sa.Integer(), nullable=False), sa.Column('type', sa.Enum('PAYMENT_RECEIVED', name='notificationtype'), nullable=False), sa.Column('created_at', sa.DateTime(), nullable=False), sa.Column('sent_at', sa.DateTime(), nullable=True), sa.Column('last_error', sa.Text(), nullable=True), sa.ForeignKeyConstraint(['patient_id'], ['patients.id'], ondelete='CASCADE'), sa.ForeignKeyConstraint(['session_id'], ['sessions.id'], ondelete='CASCADE'), sa.PrimaryKeyConstraint('id'), sa.UniqueConstraint('session_id', 'type', name='uq_session_notification_once') ) op.create_table('session_status_history', sa.Column('id', sa.Integer(), autoincrement=True, nullable=False), sa.Column('sessions_id', sa.Integer(), nullable=False), sa.Column('updated_at', sa.DateTime(), nullable=False), sa.Column('status', sa.String(length=50), nullable=False), sa.Column('who_updated', sa.String(length=50), nullable=True), sa.ForeignKeyConstraint(['sessions_id'], ['sessions.id'], ondelete='CASCADE'), sa.PrimaryKeyConstraint('id') ) # ### end Alembic commands ### def downgrade() -> None: """Downgrade schema.""" # ### commands auto generated by Alembic - please adjust! ### op.drop_table('session_status_history') op.drop_table('session_notifications') op.drop_table('session_date_time_history') op.drop_table('sessions') # ### end Alembic commands ###