import {
  createTravelRuleHandler,
  deleteTravelRuleHandler,
  getTravelRuleHandler,
  listTravelRulesHandler,
  updateTravelRuleHandler,
} from "@/controllers/admin/travel-rules/travel-rules.controller";
import { withConsoleUserRole } from "@/middlewares/console-role";
import { withConsoleUserSession } from "@/middlewares/withConsoleUserSession";
import { Hono } from "hono";

export const TravelRulesRoutes = new Hono();

TravelRulesRoutes.get(
  "/",
  withConsoleUserSession(),
  withConsoleUserRole("travel-rules", "read"),
  listTravelRulesHandler,
);

TravelRulesRoutes.get(
  "/:id",
  withConsoleUserSession(),
  withConsoleUserRole("travel-rules", "read"),
  getTravelRuleHandler,
);

TravelRulesRoutes.post(
  "/",
  withConsoleUserSession(),
  withConsoleUserRole("travel-rules", "create"),
  createTravelRuleHandler,
);

TravelRulesRoutes.put(
  "/:id",
  withConsoleUserSession(),
  withConsoleUserRole("travel-rules", "update"),
  updateTravelRuleHandler,
);

TravelRulesRoutes.delete(
  "/:id",
  withConsoleUserSession(),
  withConsoleUserRole("travel-rules", "delete"),
  deleteTravelRuleHandler,
);
