import express from "express";
import indexRoutes from "./src/routes/index.js";
import localizacionRoutes from "./src/routes/localizacion.js";
import usuariosRoutes from "./src/routes/usuarios.js";
import empleadosRoutes from "./src/routes/empleados.js";
import estudiantesRoutes from "./src/routes/estudiantes.js";
import loginRoutes from "./src/routes/Login.js";

import { API_VERSION, PORT } from "./config.js";

import cors from "cors";

const app = express();

// Configurar encabezados HTTP
app.use((req, res, next) => {
  res.header("Access-Control-Allow-Origin", "*");
  res.header(
    "Access-Control-Allow-Headers",
    "Authorization, X-API-KEY, Origin, X-Requested-With, Content-Type, Accept, Access-Control-Allow-Request-Method"
  );
  res.header("Access-Control-Allow-Methods", "GET, POST, OPTIONS, PUT, DELETE");
  res.header("Allow", "GET, POST, OPTIONS, PUT, DELETE");
  next();
});
// Configurar CORS
app.use(cors({ origin: "*" }));
// Configurar análisis de JSON
app.use(express.json({ limit: "500mb" })); // Aumenta el límite de carga útil a 50 MB
app.use(express.urlencoded({ limit: "500mb", extended: true })); // Aumenta el límite de carga útil a 50 MB

// Configurar rutas básicas
app.use(`/api/${API_VERSION}`, localizacionRoutes);
app.use(`/api/${API_VERSION}`, usuariosRoutes);
app.use(`/api/${API_VERSION}`, empleadosRoutes);
app.use(`/api/${API_VERSION}`, estudiantesRoutes);
app.use(`/api/${API_VERSION}`, loginRoutes);

// Iniciar el servidor
app.listen(PORT, () => {
  console.log(`Servidor en ejecución en el puerto ${PORT}`);
});
