/**
 * API route para establecer la compañía activa en una cookie
 */
import { json } from '@sveltejs/kit';
import type { RequestHandler } from './$types';

export const POST: RequestHandler = async ({ cookies, request }) => {
	try {
		const body = await request.json();
		const companyId = body?.companyId;
		const tenantId = body?.tenantId;

		if (!companyId || typeof companyId !== 'number') {
			return json({ error: 'Invalid company ID' }, { status: 400 });
		}

		const isProd = process.env.NODE_ENV === 'production';
		const base = { path: '/', maxAge: 60 * 60 * 24 * 30, sameSite: 'lax' as const, secure: isProd };

		// Compañía activa (legible desde JS)
		cookies.set('active_company_id', companyId.toString(), { ...base, httpOnly: false });

		// Fijar el tenant de la compañía como override → el backend escala por ese
		// tenant aunque el token no lo traiga (caso hub_admin operando por compañía).
		if (typeof tenantId === 'number' && Number.isFinite(tenantId)) {
			cookies.set('sso_tenant_id', tenantId.toString(), { ...base, httpOnly: true });
			cookies.set('sso_tenant_pub', tenantId.toString(), { ...base, httpOnly: false });
		}

		return json({ success: true, companyId, tenantId: tenantId ?? null });
	} catch (error) {
		console.error('Error setting active company:', error);
		return json({ error: 'Internal server error' }, { status: 500 });
	}
};
