mirror of
https://github.com/olegvodyanov/docbot.git
synced 2026-02-02 02:45:46 +03:00
79 lines
3.3 KiB
Python
79 lines
3.3 KiB
Python
"""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 ###
|