"""added billing Revision ID: 9e7323692f03 Revises: 1b3226667bb5 Create Date: 2023-12-17 07:37:43.738011 """ from alembic import op import sqlalchemy as sa from sqlalchemy.dialects import postgresql # revision identifiers, used by Alembic. revision = '9e7323692f03' down_revision = '1b3226667bb5' branch_labels = None depends_on = None def upgrade(): # ### commands auto generated by Alembic - please adjust! ### op.create_table('voucher', sa.Column('name', sa.String(), nullable=False), sa.Column('usage_limit', sa.Integer(), nullable=False), sa.Column('used', sa.Integer(), nullable=False), sa.Column('start_date', sa.DateTime(), nullable=False), sa.Column('end_date', sa.DateTime(), nullable=False), sa.Column('once_per_customer', sa.Boolean(), nullable=False), sa.Column('once_per_order', sa.Boolean(), nullable=False), sa.Column('uid', sa.String(), nullable=False), sa.Column('created_at', sa.DateTime(), nullable=True), sa.Column('created_by_uid', sa.String(), nullable=True), sa.Column('updated_at', sa.DateTime(), nullable=True), sa.Column('updated_by_uid', sa.String(), nullable=True), sa.ForeignKeyConstraint(['created_by_uid'], ['user.uid'], ), sa.ForeignKeyConstraint(['updated_by_uid'], ['user.uid'], ), sa.PrimaryKeyConstraint('uid'), sa.UniqueConstraint('name') ) op.create_index(op.f('ix_voucher_uid'), 'voucher', ['uid'], unique=False) op.create_table('voucher_code', sa.Column('code', sa.String(length=20), nullable=False), sa.Column('voucher_uid', sa.String(), nullable=False), sa.Column('usage_limit', sa.Integer(), nullable=False), sa.Column('used', sa.Integer(), nullable=False), sa.Column('is_active', sa.Boolean(), nullable=False), sa.Column('uid', sa.String(), nullable=False), sa.Column('created_at', sa.DateTime(), nullable=True), sa.Column('created_by_uid', sa.String(), nullable=True), sa.Column('updated_at', sa.DateTime(), nullable=True), sa.Column('updated_by_uid', sa.String(), nullable=True), sa.ForeignKeyConstraint(['created_by_uid'], ['user.uid'], ), sa.ForeignKeyConstraint(['updated_by_uid'], ['user.uid'], ), sa.ForeignKeyConstraint(['voucher_uid'], ['voucher.uid'], ), sa.PrimaryKeyConstraint('uid'), sa.UniqueConstraint('code') ) op.create_index(op.f('ix_voucher_code_uid'), 'voucher_code', ['uid'], unique=False) op.create_table('profile_discount', sa.Column('profile_uid', sa.String(), nullable=False), sa.Column('name', sa.String(), nullable=False), sa.Column('discount_type', sa.String(), nullable=False), sa.Column('value_type', sa.String(), nullable=False), sa.Column('start_date', sa.DateTime(), nullable=False), sa.Column('end_date', sa.DateTime(), nullable=False), sa.Column('voucher_uid', sa.String(), nullable=True), sa.Column('value_percent', sa.Float(), nullable=True), sa.Column('value_amount', sa.Float(), nullable=True), sa.Column('is_active', sa.Boolean(), nullable=False), sa.Column('uid', sa.String(), nullable=False), sa.Column('created_at', sa.DateTime(), nullable=True), sa.Column('created_by_uid', sa.String(), nullable=True), sa.Column('updated_at', sa.DateTime(), nullable=True), sa.Column('updated_by_uid', sa.String(), nullable=True), sa.ForeignKeyConstraint(['created_by_uid'], ['user.uid'], ), sa.ForeignKeyConstraint(['profile_uid'], ['profile.uid'], ), sa.ForeignKeyConstraint(['updated_by_uid'], ['user.uid'], ), sa.ForeignKeyConstraint(['voucher_uid'], ['voucher.uid'], ), sa.PrimaryKeyConstraint('uid') ) op.create_index(op.f('ix_profile_discount_uid'), 'profile_discount', ['uid'], unique=False) op.create_table('profile_price', sa.Column('profile_uid', sa.String(), nullable=True), sa.Column('is_active', sa.Boolean(), nullable=False), sa.Column('amount', sa.Float(), nullable=False), sa.Column('uid', sa.String(), nullable=False), sa.Column('created_at', sa.DateTime(), nullable=True), sa.Column('created_by_uid', sa.String(), nullable=True), sa.Column('updated_at', sa.DateTime(), nullable=True), sa.Column('updated_by_uid', sa.String(), nullable=True), sa.ForeignKeyConstraint(['created_by_uid'], ['user.uid'], ), sa.ForeignKeyConstraint(['profile_uid'], ['profile.uid'], ), sa.ForeignKeyConstraint(['updated_by_uid'], ['user.uid'], ), sa.PrimaryKeyConstraint('uid') ) op.create_index(op.f('ix_profile_price_uid'), 'profile_price', ['uid'], unique=False) op.create_table('analysis_discount', sa.Column('analysis_uid', sa.String(), nullable=False), sa.Column('name', sa.String(), nullable=False), sa.Column('discount_type', sa.String(), nullable=False), sa.Column('value_type', sa.String(), nullable=False), sa.Column('start_date', sa.DateTime(), nullable=False), sa.Column('end_date', sa.DateTime(), nullable=False), sa.Column('voucher_uid', sa.String(), nullable=True), sa.Column('value_percent', sa.Float(), nullable=True), sa.Column('value_amount', sa.Float(), nullable=True), sa.Column('is_active', sa.Boolean(), nullable=False), sa.Column('uid', sa.String(), nullable=False), sa.Column('created_at', sa.DateTime(), nullable=True), sa.Column('created_by_uid', sa.String(), nullable=True), sa.Column('updated_at', sa.DateTime(), nullable=True), sa.Column('updated_by_uid', sa.String(), nullable=True), sa.ForeignKeyConstraint(['analysis_uid'], ['analysis.uid'], ), sa.ForeignKeyConstraint(['created_by_uid'], ['user.uid'], ), sa.ForeignKeyConstraint(['updated_by_uid'], ['user.uid'], ), sa.ForeignKeyConstraint(['voucher_uid'], ['voucher.uid'], ), sa.PrimaryKeyConstraint('uid') ) op.create_index(op.f('ix_analysis_discount_uid'), 'analysis_discount', ['uid'], unique=False) op.create_table('analysis_price', sa.Column('analysis_uid', sa.String(), nullable=True), sa.Column('is_active', sa.Boolean(), nullable=False), sa.Column('amount', sa.Float(), nullable=False), sa.Column('uid', sa.String(), nullable=False), sa.Column('created_at', sa.DateTime(), nullable=True), sa.Column('created_by_uid', sa.String(), nullable=True), sa.Column('updated_at', sa.DateTime(), nullable=True), sa.Column('updated_by_uid', sa.String(), nullable=True), sa.ForeignKeyConstraint(['analysis_uid'], ['analysis.uid'], ), sa.ForeignKeyConstraint(['created_by_uid'], ['user.uid'], ), sa.ForeignKeyConstraint(['updated_by_uid'], ['user.uid'], ), sa.PrimaryKeyConstraint('uid') ) op.create_index(op.f('ix_analysis_price_uid'), 'analysis_price', ['uid'], unique=False) op.create_table('test_bill', sa.Column('bill_id', sa.String(), nullable=False), sa.Column('patient_uid', sa.String(), nullable=True), sa.Column('client_uid', sa.String(), nullable=True), sa.Column('is_active', sa.Boolean(), nullable=False), sa.Column('to_confirm', sa.Boolean(), nullable=False), sa.Column('partial', sa.Boolean(), nullable=False), sa.Column('total_charged', sa.Float(), nullable=False), sa.Column('total_paid', sa.Float(), nullable=False), sa.Column('json_content', postgresql.JSONB(astext_type=sa.Text()), nullable=True), sa.Column('uid', sa.String(), nullable=False), sa.Column('created_at', sa.DateTime(), nullable=True), sa.Column('created_by_uid', sa.String(), nullable=True), sa.Column('updated_at', sa.DateTime(), nullable=True), sa.Column('updated_by_uid', sa.String(), nullable=True), sa.ForeignKeyConstraint(['client_uid'], ['client.uid'], ), sa.ForeignKeyConstraint(['created_by_uid'], ['user.uid'], ), sa.ForeignKeyConstraint(['patient_uid'], ['patient.uid'], ), sa.ForeignKeyConstraint(['updated_by_uid'], ['user.uid'], ), sa.PrimaryKeyConstraint('uid') ) op.create_index(op.f('ix_test_bill_uid'), 'test_bill', ['uid'], unique=False) op.create_table('voucher_customer', sa.Column('patient_uid', sa.String(), nullable=False), sa.Column('voucher_code_uid', sa.String(), nullable=False), sa.Column('uid', sa.String(), nullable=False), sa.Column('created_at', sa.DateTime(), nullable=True), sa.Column('created_by_uid', sa.String(), nullable=True), sa.Column('updated_at', sa.DateTime(), nullable=True), sa.Column('updated_by_uid', sa.String(), nullable=True), sa.ForeignKeyConstraint(['created_by_uid'], ['user.uid'], ), sa.ForeignKeyConstraint(['patient_uid'], ['patient.uid'], ), sa.ForeignKeyConstraint(['updated_by_uid'], ['user.uid'], ), sa.ForeignKeyConstraint(['voucher_code_uid'], ['voucher_code.uid'], ), sa.PrimaryKeyConstraint('uid') ) op.create_index(op.f('ix_voucher_customer_uid'), 'voucher_customer', ['uid'], unique=False) op.create_table('test_bill_invoice', sa.Column('test_bill_uid', sa.String(), nullable=True), sa.Column('json_content', postgresql.JSONB(astext_type=sa.Text()), nullable=True), sa.Column('pdf_content', sa.LargeBinary(), nullable=True), sa.Column('uid', sa.String(), nullable=False), sa.Column('created_at', sa.DateTime(), nullable=True), sa.Column('created_by_uid', sa.String(), nullable=True), sa.Column('updated_at', sa.DateTime(), nullable=True), sa.Column('updated_by_uid', sa.String(), nullable=True), sa.ForeignKeyConstraint(['created_by_uid'], ['user.uid'], ), sa.ForeignKeyConstraint(['test_bill_uid'], ['test_bill.uid'], ), sa.ForeignKeyConstraint(['updated_by_uid'], ['user.uid'], ), sa.PrimaryKeyConstraint('uid') ) op.create_index(op.f('ix_test_bill_invoice_uid'), 'test_bill_invoice', ['uid'], unique=False) op.create_table('test_bill_item', sa.Column('test_bill_uid', sa.String(), nullable=False), sa.Column('analysis_request_uid', sa.String(), nullable=False), sa.ForeignKeyConstraint(['analysis_request_uid'], ['analysis_request.uid'], ), sa.ForeignKeyConstraint(['test_bill_uid'], ['test_bill.uid'], ), sa.PrimaryKeyConstraint('test_bill_uid', 'analysis_request_uid') ) op.create_table('test_bill_transaction', sa.Column('test_bill_uid', sa.String(), nullable=True), sa.Column('kind', sa.String(), nullable=False), sa.Column('amount', sa.Float(), nullable=False), sa.Column('notes', sa.String(), nullable=True), sa.Column('is_success', sa.Boolean(), nullable=False), sa.Column('processed', sa.Boolean(), nullable=False), sa.Column('message', sa.String(), nullable=True), sa.Column('action_required', sa.Boolean(), nullable=False), sa.Column('action_message', sa.String(), nullable=True), sa.Column('uid', sa.String(), nullable=False), sa.Column('created_at', sa.DateTime(), nullable=True), sa.Column('created_by_uid', sa.String(), nullable=True), sa.Column('updated_at', sa.DateTime(), nullable=True), sa.Column('updated_by_uid', sa.String(), nullable=True), sa.ForeignKeyConstraint(['created_by_uid'], ['user.uid'], ), sa.ForeignKeyConstraint(['test_bill_uid'], ['test_bill.uid'], ), sa.ForeignKeyConstraint(['updated_by_uid'], ['user.uid'], ), sa.PrimaryKeyConstraint('uid') ) op.create_index(op.f('ix_test_bill_transaction_uid'), 'test_bill_transaction', ['uid'], unique=False) op.add_column('laboratory_setting', sa.Column('allow_billing', sa.Boolean(), nullable=True)) op.add_column('laboratory_setting', sa.Column('allow_auto_billing', sa.Boolean(), nullable=True)) op.add_column('laboratory_setting', sa.Column('currency', sa.String(), nullable=True)) # ### end Alembic commands ### def downgrade(): # ### commands auto generated by Alembic - please adjust! ### op.drop_column('laboratory_setting', 'currency') op.drop_column('laboratory_setting', 'allow_auto_billing') op.drop_column('laboratory_setting', 'allow_billing') op.drop_index(op.f('ix_test_bill_transaction_uid'), table_name='test_bill_transaction') op.drop_table('test_bill_transaction') op.drop_table('test_bill_item') op.drop_index(op.f('ix_test_bill_invoice_uid'), table_name='test_bill_invoice') op.drop_table('test_bill_invoice') op.drop_index(op.f('ix_voucher_customer_uid'), table_name='voucher_customer') op.drop_table('voucher_customer') op.drop_index(op.f('ix_test_bill_uid'), table_name='test_bill') op.drop_table('test_bill') op.drop_index(op.f('ix_analysis_price_uid'), table_name='analysis_price') op.drop_table('analysis_price') op.drop_index(op.f('ix_analysis_discount_uid'), table_name='analysis_discount') op.drop_table('analysis_discount') op.drop_index(op.f('ix_profile_price_uid'), table_name='profile_price') op.drop_table('profile_price') op.drop_index(op.f('ix_profile_discount_uid'), table_name='profile_discount') op.drop_table('profile_discount') op.drop_index(op.f('ix_voucher_code_uid'), table_name='voucher_code') op.drop_table('voucher_code') op.drop_index(op.f('ix_voucher_uid'), table_name='voucher') op.drop_table('voucher') # ### end Alembic commands ###