import { Router } from "express";
import { authMiddleware } from "../../common/middlewares/auth.middleware";
import { tenantMiddleware } from "../../common/middlewares/tenant.middleware";
import { validate } from "../../common/middlewares/validate.middleware";
import { createServiceSchema, updateServiceSchema } from "./service.validation";
import * as serviceController from "./service.controller";
import serviceDocumentRoutes from "../service-documents/service-document.routes";
import "./service.openapi";

const router = Router();

router.use(authMiddleware, tenantMiddleware);

router.post(
  "/create-service",
  validate(createServiceSchema),
  serviceController.createService
);
router.get("/get-all-services", serviceController.getAllServices);

router.use("/:serviceId/documents", serviceDocumentRoutes);
router.get("/available/:serviceId", serviceController.getServiceForClient);
router.get("/available", serviceController.getServicesForClient);
router.get("/:serviceId", serviceController.getService);
router.put(
  "/:serviceId",
  validate(updateServiceSchema),
  serviceController.updateService
);
router.delete("/:serviceId", serviceController.deleteService);

export default router;
