"""Initial model Revision ID: 958d7aee2b21 Revises: Create Date: 2026-01-23 10:10:36.825333 """ from typing import Sequence, Union from alembic import op import sqlalchemy as sa # revision identifiers, used by Alembic. revision: str = '958d7aee2b21' down_revision: Union[str, Sequence[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.create_table('aps_account', sa.Column('id', sa.Integer(), autoincrement=True, nullable=False), sa.Column('name', sa.String(), nullable=False), sa.PrimaryKeyConstraint('id'), sa.UniqueConstraint('name') ) op.create_table('aps_area', sa.Column('id', sa.Integer(), autoincrement=True, nullable=False), sa.Column('name', sa.String(), nullable=False), sa.Column('description', sa.String(), nullable=True), sa.Column('image_path', sa.String(), nullable=True), sa.PrimaryKeyConstraint('id'), sa.UniqueConstraint('name') ) op.create_table('aps_user', sa.Column('id', sa.Integer(), autoincrement=True, nullable=False), sa.Column('username', sa.String(), nullable=False), sa.Column('display_name', sa.String(), nullable=False), sa.PrimaryKeyConstraint('id'), sa.UniqueConstraint('username') ) op.create_table('aps_user_group', sa.Column('id', sa.Integer(), autoincrement=True, nullable=False), sa.Column('name', sa.String(), nullable=False), sa.Column('description', sa.String(), nullable=True), sa.PrimaryKeyConstraint('id'), sa.UniqueConstraint('name') ) op.create_table('aps_order', sa.Column('id', sa.Integer(), autoincrement=True, nullable=False), sa.Column('user_id', sa.Integer(), nullable=False), sa.ForeignKeyConstraint(['user_id'], ['aps_user.id'], ), sa.PrimaryKeyConstraint('id') ) op.create_table('aps_permission', sa.Column('id', sa.Integer(), autoincrement=True, nullable=False), sa.Column('scope', sa.String(), nullable=False), sa.Column('action', sa.String(), nullable=False), sa.Column('user_group_id', sa.Integer(), nullable=False), sa.ForeignKeyConstraint(['user_group_id'], ['aps_user_group.id'], ), sa.PrimaryKeyConstraint('id') ) op.create_table('aps_product', sa.Column('id', sa.Integer(), autoincrement=True, nullable=False), sa.Column('name', sa.String(), nullable=False), sa.Column('price', sa.Numeric(precision=10, scale=2), nullable=False), sa.Column('unit_of_measure', sa.Enum('g', 'kg', 'l', 'piece', native_enum=False), nullable=False), sa.Column('allow_fractional', sa.Boolean(), nullable=False), sa.Column('vat_rate', sa.Numeric(precision=10, scale=2), nullable=False), sa.Column('area_id', sa.Integer(), nullable=False), sa.Column('image_path', sa.String(), nullable=True), sa.ForeignKeyConstraint(['area_id'], ['aps_area.id'], ), sa.PrimaryKeyConstraint('id'), sa.UniqueConstraint('name') ) op.create_table('aps_user_account_association', sa.Column('user_id', sa.Integer(), nullable=False), sa.Column('account_id', sa.Integer(), nullable=False), sa.ForeignKeyConstraint(['account_id'], ['aps_account.id'], ), sa.ForeignKeyConstraint(['user_id'], ['aps_user.id'], ), sa.PrimaryKeyConstraint('user_id', 'account_id') ) op.create_table('aps_user_user_group_association', sa.Column('user_id', sa.Integer(), nullable=False), sa.Column('user_group_id', sa.Integer(), nullable=False), sa.ForeignKeyConstraint(['user_group_id'], ['aps_user_group.id'], ), sa.ForeignKeyConstraint(['user_id'], ['aps_user.id'], ), sa.PrimaryKeyConstraint('user_id', 'user_group_id') ) op.create_table('aps_order_item', sa.Column('id', sa.Integer(), autoincrement=True, nullable=False), sa.Column('order_id', sa.Integer(), nullable=False), sa.Column('product_id', sa.Integer(), nullable=False), sa.Column('quantity', sa.Numeric(), nullable=False), sa.Column('total_amount', sa.Numeric(precision=10, scale=2), nullable=False), sa.ForeignKeyConstraint(['order_id'], ['aps_order.id'], ), sa.ForeignKeyConstraint(['product_id'], ['aps_product.id'], ), sa.PrimaryKeyConstraint('id') ) op.create_table('aps_transaction', sa.Column('id', sa.Integer(), autoincrement=True, nullable=False), sa.Column('type', sa.Enum('order', 'deposit', 'withdrawal', 'expense', native_enum=False), nullable=False), sa.Column('quantity', sa.Numeric(precision=10, scale=2), nullable=True), sa.Column('timestamp', sa.DateTime(), nullable=False), sa.Column('total_amount', sa.Numeric(precision=10, scale=2), nullable=False), sa.Column('order_id', sa.Integer(), nullable=True), sa.Column('account_id', sa.Integer(), nullable=False), sa.ForeignKeyConstraint(['account_id'], ['aps_account.id'], ), sa.ForeignKeyConstraint(['order_id'], ['aps_order.id'], ), sa.PrimaryKeyConstraint('id') ) # ### end Alembic commands ### def downgrade() -> None: """Downgrade schema.""" # ### commands auto generated by Alembic - please adjust! ### op.drop_table('aps_transaction') op.drop_table('aps_order_item') op.drop_table('aps_user_user_group_association') op.drop_table('aps_user_account_association') op.drop_table('aps_product') op.drop_table('aps_permission') op.drop_table('aps_order') op.drop_table('aps_user_group') op.drop_table('aps_user') op.drop_table('aps_area') op.drop_table('aps_account') # ### end Alembic commands ###