/**
 * BigCommerce product image fields — mirrors sbend search indexing
 * (BigCommerceController.prepareProductSave) and cron AI ES import.
 * Search `image` / `product_images` → ES `imageUrl` / `productImages`.
 */

type BcImageRecord = {
	url_standard?: string | null;
	url_thumbnail?: string | null;
	is_thumbnail?: boolean;
};

export function bigCommerceImageUrlFromRecord(productImg: BcImageRecord | null | undefined): string {
	if (!productImg || typeof productImg !== 'object') return '';
	const url = productImg.url_standard ?? productImg.url_thumbnail;
	return url != null && String(url).trim() !== '' ? String(url).trim() : '';
}

export function resolveBigCommerceProductImages(product: {
	images?: BcImageRecord[] | null;
}): { imageUrl: string; productImages: string[] } {
	let imageUrl = '';
	const productImages: string[] = [];
	const images = product?.images;

	if (images && images.length > 0) {
		for (let i = 0; i < images.length; i++) {
			const productImg = images[i];
			const url = bigCommerceImageUrlFromRecord(productImg);
			if (url) {
				productImages.push(url);
			}
			if (productImg?.is_thumbnail && url) {
				imageUrl = url;
			}
		}
	}

	return { imageUrl, productImages };
}
