import { getSurrealDB } from '../src/lib/server/db';

async function fixDraftAdsContent() {
	const db = await getSurrealDB();

	try {
		console.log('🔍 Checking ads without content...\n');

		// Récupérer toutes les annonces
		const result = await db.query<[any[]]>(`
			SELECT 
				id,
				name,
				status,
				content,
				thumbnail_url,
				output_url
			FROM ad 
			ORDER BY name ASC
		`);

		const ads = result[0] || [];
		console.log(`Found ${ads.length} ads total\n`);

		for (const ad of ads) {
			console.log(`\n📌 ${ad.name} (${ad.status})`);
			console.log(`   ID: ${ad.id}`);
			console.log(`   Content ref: ${ad.content}`);
			console.log(`   Thumbnail: ${ad.thumbnail_url}`);
			console.log(`   Output URL: ${ad.output_url}`);

			// Si l'annonce a une référence content, vérifier si elle existe vraiment
			if (ad.content) {
				const contentResult = await db.query<[any[]]>(
					`SELECT * FROM $contentId`,
					{ contentId: ad.content }
				);
				const content = contentResult[0]?.[0];
				
				if (content) {
					console.log(`   ✅ Content exists:`);
					console.log(`      URL: ${content.url}`);
					console.log(`      Type: ${content.type}`);
				} else {
					console.log(`   ❌ Content reference points to non-existent record`);
					console.log(`   🔧 Cleaning up broken reference...`);
					
					// Nettoyer la référence cassée
					await db.query(
						`UPDATE $adId SET content = NONE`,
						{ adId: ad.id }
					);
					console.log(`   ✅ Broken content reference removed`);
				}
			} else {
				console.log(`   ⚠️  No content uploaded - this is a draft/empty ad`);
			}
		}

		console.log('\n✅ Check complete');
		console.log('\n💡 Pour que ces annonces affichent du contenu:');
		console.log('   1. Aller dans l\'interface de modification de l\'annonce');
		console.log('   2. Uploader une image ou vidéo');
		console.log('   3. Le système créera automatiquement le record "content"');
		
	} catch (error) {
		console.error('❌ Error:', error);
		process.exit(1);
	}
}

fixDraftAdsContent();
