from time import time

from fastapi import APIRouter

from app import mongo
from app.utils.logger_util import logger
from app.utils.response_util import response

router = APIRouter()


@router.get("/get-all", tags=[""])
async def get_all():
    start_time = time()

    clients = await mongo.service_types_collection.find({}, {
        "_id": False
    }).sort("id", mongo.asc).to_list()

    return response({
        "items": clients
    }, start_time=start_time)


@router.post("/create", tags=[""])
async def create(params: dict):
    start_time = time()
    data = params["category"]

    data["id"] = await mongo.get_next_id(mongo.service_types_collection)

    logger.json(data)

    try:
        await mongo.service_types_collection.insert_one(data)

        return response({
            "message": "Тип создан",
            "ok": True
        }, start_time=start_time)
    except Exception as e:
        return response({
            "message": str(e),
            "ok": False
        }, start_time=start_time, code=400)
