health-apps-backend/migrations/versions/928001a9d80f_updated_clinic.py

111 lines
5.4 KiB
Python

"""updated clinic
Revision ID: 928001a9d80f
Revises:
Create Date: 2025-05-12 14:19:15.351582
"""
from typing import Sequence, Union
from alembic import op
import sqlalchemy as sa
# revision identifiers, used by Alembic.
revision: str = '928001a9d80f'
down_revision: Union[str, None] = None
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.add_column('appointments', sa.Column('deleted_at', sa.DateTime(timezone=True), nullable=True))
op.add_column('calenders', sa.Column('deleted_at', sa.DateTime(timezone=True), nullable=True))
op.add_column('clinics', sa.Column('emergency_phone', sa.String(), nullable=True))
op.add_column('clinics', sa.Column('fax', sa.String(), nullable=True))
# Create the integration enum type first
integration_type = sa.Enum('BP', 'MEDICAL_DIRECTOR', name='integration')
integration_type.create(op.get_bind())
op.add_column('clinics', sa.Column('integration', integration_type, nullable=True))
op.add_column('clinics', sa.Column('pms_id', sa.String(), nullable=True))
op.add_column('clinics', sa.Column('practice_name', sa.String(), nullable=True))
op.add_column('clinics', sa.Column('logo', sa.String(), nullable=True))
op.add_column('clinics', sa.Column('country', sa.String(), nullable=True))
op.add_column('clinics', sa.Column('postal_code', sa.String(), nullable=True))
op.add_column('clinics', sa.Column('city', sa.String(), nullable=True))
op.add_column('clinics', sa.Column('state', sa.String(), nullable=True))
op.add_column('clinics', sa.Column('abn_doc', sa.String(), nullable=True))
op.add_column('clinics', sa.Column('abn_number', sa.String(), nullable=True))
op.add_column('clinics', sa.Column('contract_doc', sa.String(), nullable=True))
op.add_column('clinics', sa.Column('clinic_phone', sa.String(), nullable=True))
op.add_column('clinics', sa.Column('is_clinic_phone_enabled', sa.Boolean(), nullable=True))
op.add_column('clinics', sa.Column('other_info', sa.String(), nullable=True))
op.add_column('clinics', sa.Column('greeting_msg', sa.String(), nullable=True))
op.add_column('clinics', sa.Column('voice_model', sa.String(), nullable=True))
op.add_column('clinics', sa.Column('voice_model_provider', sa.String(), nullable=True))
op.add_column('clinics', sa.Column('voice_model_gender', sa.String(), nullable=True))
op.add_column('clinics', sa.Column('scenarios', sa.String(), nullable=True))
op.add_column('clinics', sa.Column('general_info', sa.String(), nullable=True))
# Create the clinicstatus enum type first
clinic_status_type = sa.Enum('ACTIVE', 'INACTIVE', 'UNDER_REVIEW', 'REQUESTED_DOCTOR', 'REJECTED', 'PAYMENT_DUE', name='clinicstatus')
clinic_status_type.create(op.get_bind())
op.add_column('clinics', sa.Column('status', clinic_status_type, nullable=True))
op.add_column('clinics', sa.Column('domain', sa.String(), nullable=True))
op.add_column('clinics', sa.Column('deleted_at', sa.DateTime(timezone=True), nullable=True))
op.create_unique_constraint(None, 'clinics', ['emergency_phone'])
op.add_column('doctors', sa.Column('deleted_at', sa.DateTime(timezone=True), nullable=True))
op.add_column('patients', sa.Column('deleted_at', sa.DateTime(timezone=True), nullable=True))
op.add_column('users', sa.Column('profile_pic', sa.String(), nullable=True))
op.add_column('users', sa.Column('deleted_at', sa.DateTime(timezone=True), nullable=True))
# ### end Alembic commands ###
def downgrade() -> None:
"""Downgrade schema."""
# ### commands auto generated by Alembic - please adjust! ###
op.drop_column('users', 'deleted_at')
op.drop_column('users', 'profile_pic')
op.drop_column('patients', 'deleted_at')
op.drop_column('doctors', 'deleted_at')
op.drop_constraint(None, 'clinics', type_='unique')
op.drop_column('clinics', 'deleted_at')
op.drop_column('clinics', 'domain')
# Drop the status column first
op.drop_column('clinics', 'status')
# Then drop the enum type
sa.Enum(name='clinicstatus').drop(op.get_bind())
op.drop_column('clinics', 'general_info')
op.drop_column('clinics', 'scenarios')
op.drop_column('clinics', 'voice_model_gender')
op.drop_column('clinics', 'voice_model_provider')
op.drop_column('clinics', 'voice_model')
op.drop_column('clinics', 'greeting_msg')
op.drop_column('clinics', 'other_info')
op.drop_column('clinics', 'is_clinic_phone_enabled')
op.drop_column('clinics', 'clinic_phone')
op.drop_column('clinics', 'contract_doc')
op.drop_column('clinics', 'abn_number')
op.drop_column('clinics', 'abn_doc')
op.drop_column('clinics', 'state')
op.drop_column('clinics', 'city')
op.drop_column('clinics', 'postal_code')
op.drop_column('clinics', 'country')
op.drop_column('clinics', 'logo')
op.drop_column('clinics', 'practice_name')
op.drop_column('clinics', 'pms_id')
# Drop the integration column first
op.drop_column('clinics', 'integration')
# Then drop the enum type
sa.Enum(name='integration').drop(op.get_bind())
op.drop_column('clinics', 'fax')
op.drop_column('clinics', 'emergency_phone')
op.drop_column('calenders', 'deleted_at')
op.drop_column('appointments', 'deleted_at')
# ### end Alembic commands ###