diff --git a/app/migrations/versions/050324c9bd94_изменение_models_py.py b/app/migrations/versions/050324c9bd94_изменение_models_py.py deleted file mode 100644 index 12deb5e..0000000 --- a/app/migrations/versions/050324c9bd94_изменение_models_py.py +++ /dev/null @@ -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 ### diff --git a/app/migrations/versions/0cc334a2f727_изменение_models_py.py b/app/migrations/versions/0cc334a2f727_изменение_models_py.py deleted file mode 100644 index 917ab1a..0000000 --- a/app/migrations/versions/0cc334a2f727_изменение_models_py.py +++ /dev/null @@ -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 ### diff --git a/app/migrations/versions/23d9de31839c_изменение_models_py.py b/app/migrations/versions/23d9de31839c_изменение_models_py.py deleted file mode 100644 index cd8ebee..0000000 --- a/app/migrations/versions/23d9de31839c_изменение_models_py.py +++ /dev/null @@ -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 ### diff --git a/app/migrations/versions/273e18fa9316_изменение_models_py.py b/app/migrations/versions/273e18fa9316_изменение_models_py.py deleted file mode 100644 index 304b0af..0000000 --- a/app/migrations/versions/273e18fa9316_изменение_models_py.py +++ /dev/null @@ -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 ### diff --git a/app/migrations/versions/2913a8a70afb_изменение_models_py.py b/app/migrations/versions/2913a8a70afb_изменение_models_py.py new file mode 100644 index 0000000..ea589e6 --- /dev/null +++ b/app/migrations/versions/2913a8a70afb_изменение_models_py.py @@ -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 ### diff --git a/app/migrations/versions/37cf151ccb02_изменение_models_py.py b/app/migrations/versions/37cf151ccb02_изменение_models_py.py deleted file mode 100644 index 32520d3..0000000 --- a/app/migrations/versions/37cf151ccb02_изменение_models_py.py +++ /dev/null @@ -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 ### diff --git a/app/migrations/versions/3eb642de804e_убрал_обязательность_авы.py b/app/migrations/versions/3eb642de804e_убрал_обязательность_авы.py deleted file mode 100644 index 5ca58a0..0000000 --- a/app/migrations/versions/3eb642de804e_убрал_обязательность_авы.py +++ /dev/null @@ -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 ### diff --git a/app/migrations/versions/3ed46f38168f_изменение_models_py.py b/app/migrations/versions/3ed46f38168f_изменение_models_py.py deleted file mode 100644 index fe1a7e5..0000000 --- a/app/migrations/versions/3ed46f38168f_изменение_models_py.py +++ /dev/null @@ -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 ### diff --git a/app/migrations/versions/43eac1ddf80a_добавил_колонку_юзерам.py b/app/migrations/versions/43eac1ddf80a_добавил_колонку_юзерам.py deleted file mode 100644 index 6e28a93..0000000 --- a/app/migrations/versions/43eac1ddf80a_добавил_колонку_юзерам.py +++ /dev/null @@ -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 ### diff --git a/app/migrations/versions/5d84c98e0f22_изменение_models_py.py b/app/migrations/versions/5d84c98e0f22_изменение_models_py.py deleted file mode 100644 index 6421aa6..0000000 --- a/app/migrations/versions/5d84c98e0f22_изменение_models_py.py +++ /dev/null @@ -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 ### diff --git a/app/migrations/versions/6b866e6065f2_изменение_models_py.py b/app/migrations/versions/6b866e6065f2_изменение_models_py.py deleted file mode 100644 index 7c5a995..0000000 --- a/app/migrations/versions/6b866e6065f2_изменение_models_py.py +++ /dev/null @@ -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 ### diff --git a/app/migrations/versions/8422962a574b_изменение_models_py.py b/app/migrations/versions/8422962a574b_изменение_models_py.py deleted file mode 100644 index 9144384..0000000 --- a/app/migrations/versions/8422962a574b_изменение_models_py.py +++ /dev/null @@ -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 ### diff --git a/app/migrations/versions/90665e133296_добавил_колонку_юзерам.py b/app/migrations/versions/90665e133296_добавил_колонку_юзерам.py deleted file mode 100644 index 4ac8986..0000000 --- a/app/migrations/versions/90665e133296_добавил_колонку_юзерам.py +++ /dev/null @@ -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 ### diff --git a/app/migrations/versions/9845ad4fed24_database_creation.py b/app/migrations/versions/9845ad4fed24_database_creation.py deleted file mode 100644 index 46304c6..0000000 --- a/app/migrations/versions/9845ad4fed24_database_creation.py +++ /dev/null @@ -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 ### diff --git a/app/migrations/versions/ad488d81e7b5_изменение_models_py.py b/app/migrations/versions/ad488d81e7b5_изменение_models_py.py deleted file mode 100644 index b456b9a..0000000 --- a/app/migrations/versions/ad488d81e7b5_изменение_models_py.py +++ /dev/null @@ -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 ### diff --git a/app/migrations/versions/e434e2885475_database_creation.py b/app/migrations/versions/e434e2885475_database_creation.py deleted file mode 100644 index c618fb7..0000000 --- a/app/migrations/versions/e434e2885475_database_creation.py +++ /dev/null @@ -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 ### diff --git a/app/migrations/versions/f34f22694e19_изменение_models_py.py b/app/migrations/versions/f34f22694e19_изменение_models_py.py deleted file mode 100644 index d2d7f23..0000000 --- a/app/migrations/versions/f34f22694e19_изменение_models_py.py +++ /dev/null @@ -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 ### diff --git a/app/static/images/ту уже пешка BP.png b/app/static/images/ту уже пешка BP.png new file mode 100755 index 0000000..2211c80 Binary files /dev/null and b/app/static/images/ту уже пешка BP.png differ diff --git a/app/users/chat/dao.py b/app/users/chat/dao.py index 8df4174..7ffa2ab 100644 --- a/app/users/chat/dao.py +++ b/app/users/chat/dao.py @@ -61,3 +61,5 @@ class ChatDAO(BaseDAO): await session.execute(query) await session.commit() return True + + diff --git a/app/users/chat/router.py b/app/users/chat/router.py index 97b5032..0093bc6 100644 --- a/app/users/chat/router.py +++ b/app/users/chat/router.py @@ -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 diff --git a/app/users/chat/shemas.py b/app/users/chat/shemas.py index e69de29..fdce15d 100644 --- a/app/users/chat/shemas.py +++ b/app/users/chat/shemas.py @@ -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 diff --git a/app/users/dao.py b/app/users/dao.py index 9796ba3..e535ec9 100644 --- a/app/users/dao.py +++ b/app/users/dao.py @@ -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() diff --git a/app/users/dependencies.py b/app/users/dependencies.py index bcac202..1c9780f 100644 --- a/app/users/dependencies.py +++ b/app/users/dependencies.py @@ -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() diff --git a/app/users/models.py b/app/users/models.py index 23c77df..9256673 100644 --- a/app/users/models.py +++ b/app/users/models.py @@ -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") diff --git a/app/users/router.py b/app/users/router.py index a3fcc5b..663492e 100644 --- a/app/users/router.py +++ b/app/users/router.py @@ -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")