import express from 'express';
import cors from 'cors';
import { ENV } from './config/env';
import productRoutes from './routes/product.routes';
import categoryRoutes from './routes/category.routes';
import bookingRoutes from './routes/booking.routes';
import contactRoutes from './routes/contact.routes';
import { handleDolibarrWebhook } from './webhooks/dolibarr.webhook';
import { errorMiddleware } from './middlewares/error.middleware';


const app = express();

// app.use(cors({ origin: ENV.FRONTEND_URL }));
// app.use(cors({ origin: '*' }));
app.use(cors({
  origin: [
    ENV.FRONTEND_URL,           // URL principale
    // /\.vercel\.app$/            // toutes les preview URLs
  ]
}));
app.use(express.json());

app.use('/api/products', productRoutes);
app.use('/api/categories', categoryRoutes);
app.use('/api/bookings', bookingRoutes);
app.use('/api/contact', contactRoutes);

// Erreurs globales
app.use((err: Error, _req: express.Request, res: express.Response, _next: express.NextFunction) => {
  console.error(err.message);
  res.status(500).json({ message: err.message });
});

// Gestion d'erreurs globale (toujours en dernier)
app.use(errorMiddleware);

app.listen(ENV.PORT, () =>
  console.log(`Backend démarré → http://localhost:${ENV.PORT}`)
);

export default app;