"""Initial repository Revision ID: c0b1073a8394 Revises: Create Date: 2026-02-20 00:09:35.920486 """ from typing import Sequence, Union from alembic import op import sqlalchemy as sa import sqlmodel.sql.sqltypes # revision identifiers, used by Alembic. revision: str = 'c0b1073a8394' 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('contracttype', sa.Column('id', sa.Integer(), nullable=False), sa.Column('name', sqlmodel.sql.sqltypes.AutoString(), nullable=False), sa.PrimaryKeyConstraint('id') ) op.create_table('productor', sa.Column('name', sqlmodel.sql.sqltypes.AutoString(), nullable=False), sa.Column('address', sqlmodel.sql.sqltypes.AutoString(), nullable=False), sa.Column('type', sqlmodel.sql.sqltypes.AutoString(), nullable=False), sa.Column('id', sa.Integer(), nullable=False), sa.PrimaryKeyConstraint('id') ) op.create_table('template', sa.Column('id', sa.Integer(), nullable=False), sa.PrimaryKeyConstraint('id') ) op.create_table('user', sa.Column('name', sqlmodel.sql.sqltypes.AutoString(), nullable=False), sa.Column('email', sqlmodel.sql.sqltypes.AutoString(), nullable=False), sa.Column('id', sa.Integer(), nullable=False), sa.PrimaryKeyConstraint('id') ) op.create_table('form', sa.Column('name', sqlmodel.sql.sqltypes.AutoString(), nullable=False), sa.Column('productor_id', sa.Integer(), nullable=True), sa.Column('referer_id', sa.Integer(), nullable=True), sa.Column('season', sqlmodel.sql.sqltypes.AutoString(), nullable=False), sa.Column('start', sa.Date(), nullable=False), sa.Column('end', sa.Date(), nullable=False), sa.Column('minimum_shipment_value', sa.Float(), nullable=True), sa.Column('id', sa.Integer(), nullable=False), sa.ForeignKeyConstraint(['productor_id'], ['productor.id'], ), sa.ForeignKeyConstraint(['referer_id'], ['user.id'], ), sa.PrimaryKeyConstraint('id') ) op.create_table('paymentmethod', sa.Column('name', sqlmodel.sql.sqltypes.AutoString(), nullable=False), sa.Column('details', sqlmodel.sql.sqltypes.AutoString(), nullable=False), sa.Column('id', sa.Integer(), nullable=False), sa.Column('productor_id', sa.Integer(), nullable=False), sa.ForeignKeyConstraint(['productor_id'], ['productor.id'], ondelete='CASCADE'), sa.PrimaryKeyConstraint('id') ) op.create_table('product', sa.Column('name', sqlmodel.sql.sqltypes.AutoString(), nullable=False), sa.Column('unit', sa.Enum('GRAMS', 'KILO', 'PIECE', name='unit'), nullable=False), sa.Column('price', sa.Float(), nullable=True), sa.Column('price_kg', sa.Float(), nullable=True), sa.Column('quantity', sa.Float(), nullable=True), sa.Column('quantity_unit', sqlmodel.sql.sqltypes.AutoString(), nullable=True), sa.Column('type', sa.Enum('OCCASIONAL', 'RECCURENT', name='producttype'), nullable=False), sa.Column('productor_id', sa.Integer(), nullable=True), sa.Column('id', sa.Integer(), nullable=False), sa.ForeignKeyConstraint(['productor_id'], ['productor.id'], ), sa.PrimaryKeyConstraint('id') ) op.create_table('usercontracttypelink', sa.Column('user_id', sa.Integer(), nullable=False), sa.Column('contract_type_id', sa.Integer(), nullable=False), sa.ForeignKeyConstraint(['contract_type_id'], ['contracttype.id'], ), sa.ForeignKeyConstraint(['user_id'], ['user.id'], ), sa.PrimaryKeyConstraint('user_id', 'contract_type_id') ) op.create_table('contract', sa.Column('firstname', sqlmodel.sql.sqltypes.AutoString(), nullable=False), sa.Column('lastname', sqlmodel.sql.sqltypes.AutoString(), nullable=False), sa.Column('email', sqlmodel.sql.sqltypes.AutoString(), nullable=False), sa.Column('phone', sqlmodel.sql.sqltypes.AutoString(), nullable=False), sa.Column('payment_method', sqlmodel.sql.sqltypes.AutoString(), nullable=False), sa.Column('cheque_quantity', sa.Integer(), nullable=False), sa.Column('id', sa.Integer(), nullable=False), sa.Column('form_id', sa.Integer(), nullable=False), sa.Column('file', sa.LargeBinary(), nullable=True), sa.Column('total_price', sa.Float(), nullable=True), sa.ForeignKeyConstraint(['form_id'], ['form.id'], ondelete='CASCADE'), sa.PrimaryKeyConstraint('id') ) op.create_table('shipment', sa.Column('name', sqlmodel.sql.sqltypes.AutoString(), nullable=False), sa.Column('date', sa.Date(), nullable=False), sa.Column('form_id', sa.Integer(), nullable=True), sa.Column('id', sa.Integer(), nullable=False), sa.ForeignKeyConstraint(['form_id'], ['form.id'], ondelete='CASCADE'), sa.PrimaryKeyConstraint('id') ) op.create_table('cheque', sa.Column('name', sqlmodel.sql.sqltypes.AutoString(), nullable=False), sa.Column('value', sqlmodel.sql.sqltypes.AutoString(), nullable=False), sa.Column('id', sa.Integer(), nullable=False), sa.Column('contract_id', sa.Integer(), nullable=False), sa.ForeignKeyConstraint(['contract_id'], ['contract.id'], ondelete='CASCADE'), sa.PrimaryKeyConstraint('id') ) op.create_table('contractproduct', sa.Column('product_id', sa.Integer(), nullable=False), sa.Column('shipment_id', sa.Integer(), nullable=True), sa.Column('quantity', sa.Float(), nullable=False), sa.Column('id', sa.Integer(), nullable=False), sa.Column('contract_id', sa.Integer(), nullable=False), sa.ForeignKeyConstraint(['contract_id'], ['contract.id'], ondelete='CASCADE'), sa.ForeignKeyConstraint(['product_id'], ['product.id'], ondelete='CASCADE'), sa.ForeignKeyConstraint(['shipment_id'], ['shipment.id'], ondelete='CASCADE'), sa.PrimaryKeyConstraint('id') ) op.create_table('shipmentproductlink', sa.Column('shipment_id', sa.Integer(), nullable=False), sa.Column('product_id', sa.Integer(), nullable=False), sa.ForeignKeyConstraint(['product_id'], ['product.id'], ), sa.ForeignKeyConstraint(['shipment_id'], ['shipment.id'], ), sa.PrimaryKeyConstraint('shipment_id', 'product_id') ) # ### end Alembic commands ### def downgrade() -> None: """Downgrade schema.""" # ### commands auto generated by Alembic - please adjust! ### op.drop_table('shipmentproductlink') op.drop_table('contractproduct') op.drop_table('cheque') op.drop_table('shipment') op.drop_table('contract') op.drop_table('usercontracttypelink') op.drop_table('product') op.drop_table('paymentmethod') op.drop_table('form') op.drop_table('user') op.drop_table('template') op.drop_table('productor') op.drop_table('contracttype') # ### end Alembic commands ###