import type { FastifyInstance } from 'fastify';
import healthRoutes from './health.routes.js';
import authRoutes from './auth.routes.js';
import clientRoutes from './client.routes.js';
import productRoutes from './product.routes.js';
import productCategoryRoutes from './productCategory.routes.js';
import metalTypeRoutes from './metalType.routes.js';
import purityRoutes from './purity.routes.js';
import hallmarkGradeRoutes from './hallmarkGrade.routes.js';
import sizeRoutes from './size.routes.js';
import weightRoutes from './weight.routes.js';
import itemRoutes from './item.routes.js';
import wireSizeRoutes from './wireSize.routes.js';
import hookRoutes from './hook.routes.js';
import endcapRoutes from './endcap.routes.js';
import stageRoutes from './stage.routes.js';
import officeCalendarRoutes from './officeCalendar.routes.js';
import employeeRoutes from './employee.routes.js';
import roleRoutes from './role.routes.js';
import orderRoutes from './order.routes.js';
import orderApprovalRoutes from './orderApproval.routes.js';
import orderReturnRoutes from './orderReturn.routes.js';
import notificationRoutes from './notification.routes.js';
import dashboardRoutes from './dashboard.routes.js';
import reportRoutes from './report.routes.js';
import logRoutes from './log.routes.js';
import searchRoutes from './search.routes.js';

export async function registerRoutes(fastify: FastifyInstance) {
  await fastify.register(healthRoutes);
  await fastify.register(authRoutes);
  await fastify.register(clientRoutes);
  await fastify.register(productRoutes);
  await fastify.register(productCategoryRoutes);
  await fastify.register(metalTypeRoutes);
  await fastify.register(purityRoutes);
  await fastify.register(hallmarkGradeRoutes);
  await fastify.register(sizeRoutes);
  await fastify.register(weightRoutes);
  await fastify.register(itemRoutes);
  await fastify.register(wireSizeRoutes);
  await fastify.register(hookRoutes);
  await fastify.register(endcapRoutes);
  await fastify.register(stageRoutes);
  await fastify.register(officeCalendarRoutes);
  await fastify.register(employeeRoutes);
  await fastify.register(roleRoutes);
  await fastify.register(orderRoutes);
  await fastify.register(orderApprovalRoutes);
  await fastify.register(orderReturnRoutes);
  await fastify.register(notificationRoutes);
  await fastify.register(dashboardRoutes);
  await fastify.register(reportRoutes);
  await fastify.register(logRoutes);
  await fastify.register(searchRoutes);
}
