# Aiogram
import aiogram.types as types
from aiogram.fsm.context import FSMContext
from aiogram.filters import CommandStart, StateFilter
from aiogram import Router, F

# Utils
from utils.text_tools import to_html

# Const
from create_bot import orm

# Keyboards
from keyboards.reply_keyboards import get_main_menu_kb

# States
from states.client_states import MainStates

# Another
from datetime import datetime, timezone


# Init
start_router = Router()


@start_router.message(CommandStart(), StateFilter("*"))
async def cmd_start(message: types.Message, state: FSMContext):
    if message.chat.type != "private":
        return

    user_id = message.from_user.id
    username = (
        "@" + message.from_user.username
        if message.from_user.username is not None
        else None
    )
    fullname = to_html(message.from_user.full_name)

    await orm.create_user(
        user_id=user_id,
        username=username,
        fullname=fullname,
        register_date=datetime.now(timezone.utc),
    )

    msg_text = (
        "Здравствуйте. Я юридический ИИ-консультант по законам РФ.\n\n"
        "Я могу помочь:\n"
        "— разобраться в ситуации;\n"
        "— найти применимые нормы закона;\n"
        "— объяснить их простыми словами;\n"
        "— дать базовый план действий.\n\n"
        "Ответ носит информационный характер и не заменяет консультацию юриста."
    )

    await message.answer(text=msg_text, reply_markup=get_main_menu_kb())

    await state.set_state(MainStates.main)
