# app/notes/router.py
from fastapi import APIRouter, Depends

from app.config import settings
from app.notes.dao import NotesDAO
from app.notes.categories.dao import NotesCategoriesDAO
from app.users.auth import get_current_user
from app.users.model import Users

# Создаем экземпляр роутера.
# prefix="/users" — это пространство имен. Все маршруты в этом файле
# автоматически получат этот префикс.
# tags=["Users"] — нужно для группировки в автоматической документации (Swagger UI).
router = APIRouter(
    prefix="/notes",
    tags=["Заметки и категории"]
)
# ВАЖНО: Мы используем декоратор @router, а не @app.
# Переменной app здесь не существует, мы находимся в изолированном модуле.
#@router.get("", response_model=SNotes)
@router.get("")
async def get_all_notes(user: Users = Depends(get_current_user)):
    if user is None:
        return None
    elif user != settings.ADMIN_NAME:
        return None
    else:
        return await NotesDAO.find_all()

@router.get("/one_note")
async def get_one_note(user: Users = Depends(get_current_user), id_note: int = None):
    if user is None:
        return None
    elif user != settings.ADMIN_NAME:
        return None
    else:
        return await NotesDAO.find_one_or_none(id_note=id_note)


#@router.get("/categories", response_model=SNotesCategories)
@router.get("/categories")
async def get_all_categories(user: Users = Depends(get_current_user)):
    if user is None:
        return None
    elif user != settings.ADMIN_NAME:
        return None
    else:
        return await NotesCategoriesDAO.find_all()