import { Hono } from "hono";
import { withConsoleUserSession } from "@/middlewares/withConsoleUserSession";
import { withConsoleUserRole } from "@/middlewares/console-role";
import { AvailabilityController } from "@/controllers/admin/availability/availability.controller";

export const AvailabilityRoutes = new Hono();

/**
 * POST /units-hot-deal/
 * Calculate hot deal pricing for resort units.
 * Mirrors: PHP API2 availability/v1/units-hot-deal/
 */
AvailabilityRoutes.post(
  "/units-hot-deal",
  withConsoleUserSession(),
  withConsoleUserRole("resorts", "read"),
  async (ctx) => AvailabilityController(ctx).UnitsHotDeal(),
);

/**
 * POST /units/options-hot-deal/
 * Calculate hot deal booking options for selected units.
 * Mirrors: PHP API2 availability/v1/units/options-hot-deal/
 */
AvailabilityRoutes.post(
  "/units/options-hot-deal",
  withConsoleUserSession(),
  withConsoleUserRole("resorts", "read"),
  async (ctx) => AvailabilityController(ctx).UnitsOptionsHotDeal(),
);
