import { redirect } from '@sveltejs/kit';
import { env } from '$env/dynamic/private';
import type { RequestHandler } from './$types';
import { clearAuthTokens } from '$lib/server/api';
import { clearWorkspaceReturnPath, getWorkspaceLoginUrl } from '$lib/server/workspace-auth';

/**
 * Logout del CRM. Limpia la sesión LOCAL (cookies) y devuelve al Workspace.
 * NO habla directo a Keycloak: el cierre de sesión completo (Hub/KC) se hace
 * desde el Workspace. Patrón SIWEB.
 */
export const POST: RequestHandler = async ({ cookies }) => {
	// Eliminar todas las cookies de autenticación (incluye sesión local + token KC)
	clearAuthTokens(cookies);
	cookies.delete('id_token', { path: '/' });
	cookies.delete('sso_tenant_id', { path: '/' });
	cookies.delete('sso_tenant_pub', { path: '/' });
	clearWorkspaceReturnPath(cookies);

	// Modo local: no hay Workspace — ir al login local.
	if ((env.DEV_LOCAL_AUTH ?? '').toLowerCase() === 'true') {
		throw redirect(303, '/login');
	}

	// Volver al Workspace (App Launcher). Para cerrar la sesión del Hub por
	// completo, el usuario cierra sesión desde el Workspace.
	throw redirect(303, getWorkspaceLoginUrl());
};
