from fastapi import APIRouter, Depends, Query, status from fastapi.responses import JSONResponse from models.user import User from pydantic import BaseModel from auth.security import get_current_user from config import settings from utils.responses import success_response from toteat.toteat import get_table from services.data_service import ProductDataService store_router = APIRouter() class AppStateBody(BaseModel): state: bool @store_router.post("/state", response_class=JSONResponse) def set_store_state(state: AppStateBody, current_user: User = Depends(get_current_user)): if (current_user.permissions or -1) >= 1: settings.IS_OPEN_STORE = state.state return success_response({"state": settings.IS_OPEN_STORE}) @store_router.post("/update_cache", response_class=JSONResponse) def update_cache(current_user: User = Depends(get_current_user)): if (current_user.permissions or -1) >= 1: ProductDataService.update_cache() return success_response({"state": settings.IS_OPEN_STORE}) @store_router.get("/tables/exists", response_class=JSONResponse) def get_table_exists(q: str = Query(..., description="q parameter")): table = get_table(int(q)) exist = bool(table) return success_response({"exists": exist}, status_code=200) @store_router.get("/state", response_class=JSONResponse) def get_store_state(): return success_response(data={"state": settings.IS_OPEN_STORE})