import { Router } from "express";
import authorize from "../middlewares/authorization.middleware";
import validateData from "../middlewares/validation.middleware";
import food from "../controllers/food.controller";
import { dayMenuAddSchema } from "../schemas/dayMenu.schema";
import { multerAnyFn, multerSingleFn } from "../middlewares/multer.middleware";

const router = Router();

router.post(
  "/add/day/menu",
  authorize,
  validateData(dayMenuAddSchema),
  food.AddDayMenu
);

router.post(
  "/edit/day/menu",
  authorize,
  validateData(dayMenuAddSchema),
  food.EditDayMenu
);

router.post(
  "/replicate/day/menu",
  authorize,
  validateData(dayMenuAddSchema),
  food.ReplicateDayMenu
);

router.post(
  "/add/tenant/meal/selection",
  authorize,
  food.AddTenantMealSelection
);

router.get("/list/prop/menu", authorize, food.ListPropertyMenu);

router.get("/tenant/list/prop/menu", authorize, food.ListMenuForTenant);

router.get("/tenant/list/meal/history", authorize, food.ListTenantHistory);

router.get("/publish/menu", authorize, food.PublishMenu);

router.get("/tenant/meal/selection/summary", authorize, food.GetTenantMealSelectionSummaryForClient);

router.get("/tenant/meal/selection/list", authorize, food.GetTenantMealSelectionListForClient);

router.post("/tenant/meal/status/update", authorize, food.UpdateTenantMealStatus);

router.post(
  "/add/inventory", 
  authorize, 
  (req, res, next) => multerAnyFn(req, res, next),
  food.AddInventory
);

router.get(
  "/list/inventory", 
  authorize, 
  food.GetInventoryRecordForClient
);

router.get(
  "/list/inventory/summary", 
  authorize, 
  food.GetInventorySummaryForClient
);

router.post(
  "/update/menu/excel", 
  authorize, 
  multerSingleFn, 
  food.UpdateMenuByExcel
);

export default router;
