diff --git a/app/callbacks/profile.py b/app/callbacks/profile.py index ac9493a..1b6f04d 100644 --- a/app/callbacks/profile.py +++ b/app/callbacks/profile.py @@ -12,7 +12,7 @@ from app.filters.user import Registered, RegisteredCallback from app.keyboards.builders import sex_keyboard from app.keyboards.profile import get from app.models.user import User -from app.states.user import UserAltering +from app.states.user import UserAlteringState from app.utils.states import ( delete_message_from_state, handle_validation_error, @@ -63,12 +63,12 @@ async def profile_change_callback( profile_message_id=callback.message.message_id, input_message_id=message.message_id, ) - await state.set_state(UserAltering.value) + await state.set_state(UserAlteringState.value) await callback.answer() -@router.message(UserAltering.value, F.text, Registered()) +@router.message(UserAlteringState.value, F.text, Registered()) async def profile_change_entered(message: Message, state: FSMContext) -> None: column = (await state.get_data()).get("column") value = message.text.strip() diff --git a/app/handlers/start_command.py b/app/handlers/start_command.py index 53d7624..9013790 100644 --- a/app/handlers/start_command.py +++ b/app/handlers/start_command.py @@ -8,7 +8,7 @@ from aiogram.types import Message, ReplyKeyboardRemove from app import messages, session from app.keyboards.builders import sex_keyboard from app.models.user import User -from app.states.user import UserRegistration +from app.states.user import UserRegistrationState from app.utils.states import ( delete_message_from_state, handle_validation_error, @@ -38,11 +38,11 @@ async def command_start_handler(message: Message, state: FSMContext) -> None: ), ) - await state.set_state(UserRegistration.username) + await state.set_state(UserRegistrationState.username) await message.answer(messages.INPUT_USERNAME) -@router.message(UserRegistration.username, F.text) +@router.message(UserRegistrationState.username, F.text) async def username_handler(message: Message, state: FSMContext) -> None: if message.text is None: return @@ -62,7 +62,7 @@ async def username_handler(message: Message, state: FSMContext) -> None: await delete_message_from_state(state, message.chat.id, message.bot) await state.update_data(username=validated_username) - await state.set_state(UserRegistration.age) + await state.set_state(UserRegistrationState.age) await message.answer( messages.INPUT_CALLBACK.format( @@ -73,7 +73,7 @@ async def username_handler(message: Message, state: FSMContext) -> None: await message.answer(messages.INPUT_AGE) -@router.message(UserRegistration.age, F.text) +@router.message(UserRegistrationState.age, F.text) async def age_handler(message: Message, state: FSMContext) -> None: if message.text is None: return @@ -90,7 +90,7 @@ async def age_handler(message: Message, state: FSMContext) -> None: await delete_message_from_state(state, message.chat.id, message.bot) await state.update_data(age=validated_age) - await state.set_state(UserRegistration.sex) + await state.set_state(UserRegistrationState.sex) await message.answer( messages.INPUT_CALLBACK.format(key="age", value=validated_age), @@ -101,7 +101,7 @@ async def age_handler(message: Message, state: FSMContext) -> None: ) -@router.message(UserRegistration.sex, F.text) +@router.message(UserRegistrationState.sex, F.text) async def sex_handler(message: Message, state: FSMContext) -> None: if message.text is None: return @@ -118,7 +118,7 @@ async def sex_handler(message: Message, state: FSMContext) -> None: await delete_message_from_state(state, message.chat.id, message.bot) await state.update_data(sex=validated_sex) - await state.set_state(UserRegistration.bio) + await state.set_state(UserRegistrationState.bio) await message.answer( messages.INPUT_CALLBACK.format(key="sex", value=sex), @@ -127,7 +127,7 @@ async def sex_handler(message: Message, state: FSMContext) -> None: await message.answer(messages.INPUT_BIO) -@router.message(UserRegistration.bio, F.text) +@router.message(UserRegistrationState.bio, F.text) async def bio_handler(message: Message, state: FSMContext) -> None: if message.text is None: return @@ -136,7 +136,7 @@ async def bio_handler(message: Message, state: FSMContext) -> None: if bio == "/skip": await state.update_data(bio=None) - await state.set_state(UserRegistration.location) + await state.set_state(UserRegistrationState.location) await delete_message_from_state(state, message.chat.id, message.bot) @@ -153,7 +153,7 @@ async def bio_handler(message: Message, state: FSMContext) -> None: await delete_message_from_state(state, message.chat.id, message.bot) await state.update_data(bio=validated_bio) - await state.set_state(UserRegistration.location) + await state.set_state(UserRegistrationState.location) await message.answer( messages.INPUT_CALLBACK.format(key="bio", value=validated_bio), @@ -161,7 +161,7 @@ async def bio_handler(message: Message, state: FSMContext) -> None: await message.answer(messages.INPUT_LOCATION) -@router.message(UserRegistration.location, F.text) +@router.message(UserRegistrationState.location, F.text) async def location_handler(message: Message, state: FSMContext) -> None: if message.text is None or message.from_user is None: return diff --git a/app/migrations/versions/1ea8d34d6232_added_user_model.py b/app/migrations/versions/1ea8d34d6232_added_user_model.py index 36e1a91..06d4f95 100644 --- a/app/migrations/versions/1ea8d34d6232_added_user_model.py +++ b/app/migrations/versions/1ea8d34d6232_added_user_model.py @@ -5,6 +5,7 @@ Revises: Create Date: 2024-03-22 00:57:44.526995 """ + from typing import Sequence, Union from alembic import op @@ -20,18 +21,21 @@ depends_on: Union[str, Sequence[str], None] = None def upgrade() -> None: # ### commands auto generated by Alembic - please adjust! ### - op.create_table('users', - sa.Column('telegram_id', sa.BigInteger(), nullable=False), - sa.Column('username', sa.String(length=32), nullable=False), - sa.Column('age', sa.SmallInteger(), nullable=False), - sa.Column('bio', sa.String(length=100), nullable=True), - sa.Column('sex', sa.String(length=6), nullable=True), - sa.Column('country', sa.Text(), nullable=False), - sa.Column('city', sa.Text(), nullable=False), - sa.PrimaryKeyConstraint('telegram_id'), - sa.UniqueConstraint('username') + op.create_table( + 'users', + sa.Column('telegram_id', sa.BigInteger(), nullable=False), + sa.Column('username', sa.String(length=32), nullable=False), + sa.Column('age', sa.SmallInteger(), nullable=False), + sa.Column('bio', sa.String(length=100), nullable=True), + sa.Column('sex', sa.String(length=6), nullable=True), + sa.Column('country', sa.Text(), nullable=False), + sa.Column('city', sa.Text(), nullable=False), + sa.PrimaryKeyConstraint('telegram_id'), + sa.UniqueConstraint('username'), + ) + op.create_index( + op.f('ix_users_telegram_id'), 'users', ['telegram_id'], unique=True ) - op.create_index(op.f('ix_users_telegram_id'), 'users', ['telegram_id'], unique=True) # ### end Alembic commands ### diff --git a/app/states/user.py b/app/states/user.py index e3eb128..6a475c9 100644 --- a/app/states/user.py +++ b/app/states/user.py @@ -1,9 +1,9 @@ -__all__ = ("UserRegistration", "UserAltering") +__all__ = ("UserRegistrationState", "UserAlteringState") from aiogram.fsm.state import State, StatesGroup -class UserRegistration(StatesGroup): +class UserRegistrationState(StatesGroup): error_message_id = State() username = State() age = State() @@ -12,7 +12,7 @@ class UserRegistration(StatesGroup): location = State() -class UserAltering(StatesGroup): +class UserAlteringState(StatesGroup): profile_message_id = State() input_message_id = State() error_message_id = State()