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,56 @@
"""Add relation between bid and user through userId and added nullable false to all foreign keys
Revision ID: 21ac26bca176
Revises: 22e9331f3fbd
Create Date: 2024-10-13 20:21:05.124526
"""
from typing import Sequence, Union
from alembic import op
import sqlalchemy as sa
# revision identifiers, used by Alembic.
revision: str = '21ac26bca176'
down_revision: Union[str, None] = '22e9331f3fbd'
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.alter_column('accounts', 'userId',
existing_type=sa.INTEGER(),
nullable=False)
op.alter_column('auctions', 'vehicleId',
existing_type=sa.INTEGER(),
nullable=False)
op.alter_column('auctions', 'userId',
existing_type=sa.INTEGER(),
nullable=False)
op.add_column('bids', sa.Column('userId', sa.Integer(), nullable=False))
op.alter_column('bids', 'auctionId',
existing_type=sa.INTEGER(),
nullable=False)
op.create_foreign_key(None, 'bids', 'users', ['userId'], ['id'])
# ### end Alembic commands ###
def downgrade() -> None:
# ### commands auto generated by Alembic - please adjust! ###
op.drop_constraint(None, 'bids', type_='foreignkey')
op.alter_column('bids', 'auctionId',
existing_type=sa.INTEGER(),
nullable=True)
op.drop_column('bids', 'userId')
op.alter_column('auctions', 'userId',
existing_type=sa.INTEGER(),
nullable=True)
op.alter_column('auctions', 'vehicleId',
existing_type=sa.INTEGER(),
nullable=True)
op.alter_column('accounts', 'userId',
existing_type=sa.INTEGER(),
nullable=True)
# ### end Alembic commands ###

View File

@ -0,0 +1,30 @@
"""Add relation between Bid and User
Revision ID: 22e9331f3fbd
Revises: 3ab355a9d3b1
Create Date: 2024-10-13 19:49:18.378918
"""
from typing import Sequence, Union
from alembic import op
import sqlalchemy as sa
# revision identifiers, used by Alembic.
revision: str = '22e9331f3fbd'
down_revision: Union[str, None] = '3ab355a9d3b1'
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! ###
pass
# ### end Alembic commands ###
def downgrade() -> None:
# ### commands auto generated by Alembic - please adjust! ###
pass
# ### end Alembic commands ###

View File

@ -0,0 +1,32 @@
"""Added postcode and city
Revision ID: 2ea50aba1814
Revises: f0915dd7eb8b
Create Date: 2024-10-14 04:23:57.393072
"""
from typing import Sequence, Union
from alembic import op
import sqlalchemy as sa
# revision identifiers, used by Alembic.
revision: str = '2ea50aba1814'
down_revision: Union[str, None] = 'f0915dd7eb8b'
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.add_column('users', sa.Column('postcode', sa.Integer(), nullable=False))
op.add_column('users', sa.Column('city', sa.String(), nullable=False))
# ### end Alembic commands ###
def downgrade() -> None:
# ### commands auto generated by Alembic - please adjust! ###
op.drop_column('users', 'city')
op.drop_column('users', 'postcode')
# ### end Alembic commands ###

View File

@ -0,0 +1,30 @@
"""Add relation between Bid and User
Revision ID: 3ab355a9d3b1
Revises: 88d9df7768b2
Create Date: 2024-10-13 19:44:39.230332
"""
from typing import Sequence, Union
from alembic import op
import sqlalchemy as sa
# revision identifiers, used by Alembic.
revision: str = '3ab355a9d3b1'
down_revision: Union[str, None] = '88d9df7768b2'
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! ###
pass
# ### end Alembic commands ###
def downgrade() -> None:
# ### commands auto generated by Alembic - please adjust! ###
pass
# ### end Alembic commands ###

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 ###

View File

@ -0,0 +1,32 @@
"""Removed username
Revision ID: bc6a303851bc
Revises: 21ac26bca176
Create Date: 2024-10-14 03:48:16.528692
"""
from typing import Sequence, Union
from alembic import op
import sqlalchemy as sa
# revision identifiers, used by Alembic.
revision: str = 'bc6a303851bc'
down_revision: Union[str, None] = '21ac26bca176'
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.drop_constraint('users_username_key', 'users', type_='unique')
op.drop_column('users', 'username')
# ### end Alembic commands ###
def downgrade() -> None:
# ### commands auto generated by Alembic - please adjust! ###
op.add_column('users', sa.Column('username', sa.VARCHAR(), autoincrement=False, nullable=False))
op.create_unique_constraint('users_username_key', 'users', ['username'])
# ### end Alembic commands ###

View File

@ -0,0 +1,30 @@
"""changed user_input to email in UserLogin BaseModel
Revision ID: f0915dd7eb8b
Revises: bc6a303851bc
Create Date: 2024-10-14 03:52:56.985970
"""
from typing import Sequence, Union
from alembic import op
import sqlalchemy as sa
# revision identifiers, used by Alembic.
revision: str = 'f0915dd7eb8b'
down_revision: Union[str, None] = 'bc6a303851bc'
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! ###
pass
# ### end Alembic commands ###
def downgrade() -> None:
# ### commands auto generated by Alembic - please adjust! ###
pass
# ### end Alembic commands ###