import { defineConfig } from 'astro/config';
import node from '@astrojs/node';

export default defineConfig({
  site: 'https://insanitylab.it',
  output: 'server',
  // Dietro Traefik il TLS termina al proxy: senza allowedDomains Astro ignora
  // X-Forwarded-Proto/Host e il checkOrigin CSRF respinge i POST (403).
  // Dominio ufficiale insanitylab.it (canonico apex); www e il vecchio
  // sottodominio tielogic.xyz redirigono all'apex a livello Traefik.
  security: {
    allowedDomains: [
      { hostname: 'insanitylab.it', protocol: 'https' },
      { hostname: 'www.insanitylab.it', protocol: 'https' },
      { hostname: 'insanitylab.tielogic.xyz', protocol: 'https' },
    ],
  },
  adapter: node({ mode: 'standalone' }),
  // La sezione "Programmi" è stata rinominata "Servizi": redirect permanenti dai vecchi URL.
  redirects: {
    '/programs': { status: 301, destination: '/services' },
    '/programs/[slug]': { status: 301, destination: '/services/[slug]' },
    // Modifiche 02: "Pilates Flow" → "Profilazione". "Rehab" esce dalla griglia Servizi e
    // diventa un riquadro Training, ma la pagina dettaglio resta su /services/rehab.
    '/services/pilates-flow': { status: 301, destination: '/services/profilazione' },
    // "Personal Training" rinominato "One to One" (nuovo slug); Small Group è una pagina a sé.
    '/services/personal-training': { status: 301, destination: '/services/one-to-one' },
  },
});
