Исправления в БД
This commit is contained in:
parent
3124b35f67
commit
46f3aa6caf
25 changed files with 123 additions and 587 deletions
|
@ -1,52 +0,0 @@
|
|||
"""Изменение models.py
|
||||
|
||||
Revision ID: 050324c9bd94
|
||||
Revises: 6b866e6065f2
|
||||
Create Date: 2024-01-31 16:51:52.969424
|
||||
|
||||
"""
|
||||
from typing import Sequence, Union
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from sqlalchemy.dialects import postgresql
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision: str = '050324c9bd94'
|
||||
down_revision: Union[str, None] = '6b866e6065f2'
|
||||
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('chats', 'chat',
|
||||
existing_type=postgresql.JSON(astext_type=sa.Text()),
|
||||
type_=postgresql.JSONB(astext_type=sa.Text()),
|
||||
existing_nullable=True)
|
||||
op.alter_column('chats', 'allowed_users',
|
||||
existing_type=postgresql.JSON(astext_type=sa.Text()),
|
||||
type_=postgresql.JSONB(astext_type=sa.Text()),
|
||||
existing_nullable=True)
|
||||
op.alter_column('chats', 'pinned_messages',
|
||||
existing_type=postgresql.JSON(astext_type=sa.Text()),
|
||||
type_=postgresql.JSONB(astext_type=sa.Text()),
|
||||
existing_nullable=True)
|
||||
# ### end Alembic commands ###
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
op.alter_column('chats', 'pinned_messages',
|
||||
existing_type=postgresql.JSONB(astext_type=sa.Text()),
|
||||
type_=postgresql.JSON(astext_type=sa.Text()),
|
||||
existing_nullable=True)
|
||||
op.alter_column('chats', 'allowed_users',
|
||||
existing_type=postgresql.JSONB(astext_type=sa.Text()),
|
||||
type_=postgresql.JSON(astext_type=sa.Text()),
|
||||
existing_nullable=True)
|
||||
op.alter_column('chats', 'chat',
|
||||
existing_type=postgresql.JSONB(astext_type=sa.Text()),
|
||||
type_=postgresql.JSON(astext_type=sa.Text()),
|
||||
existing_nullable=True)
|
||||
# ### end Alembic commands ###
|
|
@ -1,44 +0,0 @@
|
|||
"""Изменение models.py
|
||||
|
||||
Revision ID: 0cc334a2f727
|
||||
Revises: f34f22694e19
|
||||
Create Date: 2024-01-31 17:55:10.929751
|
||||
|
||||
"""
|
||||
from typing import Sequence, Union
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision: str = '0cc334a2f727'
|
||||
down_revision: Union[str, None] = 'f34f22694e19'
|
||||
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('messages', 'chat_id',
|
||||
existing_type=sa.INTEGER(),
|
||||
nullable=True)
|
||||
op.alter_column('messages', 'user_id',
|
||||
existing_type=sa.INTEGER(),
|
||||
nullable=True)
|
||||
op.create_foreign_key(None, 'messages', 'chats', ['chat_id'], ['id'])
|
||||
op.create_foreign_key(None, 'messages', 'users', ['user_id'], ['id'])
|
||||
# ### end Alembic commands ###
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
op.drop_constraint(None, 'messages', type_='foreignkey')
|
||||
op.drop_constraint(None, 'messages', type_='foreignkey')
|
||||
op.alter_column('messages', 'user_id',
|
||||
existing_type=sa.INTEGER(),
|
||||
nullable=False)
|
||||
op.alter_column('messages', 'chat_id',
|
||||
existing_type=sa.INTEGER(),
|
||||
nullable=False)
|
||||
# ### end Alembic commands ###
|
|
@ -1,38 +0,0 @@
|
|||
"""Изменение models.py
|
||||
|
||||
Revision ID: 23d9de31839c
|
||||
Revises: 3eb642de804e
|
||||
Create Date: 2024-01-31 16:10:56.198957
|
||||
|
||||
"""
|
||||
from typing import Sequence, Union
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision: str = '23d9de31839c'
|
||||
down_revision: Union[str, None] = '3eb642de804e'
|
||||
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('chats', sa.Column('pinned_messages', sa.JSON(), nullable=True))
|
||||
op.alter_column('users', 'black_phoenix',
|
||||
existing_type=sa.INTEGER(),
|
||||
type_=sa.String(),
|
||||
existing_nullable=False)
|
||||
# ### end Alembic commands ###
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
op.alter_column('users', 'black_phoenix',
|
||||
existing_type=sa.String(),
|
||||
type_=sa.INTEGER(),
|
||||
existing_nullable=False)
|
||||
op.drop_column('chats', 'pinned_messages')
|
||||
# ### end Alembic commands ###
|
|
@ -1,45 +0,0 @@
|
|||
"""Изменение models.py
|
||||
|
||||
Revision ID: 273e18fa9316
|
||||
Revises: 050324c9bd94
|
||||
Create Date: 2024-01-31 17:44:10.087705
|
||||
|
||||
"""
|
||||
from typing import Sequence, Union
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from sqlalchemy.dialects import postgresql
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision: str = '273e18fa9316'
|
||||
down_revision: Union[str, None] = '050324c9bd94'
|
||||
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('messages',
|
||||
sa.Column('id', sa.Integer(), nullable=False),
|
||||
sa.Column('chat_id', sa.Integer(), nullable=False, foreign_key='chats.id'),
|
||||
sa.Column('user_id', sa.Integer(), nullable=False, foreign_key='users.id'),
|
||||
sa.Column('text', sa.String(), nullable=False),
|
||||
sa.Column('image_url', sa.String(), nullable=True),
|
||||
sa.Column('created_at', sa.DateTime(), server_default=sa.text('now()'), nullable=False),
|
||||
sa.Column('visibility', sa.Boolean(), server_default='true', nullable=False),
|
||||
sa.PrimaryKeyConstraint('id')
|
||||
)
|
||||
op.drop_column('chats', 'pinned_messages')
|
||||
op.drop_column('chats', 'allowed_users')
|
||||
op.drop_column('chats', 'chat')
|
||||
# ### end Alembic commands ###
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
op.add_column('chats', sa.Column('chat', postgresql.JSONB(astext_type=sa.Text()), autoincrement=False, nullable=True))
|
||||
op.add_column('chats', sa.Column('allowed_users', postgresql.JSONB(astext_type=sa.Text()), autoincrement=False, nullable=True))
|
||||
op.add_column('chats', sa.Column('pinned_messages', postgresql.JSONB(astext_type=sa.Text()), autoincrement=False, nullable=True))
|
||||
op.drop_table('messages')
|
||||
# ### end Alembic commands ###
|
69
app/migrations/versions/2913a8a70afb_изменение_models_py.py
Normal file
69
app/migrations/versions/2913a8a70afb_изменение_models_py.py
Normal file
|
@ -0,0 +1,69 @@
|
|||
"""Изменение models.py
|
||||
|
||||
Revision ID: 2913a8a70afb
|
||||
Revises:
|
||||
Create Date: 2024-02-01 14:31:04.662656
|
||||
|
||||
"""
|
||||
from typing import Sequence, Union
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision: str = '2913a8a70afb'
|
||||
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('users',
|
||||
sa.Column('id', sa.Integer(), nullable=False),
|
||||
sa.Column('email', sa.String(), nullable=False),
|
||||
sa.Column('username', sa.String(), nullable=False),
|
||||
sa.Column('hashed_password', sa.String(), nullable=False),
|
||||
sa.Column('role', sa.Integer(), nullable=False),
|
||||
sa.Column('black_phoenix', sa.Integer(), nullable=False),
|
||||
sa.Column('avatar_image', sa.String(), server_default='app/static/images/ту уже пешка BP.png', nullable=True),
|
||||
sa.Column('date_of_birth', sa.Date(), nullable=False),
|
||||
sa.PrimaryKeyConstraint('id')
|
||||
)
|
||||
op.create_table('chats',
|
||||
sa.Column('id', sa.Integer(), nullable=False),
|
||||
sa.Column('chat_for', sa.Integer(), nullable=True),
|
||||
sa.ForeignKeyConstraint(['chat_for'], ['users.id'], ),
|
||||
sa.PrimaryKeyConstraint('id')
|
||||
)
|
||||
op.create_table('messages',
|
||||
sa.Column('id', sa.Integer(), nullable=False),
|
||||
sa.Column('message', sa.String(), nullable=False),
|
||||
sa.Column('image_url', sa.String(), nullable=True),
|
||||
sa.Column('chat_id', sa.Integer(), nullable=True),
|
||||
sa.Column('user_id', sa.Integer(), nullable=True),
|
||||
sa.Column('created_at', sa.DateTime(timezone=True), server_default=sa.text('now()'), nullable=False),
|
||||
sa.Column('visibility', sa.Boolean(), server_default='true', nullable=False),
|
||||
sa.ForeignKeyConstraint(['chat_id'], ['chats.id'], ),
|
||||
sa.ForeignKeyConstraint(['user_id'], ['users.id'], ),
|
||||
sa.PrimaryKeyConstraint('id')
|
||||
)
|
||||
op.create_table('usersxchats',
|
||||
sa.Column('id', sa.Integer(), nullable=False),
|
||||
sa.Column('user_id', sa.Integer(), nullable=True),
|
||||
sa.Column('chat_id', sa.Integer(), nullable=True),
|
||||
sa.ForeignKeyConstraint(['chat_id'], ['chats.id'], ),
|
||||
sa.ForeignKeyConstraint(['user_id'], ['users.id'], ),
|
||||
sa.PrimaryKeyConstraint('id')
|
||||
)
|
||||
# ### end Alembic commands ###
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
op.drop_table('usersxchats')
|
||||
op.drop_table('messages')
|
||||
op.drop_table('chats')
|
||||
op.drop_table('users')
|
||||
# ### end Alembic commands ###
|
|
@ -1,32 +0,0 @@
|
|||
"""Изменение models.py
|
||||
|
||||
Revision ID: 37cf151ccb02
|
||||
Revises: 5d84c98e0f22
|
||||
Create Date: 2024-01-31 20:52:41.569988
|
||||
|
||||
"""
|
||||
from typing import Sequence, Union
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision: str = '37cf151ccb02'
|
||||
down_revision: Union[str, None] = '5d84c98e0f22'
|
||||
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('messages', sa.Column('message', sa.String(), nullable=False))
|
||||
op.drop_column('messages', 'text')
|
||||
# ### end Alembic commands ###
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
op.add_column('messages', sa.Column('text', sa.VARCHAR(), autoincrement=False, nullable=False))
|
||||
op.drop_column('messages', 'message')
|
||||
# ### end Alembic commands ###
|
|
@ -1,32 +0,0 @@
|
|||
"""Убрал обязательность авы
|
||||
|
||||
Revision ID: 3eb642de804e
|
||||
Revises: 43eac1ddf80a
|
||||
Create Date: 2024-01-29 19:37:41.136288
|
||||
|
||||
"""
|
||||
from typing import Sequence, Union
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision: str = '3eb642de804e'
|
||||
down_revision: Union[str, None] = '43eac1ddf80a'
|
||||
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('avatar_image', sa.String(), nullable=True))
|
||||
op.drop_column('users', 'image')
|
||||
# ### end Alembic commands ###
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
op.add_column('users', sa.Column('image', sa.VARCHAR(), autoincrement=False, nullable=False))
|
||||
op.drop_column('users', 'avatar_image')
|
||||
# ### end Alembic commands ###
|
|
@ -1,38 +0,0 @@
|
|||
"""Изменение models.py
|
||||
|
||||
Revision ID: 3ed46f38168f
|
||||
Revises: 0cc334a2f727
|
||||
Create Date: 2024-01-31 17:59:24.302274
|
||||
|
||||
"""
|
||||
from typing import Sequence, Union
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from sqlalchemy.dialects import postgresql
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision: str = '3ed46f38168f'
|
||||
down_revision: Union[str, None] = '0cc334a2f727'
|
||||
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('messages', 'created_at',
|
||||
existing_type=postgresql.TIMESTAMP(),
|
||||
type_=sa.DateTime(timezone=True),
|
||||
existing_nullable=False,
|
||||
existing_server_default=sa.text('now()'))
|
||||
# ### end Alembic commands ###
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
op.alter_column('messages', 'created_at',
|
||||
existing_type=sa.DateTime(timezone=True),
|
||||
type_=postgresql.TIMESTAMP(),
|
||||
existing_nullable=False,
|
||||
existing_server_default=sa.text('now()'))
|
||||
# ### end Alembic commands ###
|
|
@ -1,30 +0,0 @@
|
|||
"""Добавил колонку юзерам
|
||||
|
||||
Revision ID: 43eac1ddf80a
|
||||
Revises: 90665e133296
|
||||
Create Date: 2024-01-29 19:35:47.727712
|
||||
|
||||
"""
|
||||
from typing import Sequence, Union
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision: str = '43eac1ddf80a'
|
||||
down_revision: Union[str, None] = '90665e133296'
|
||||
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('date_of_birth', sa.Date(), nullable=False))
|
||||
# ### end Alembic commands ###
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
op.drop_column('users', 'date_of_birth')
|
||||
# ### end Alembic commands ###
|
|
@ -1,32 +0,0 @@
|
|||
"""Изменение models.py
|
||||
|
||||
Revision ID: 5d84c98e0f22
|
||||
Revises: ad488d81e7b5
|
||||
Create Date: 2024-01-31 20:35:24.317899
|
||||
|
||||
"""
|
||||
from typing import Sequence, Union
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision: str = '5d84c98e0f22'
|
||||
down_revision: Union[str, None] = 'ad488d81e7b5'
|
||||
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('chats', sa.Column('chat_for', sa.Integer(), nullable=True))
|
||||
op.create_foreign_key(None, 'chats', 'users', ['chat_for'], ['id'])
|
||||
# ### end Alembic commands ###
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
op.drop_constraint(None, 'chats', type_='foreignkey')
|
||||
op.drop_column('chats', 'chat_for')
|
||||
# ### end Alembic commands ###
|
|
@ -1,30 +0,0 @@
|
|||
"""Изменение models.py
|
||||
|
||||
Revision ID: 6b866e6065f2
|
||||
Revises: 8422962a574b
|
||||
Create Date: 2024-01-31 16:50:40.170909
|
||||
|
||||
"""
|
||||
from typing import Sequence, Union
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision: str = '6b866e6065f2'
|
||||
down_revision: Union[str, None] = '8422962a574b'
|
||||
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 ###
|
|
@ -1,30 +0,0 @@
|
|||
"""Изменение models.py
|
||||
|
||||
Revision ID: 8422962a574b
|
||||
Revises: 23d9de31839c
|
||||
Create Date: 2024-01-31 16:31:00.680946
|
||||
|
||||
"""
|
||||
from typing import Sequence, Union
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision: str = '8422962a574b'
|
||||
down_revision: Union[str, None] = '23d9de31839c'
|
||||
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 ###
|
|
@ -1,30 +0,0 @@
|
|||
"""Добавил колонку юзерам
|
||||
|
||||
Revision ID: 90665e133296
|
||||
Revises: 9845ad4fed24
|
||||
Create Date: 2024-01-29 18:50:09.853356
|
||||
|
||||
"""
|
||||
from typing import Sequence, Union
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision: str = '90665e133296'
|
||||
down_revision: Union[str, None] = '9845ad4fed24'
|
||||
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('image', sa.String(), nullable=False))
|
||||
# ### end Alembic commands ###
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
op.drop_column('users', 'image')
|
||||
# ### end Alembic commands ###
|
|
@ -1,45 +0,0 @@
|
|||
"""Database Creation
|
||||
|
||||
Revision ID: 9845ad4fed24
|
||||
Revises: e434e2885475
|
||||
Create Date: 2024-01-29 18:32:13.361975
|
||||
|
||||
"""
|
||||
from typing import Sequence, Union
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision: str = '9845ad4fed24'
|
||||
down_revision: Union[str, None] = 'e434e2885475'
|
||||
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('chats',
|
||||
sa.Column('id', sa.Integer(), nullable=False),
|
||||
sa.Column('chat', sa.JSON(), nullable=True),
|
||||
sa.Column('allowed_users', sa.JSON(), nullable=True),
|
||||
sa.PrimaryKeyConstraint('id')
|
||||
)
|
||||
op.create_table('users',
|
||||
sa.Column('id', sa.Integer(), nullable=False),
|
||||
sa.Column('email', sa.String(), nullable=False),
|
||||
sa.Column('username', sa.String(), nullable=False),
|
||||
sa.Column('hashed_password', sa.String(), nullable=False),
|
||||
sa.Column('role', sa.Integer(), nullable=False),
|
||||
sa.Column('black_phoenix', sa.Integer(), nullable=False),
|
||||
sa.PrimaryKeyConstraint('id')
|
||||
)
|
||||
# ### end Alembic commands ###
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
op.drop_table('users')
|
||||
op.drop_table('chats')
|
||||
# ### end Alembic commands ###
|
|
@ -1,37 +0,0 @@
|
|||
"""Изменение models.py
|
||||
|
||||
Revision ID: ad488d81e7b5
|
||||
Revises: 3ed46f38168f
|
||||
Create Date: 2024-01-31 19:11:16.016911
|
||||
|
||||
"""
|
||||
from typing import Sequence, Union
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision: str = 'ad488d81e7b5'
|
||||
down_revision: Union[str, None] = '3ed46f38168f'
|
||||
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('usersxchats',
|
||||
sa.Column('id', sa.Integer(), nullable=False),
|
||||
sa.Column('user_id', sa.Integer(), nullable=True),
|
||||
sa.Column('chat_id', sa.Integer(), nullable=True),
|
||||
sa.ForeignKeyConstraint(['chat_id'], ['chats.id'], ),
|
||||
sa.ForeignKeyConstraint(['user_id'], ['users.id'], ),
|
||||
sa.PrimaryKeyConstraint('id')
|
||||
)
|
||||
# ### end Alembic commands ###
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
op.drop_table('usersxchats')
|
||||
# ### end Alembic commands ###
|
|
@ -1,30 +0,0 @@
|
|||
"""Database Creation
|
||||
|
||||
Revision ID: e434e2885475
|
||||
Revises:
|
||||
Create Date: 2024-01-29 18:30:03.314179
|
||||
|
||||
"""
|
||||
from typing import Sequence, Union
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision: str = 'e434e2885475'
|
||||
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! ###
|
||||
pass
|
||||
# ### end Alembic commands ###
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
pass
|
||||
# ### end Alembic commands ###
|
|
@ -1,30 +0,0 @@
|
|||
"""Изменение models.py
|
||||
|
||||
Revision ID: f34f22694e19
|
||||
Revises: 273e18fa9316
|
||||
Create Date: 2024-01-31 17:53:48.531617
|
||||
|
||||
"""
|
||||
from typing import Sequence, Union
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision: str = 'f34f22694e19'
|
||||
down_revision: Union[str, None] = '273e18fa9316'
|
||||
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 ###
|
BIN
app/static/images/ту уже пешка BP.png
Executable file
BIN
app/static/images/ту уже пешка BP.png
Executable file
Binary file not shown.
After Width: | Height: | Size: 34 KiB |
|
@ -61,3 +61,5 @@ class ChatDAO(BaseDAO):
|
|||
await session.execute(query)
|
||||
await session.commit()
|
||||
return True
|
||||
|
||||
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
from fastapi import APIRouter, WebSocket, Depends
|
||||
from fastapi import APIRouter, WebSocket, Depends, status
|
||||
from starlette.websockets import WebSocketDisconnect
|
||||
|
||||
from app.exceptions import UDontHavePermissionException, MessageNotFoundException
|
||||
from app.users.chat.dao import ChatDAO
|
||||
from app.users.chat.shemas import SMessage
|
||||
from app.users.chat.websocket import manager
|
||||
from app.users.dao import UserDAO
|
||||
from app.users.dependencies import get_current_user
|
||||
|
@ -14,7 +15,7 @@ router = APIRouter(
|
|||
)
|
||||
|
||||
|
||||
@router.post("")
|
||||
@router.post("", status_code=status.HTTP_201_CREATED)
|
||||
async def add_message_to_chat(
|
||||
chat_id: int,
|
||||
message: str,
|
||||
|
@ -27,10 +28,9 @@ async def add_message_to_chat(
|
|||
message=message,
|
||||
image_url=image_url
|
||||
)
|
||||
return send_message_to_chat
|
||||
|
||||
|
||||
@router.delete("/delete_message")
|
||||
@router.delete("/delete_message", status_code=status.HTTP_204_NO_CONTENT)
|
||||
async def delete_message_from_chat(
|
||||
message_id: int,
|
||||
user: Users = Depends(get_current_user)
|
||||
|
@ -46,9 +46,12 @@ async def delete_message_from_chat(
|
|||
return deleted_message
|
||||
|
||||
|
||||
@router.get("/get_last_message")
|
||||
@router.get("/get_last_message", response_model=SMessage)
|
||||
async def get_last_message(chat_id: int, user: Users = Depends(get_current_user)):
|
||||
message = await ChatDAO.get_last_message(chat_id=chat_id)
|
||||
message = dict(await ChatDAO.get_last_message(chat_id=chat_id))
|
||||
user_avatar = await UserDAO.get_user_avatar(user_id=user.id)
|
||||
message["user_avatar"] = user_avatar
|
||||
print(message)
|
||||
if message is not None:
|
||||
return message
|
||||
raise MessageNotFoundException
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
from datetime import datetime
|
||||
from typing import Optional
|
||||
|
||||
from pydantic import BaseModel
|
||||
|
||||
|
||||
class SMessage(BaseModel):
|
||||
message: str
|
||||
image_url: Optional[str] = None
|
||||
chat_id: int
|
||||
user_id: int
|
||||
created_at: datetime
|
||||
user_avatar: str
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
|
@ -3,6 +3,7 @@ from sqlalchemy.exc import SQLAlchemyError
|
|||
|
||||
from app.dao.base import BaseDAO
|
||||
from app.database import async_session_maker
|
||||
from app.users.chat.models import UsersXChats
|
||||
from app.users.models import Users
|
||||
|
||||
|
||||
|
@ -25,3 +26,18 @@ class UserDAO(BaseDAO):
|
|||
async with async_session_maker() as session:
|
||||
result = await session.execute(query)
|
||||
return result.scalar()
|
||||
|
||||
@classmethod
|
||||
async def get_user_rights(cls, user_id: int):
|
||||
query = select(UsersXChats.__table__.columns).where(UsersXChats.user_id == user_id)
|
||||
async with async_session_maker() as session:
|
||||
result = await session.execute(query)
|
||||
print(result)
|
||||
return result.mappings().all()
|
||||
|
||||
@classmethod
|
||||
async def get_user_avatar(cls, user_id: int):
|
||||
query = select(Users.avatar_image).where(Users.id == user_id)
|
||||
async with async_session_maker() as session:
|
||||
result = await session.execute(query)
|
||||
return result.scalar()
|
||||
|
|
|
@ -8,10 +8,11 @@ from app.exceptions import (IncorrectTokenFormatException,
|
|||
TokenAbsentException, TokenExpiredException,
|
||||
UserIsNotPresentException)
|
||||
from app.users.dao import UserDAO
|
||||
from app.users.models import Users
|
||||
|
||||
|
||||
def get_token(request: Request):
|
||||
token = request.cookies.get("booking_access_token")
|
||||
token = request.cookies.get("black_phoenix_access_token")
|
||||
if not token:
|
||||
raise TokenAbsentException
|
||||
return token
|
||||
|
@ -34,3 +35,7 @@ async def get_current_user(token: str = Depends(get_token)):
|
|||
if not user:
|
||||
raise UserIsNotPresentException
|
||||
return user
|
||||
|
||||
|
||||
async def validate_user_rights(user: Users = Depends(get_current_user)):
|
||||
user_rights = UserDAO.get_user_rights()
|
||||
|
|
|
@ -14,8 +14,8 @@ class Users(Base):
|
|||
username: Mapped[str]
|
||||
hashed_password: Mapped[str]
|
||||
role: Mapped[int]
|
||||
black_phoenix: Mapped[str]
|
||||
avatar_image: Mapped[Optional[str]]
|
||||
black_phoenix: Mapped[int]
|
||||
avatar_image: Mapped[Optional[str]] = mapped_column(server_default='app/static/images/ту уже пешка BP.png')
|
||||
date_of_birth: Mapped[date]
|
||||
|
||||
message = relationship("Messages", back_populates="user")
|
||||
|
|
|
@ -40,7 +40,7 @@ async def register_user(response: Response, user_data: SUserRegister):
|
|||
role=0, black_phoenix=0)
|
||||
user = await authenticate_user_by_email(user_data.email, user_data.password)
|
||||
access_token = create_access_token({"sub": str(user.id)})
|
||||
response.set_cookie("booking_access_token", access_token, httponly=True)
|
||||
response.set_cookie("black_phoenix_access_token", access_token, httponly=True)
|
||||
return {"access_token": access_token}
|
||||
|
||||
|
||||
|
@ -52,13 +52,13 @@ async def login_user(response: Response, user_data: SUserLogin):
|
|||
if not user:
|
||||
raise IncorrectAuthDataException
|
||||
access_token = create_access_token({"sub": str(user.id)})
|
||||
response.set_cookie("booking_access_token", access_token, httponly=True)
|
||||
response.set_cookie("black_phoenix_access_token", access_token, httponly=True)
|
||||
return {"access_token": access_token}
|
||||
|
||||
|
||||
@router.post("/logout")
|
||||
async def logout_user(response: Response):
|
||||
response.delete_cookie("booking_access_token")
|
||||
response.delete_cookie("black_phoenix_access_token")
|
||||
|
||||
|
||||
@router.get("/me")
|
||||
|
|
Loading…
Add table
Reference in a new issue