import defaultImg from '@/assets/img/defaultAbshodeh.svg' import goyImg from '@/assets/img/goyImg.svg' import mokaabImg from '@/assets/img/mokaabImg.svg' import sekkeImg from '@/assets/img/sekkeImg.svg' import parsianImg from '@/assets/img/parsianImg.svg' import venusImg from '@/assets/img/venousImg.svg' export type ProductImageSource = { file?: { src?: string | null } | null group_type?: string | null } | null | undefined function isUsableImageSrc(src?: string | null): boolean { if (!src) return false const value = src.trim() return value !== '' && value !== 'null' && value !== 'undefined' } export function getProductFallbackImage(product?: ProductImageSource): string { const type = (product?.group_type ?? '').trim() if (!type) return defaultImg const exactMap: Record = { گوی: goyImg, مکعب: mokaabImg, سکه: sekkeImg, 'شمش ونوس': venusImg, 'سکه پارسیان': parsianImg, شمش: defaultImg, آبشده: defaultImg, } if (exactMap[type]) return exactMap[type] if (type.includes('پارسیان')) return parsianImg if (type.includes('ونوس')) return venusImg if (type.includes('گوی')) return goyImg if (type.includes('مکعب')) return mokaabImg if (type.includes('سکه')) return sekkeImg if (type.includes('شمش')) return defaultImg return defaultImg } export function resolveProductImageSrc(product?: ProductImageSource): string { const remoteSrc = product?.file?.src if (isUsableImageSrc(remoteSrc)) { return remoteSrc!.trim() } return getProductFallbackImage(product) }