import type { PageServerLoad } from './$types';
import { getSurrealDB } from '$lib/server/db';
import { serializeData } from '$lib/utils/serialize';

export const load: PageServerLoad = async ({ locals }) => {
	if (!locals.user) {
		return { ads: [], locationTypes: [] };
	}

	const userId = locals.user.id.replace('user:', '');
	const db = await getSurrealDB();

	try {
		// Récupérer les publicités prêtes à diffuser (status: ready ou live)
		const adsResult = await db.query<[any[]]>(
			`SELECT 
				*,
				content.thumbnail_url as content_thumbnail,
				content.url as content_url,
				thumbnail_url
			 FROM ad 
			 WHERE user = type::thing("user", $userId) 
			 AND status IN ["ready", "live", "draft", "creating", "validation"]
			 ORDER BY updated_at DESC`,
			{ userId }
		);

		// Récupérer les types de lieux
		const locationTypesResult = await db.query<[any[]]>(
			`SELECT * FROM location_type ORDER BY label ASC`
		);

		const ads = serializeData(adsResult[0] || []);
		console.log('📊 Ads loaded:', ads.length);
		if (ads.length > 0) {
			console.log('First ad:', {
				id: ads[0].id,
				name: ads[0].name,
				thumbnail_url: ads[0].thumbnail_url,
				content_thumbnail: ads[0].content_thumbnail,
				content_url: ads[0].content_url,
				output_url: ads[0].output_url
			});
		}

		return {
			ads,
			locationTypes: serializeData(locationTypesResult[0] || [])
		};
	} catch (error) {
		console.error('Error loading ads:', error);
		return { ads: [], locationTypes: [] };
	}
};
