import { redirect } from '@sveltejs/kit';
import type { LayoutLoad } from './$types';

// Routen die NICHT authentifiziert sein müssen
const PUBLIC_ROUTES = ['/', '/login', '/register'];

export const load: LayoutLoad = async ({ url, fetch }) => {
	// Wenn auf öffentlicher Route, einfach durchlassen
	if (PUBLIC_ROUTES.includes(url.pathname)) {
		return {};
	}

	// Versuche den User zu laden
	try {
		const response = await fetch('http://localhost:3000/api/auth/me', {
			credentials: 'include'
		});

		if (!response.ok) {
			// Nicht authentifiziert
			throw redirect(303, '/login');
		}

		const user = await response.json();
		return { user };
	} catch (error) {
		// Bei Fehler zur Login-Seite umleiten
		if (error instanceof Response && error.status === 303) {
			throw error;
		}
		throw redirect(303, '/login');
	}
};
