import { Product } from '@/types' import { Product as SchemaProduct, WithContext, Organization, ContactPoint, PostalAddress, BreadcrumbList, FAQPage, LocalBusiness, ItemList } from 'schema-dts' export function generateProductJsonLd(product: Product, baseUrl: string = ''): WithContext { const currentPrice = product.discount ? product.price - (product.price * product.discount / 100) : product.price const productJsonLd: WithContext = { "@context": "https://schema.org", "@type": "Product", "@id": `${baseUrl}/products/${product.slug || product.id}`, "name": product.name, "description": product.description || `Premium quality ${product.category.name} rice from Padmaaja Rasooi`, "image": product.images.map(img => `${baseUrl}${img}`), "brand": { "@type": "Brand", "name": product.brand || "Padmaaja Rasooi" }, "category": product.category.name, "sku": product.sku || product.id, "offers": { "@type": "Offer", "url": `${baseUrl}/products/${product.id}`, "priceCurrency": "INR", "price": currentPrice.toFixed(2), "priceValidUntil": new Date(Date.now() + 30 * 24 * 60 * 60 * 1000).toISOString().split('T')[0], "availability": product.stock && product.stock > 0 ? "https://schema.org/InStock" : "https://schema.org/OutOfStock", "seller": { "@type": "Organization", "name": "Padmaaja Rasooi", "url": baseUrl }, }, "aggregateRating": { "@type": "AggregateRating", "ratingValue": "4.8", "bestRating": "5", "worstRating": "1", "ratingCount": "125" } } return productJsonLd } export function generateProductListJsonLd(products: Product[], baseUrl: string = ''): WithContext { return { "@context": "https://schema.org", "@type": "ItemList", "name": "Padmaaja Rasooi Premium Rice Products", "description": "Complete collection of premium quality rice products", "numberOfItems": products.length, "itemListElement": products.map((product, index) => ({ "@type": "ListItem", "position": index + 1, "item": { "@type": "Product", "@id": `${baseUrl}/products/${product.slug || product.id}`, "name": product.name, "image": product.images[0] ? `${baseUrl}${product.images[0]}` : '', "offers": { "@type": "Offer", "priceCurrency": "INR", "price": (product.discount ? product.price - (product.price * product.discount / 100) : product.price).toFixed(2) } } })) } } export function generateOrganizationJsonLd(baseUrl: string = ''): WithContext { return { "@context": "https://schema.org", "@type": "Organization", "name": "Padmaaja Rasooi", "url": baseUrl, "logo": `${baseUrl}/images/logo.png`, "description": "Premium rice products and quality grains offering the finest quality rice sourced directly from certified farms.", "contactPoint": { "@type": "ContactPoint", "telephone": "+91-9876543210", "email": "contact@padmaajarasooi.com", "contactType": "Customer Service" }, "address": { "@type": "PostalAddress", "streetAddress": "123 Rice Market Street", "addressLocality": "Hyderabad", "addressRegion": "Telangana", "postalCode": "500001", "addressCountry": "IN" }, "sameAs": [ "https://www.facebook.com/padmaajarasooi", "https://www.instagram.com/padmaajarasooi", "https://www.linkedin.com/company/padmaajarasooi" ], "foundingDate": "2020" } } export function generateBreadcrumbJsonLd(breadcrumbs: Array<{ name: string, url: string }>, baseUrl: string = ''): WithContext { return { "@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": breadcrumbs.map((crumb, index) => ({ "@type": "ListItem", "position": index + 1, "name": crumb.name, "item": `${baseUrl}${crumb.url}` })) } } export function generateFAQJsonLd(faqs: Array<{ question: string, answer: string }>): WithContext { return { "@context": "https://schema.org", "@type": "FAQPage", "mainEntity": faqs.map(faq => ({ "@type": "Question", "name": faq.question, "acceptedAnswer": { "@type": "Answer", "text": faq.answer } })) } } export function generateLocalBusinessJsonLd(baseUrl: string = ''): WithContext { return { "@context": "https://schema.org", "@type": "LocalBusiness", "name": "Padmaaja Rasooi", "image": `${baseUrl}/images/business-photo.jpg`, "description": "Premium rice products and quality grains", "url": baseUrl, "telephone": "+91-9876543210", "email": "contact@padmaajarasooi.com", "address": { "@type": "PostalAddress", "streetAddress": "123 Rice Market Street", "addressLocality": "Hyderabad", "addressRegion": "Telangana", "postalCode": "500001", "addressCountry": "IN" }, "geo": { "@type": "GeoCoordinates", "latitude": "17.3850", "longitude": "78.4867" }, "openingHoursSpecification": [ { "@type": "OpeningHoursSpecification", "dayOfWeek": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ], "opens": "09:00", "closes": "18:00" } ], "priceRange": "₹₹" } }