Initial commit with authentication and routes for registering/login already set up

This commit is contained in:
2024-10-14 05:38:48 +00:00
commit f64068c8ff
23 changed files with 1253 additions and 0 deletions

View File

@ -0,0 +1,138 @@
"""Initial migration
Revision ID: 88d9df7768b2
Revises:
Create Date: 2024-10-12 15:40:52.735580
"""
from typing import Sequence, Union
from alembic import op
import sqlalchemy as sa
# revision identifiers, used by Alembic.
revision: str = '88d9df7768b2'
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:
# ### commands auto generated by Alembic - please adjust! ###
op.create_table('equipment',
sa.Column('id', sa.Integer(), autoincrement=True, nullable=False),
sa.Column('name', sa.String(), nullable=False),
sa.PrimaryKeyConstraint('id')
)
op.create_table('users',
sa.Column('id', sa.Integer(), autoincrement=True, nullable=False),
sa.Column('name', sa.String(), nullable=False),
sa.Column('company', sa.String(), nullable=True),
sa.Column('address', sa.String(), nullable=False),
sa.Column('latitude', sa.String(), nullable=True),
sa.Column('longitude', sa.String(), nullable=True),
sa.Column('phone', sa.String(), nullable=False),
sa.Column('privatePhone', sa.String(), nullable=True),
sa.Column('email', sa.String(), nullable=False),
sa.Column('cvr', sa.String(), nullable=True),
sa.Column('password', sa.String(), nullable=False),
sa.Column('username', sa.String(), nullable=False),
sa.Column('role', sa.Enum('PRIVATE', 'BUSINESS', name='userrole'), nullable=True),
sa.Column('updatedAt', sa.DateTime(timezone=True), server_default=sa.text('now()'), nullable=True),
sa.Column('createdAt', sa.DateTime(timezone=True), server_default=sa.text('now()'), nullable=True),
sa.PrimaryKeyConstraint('id'),
sa.UniqueConstraint('email'),
sa.UniqueConstraint('username')
)
op.create_table('vehicles',
sa.Column('id', sa.Integer(), autoincrement=True, nullable=False),
sa.Column('brand', sa.String(), nullable=False),
sa.Column('model', sa.String(), nullable=False),
sa.Column('variant', sa.String(), nullable=True),
sa.Column('year', sa.Integer(), nullable=False),
sa.Column('kilometers', sa.Integer(), nullable=False),
sa.Column('condition', sa.String(), nullable=False),
sa.Column('location', sa.String(), nullable=False),
sa.Column('latitude', sa.String(), nullable=False),
sa.Column('longitude', sa.String(), nullable=False),
sa.Column('gasType', sa.String(), nullable=False),
sa.Column('images', sa.Text(), nullable=False),
sa.Column('description', sa.String(), nullable=False),
sa.Column('service', sa.String(), nullable=False),
sa.Column('inspectedAt', sa.DateTime(timezone=True), nullable=True),
sa.Column('updatedAt', sa.DateTime(timezone=True), server_default=sa.text('now()'), nullable=True),
sa.Column('createdAt', sa.DateTime(timezone=True), server_default=sa.text('now()'), nullable=True),
sa.PrimaryKeyConstraint('id')
)
op.create_table('verification_tokens',
sa.Column('identifier', sa.String(), nullable=False),
sa.Column('token', sa.String(), nullable=False),
sa.Column('expires', sa.DateTime(), nullable=False),
sa.PrimaryKeyConstraint('identifier'),
sa.UniqueConstraint('token')
)
op.create_table('accounts',
sa.Column('id', sa.Integer(), autoincrement=True, nullable=False),
sa.Column('userId', sa.Integer(), nullable=True),
sa.Column('type', sa.String(), nullable=False),
sa.Column('provider', sa.String(), nullable=False),
sa.Column('providerAccountId', sa.String(), nullable=False),
sa.Column('refresh_token', sa.String(), nullable=True),
sa.Column('access_token', sa.String(), nullable=True),
sa.Column('expires_at', sa.Integer(), nullable=True),
sa.ForeignKeyConstraint(['userId'], ['users.id'], ),
sa.PrimaryKeyConstraint('id')
)
op.create_table('auctions',
sa.Column('id', sa.Integer(), autoincrement=True, nullable=False),
sa.Column('vehicleId', sa.Integer(), nullable=True),
sa.Column('userId', sa.Integer(), nullable=True),
sa.Column('askingPrice', sa.Float(), nullable=False),
sa.Column('description', sa.String(), nullable=True),
sa.Column('updatedAt', sa.DateTime(timezone=True), server_default=sa.text('now()'), nullable=True),
sa.Column('createdAt', sa.DateTime(timezone=True), server_default=sa.text('now()'), nullable=True),
sa.ForeignKeyConstraint(['userId'], ['users.id'], ),
sa.ForeignKeyConstraint(['vehicleId'], ['vehicles.id'], ),
sa.PrimaryKeyConstraint('id')
)
op.create_table('sessions',
sa.Column('id', sa.Integer(), autoincrement=True, nullable=False),
sa.Column('sessionToken', sa.String(), nullable=False),
sa.Column('userId', sa.Integer(), nullable=True),
sa.Column('expires', sa.DateTime(), nullable=False),
sa.ForeignKeyConstraint(['userId'], ['users.id'], ),
sa.PrimaryKeyConstraint('id'),
sa.UniqueConstraint('sessionToken')
)
op.create_table('vehicle_equipment',
sa.Column('vehicle_id', sa.Integer(), nullable=False),
sa.Column('equipment_id', sa.Integer(), nullable=False),
sa.ForeignKeyConstraint(['equipment_id'], ['equipment.id'], ),
sa.ForeignKeyConstraint(['vehicle_id'], ['vehicles.id'], ),
sa.PrimaryKeyConstraint('vehicle_id', 'equipment_id')
)
op.create_table('bids',
sa.Column('id', sa.Integer(), autoincrement=True, nullable=False),
sa.Column('auctionId', sa.Integer(), nullable=True),
sa.Column('bid', sa.Float(), nullable=False),
sa.Column('updatedAt', sa.DateTime(timezone=True), server_default=sa.text('now()'), nullable=True),
sa.Column('createdAt', sa.DateTime(timezone=True), server_default=sa.text('now()'), nullable=True),
sa.ForeignKeyConstraint(['auctionId'], ['auctions.id'], ),
sa.PrimaryKeyConstraint('id')
)
# ### end Alembic commands ###
def downgrade() -> None:
# ### commands auto generated by Alembic - please adjust! ###
op.drop_table('bids')
op.drop_table('vehicle_equipment')
op.drop_table('sessions')
op.drop_table('auctions')
op.drop_table('accounts')
op.drop_table('verification_tokens')
op.drop_table('vehicles')
op.drop_table('users')
op.drop_table('equipment')
# ### end Alembic commands ###