swiftlocal / src /data.ts
Joedroid's picture
feat: product image gallery, zoom, video support, detail modal
b9ab1c1
Raw
History Blame Contribute Delete
22.9 kB
import { Product } from './types';
// Seller IDs (must match seed sellers in db.ts)
const S = {
osuKitchen: 'SEL-osu-kitchen',
accraGold: 'SEL-accra-gold',
cantonments: 'SEL-cantonments',
madina: 'SEL-madina-pharm',
techHub: 'SEL-tech-hub',
fashionista: 'SEL-fashionista',
freshFarm: 'SEL-fresh-farm',
babyWorld: 'SEL-baby-world',
};
export const LOCAL_PRODUCTS: Product[] = [
// ═══════════════════════════════════════════════════════════════
// GROCERIES (stable shelf life)
// ═══════════════════════════════════════════════════════════════
{ id: 'g-1', name: 'Fresh Organic Mangoes (Pack of 3)', category: 'Groceries', price: 4.50, description: 'Sweet, sun-ripened local mangoes sourced daily from community orchards.', image: 'πŸ₯­', stock: 25, rating: 4.8, country: 'all', sellerId: S.freshFarm, sellerName: 'Fresh Farm Accra', perishable: true, shelfLife: 'short_life', shelfLifeHours: 120, weight: 1.2 },
{ id: 'g-2', name: 'Large Hass Avocados (Pack of 2)', category: 'Groceries', price: 3.00, description: 'Rich, creamy avocados perfect for guacamole, salads, or spreading on toast.', image: 'πŸ₯‘', stock: 40, rating: 4.7, country: 'all', sellerId: S.freshFarm, sellerName: 'Fresh Farm Accra', perishable: true, shelfLife: 'short_life', shelfLifeHours: 96, weight: 0.6 },
{ id: 'g-3', name: 'Premium Long Grain Rice (5kg)', category: 'Groceries', price: 12.00, description: 'High-quality fragrant long grain rice, triple-polished and clean.', image: '🌾', stock: 15, rating: 4.5, country: 'all', sellerId: S.accraGold, sellerName: 'Accra Gold Cocoa & Foods', shelfLife: 'stable', weight: 5.0 },
{ id: 'g-4', name: 'Fresh Whole Milk (1L Bottle)', category: 'Groceries', price: 2.20, description: 'Pasteurized farm-fresh whole milk sourced from local family dairies.', image: 'πŸ₯›', stock: 30, rating: 4.6, country: 'all', sellerId: S.freshFarm, sellerName: 'Fresh Farm Accra', perishable: true, shelfLife: 'perishable', shelfLifeHours: 72, requiresColdChain: true, weight: 1.1 },
{ id: 'g-5', name: 'Ghana Kingsbite Chocolate Bar', category: 'Groceries', price: 3.50, description: 'Premium cocoa chocolate bar, smooth and sweet, representing the rich heritage of Ghana.', image: '🍫', stock: 30, rating: 4.9, country: 'Ghana', sellerId: S.accraGold, sellerName: 'Accra Gold Cocoa & Foods', shelfLife: 'stable', weight: 0.15 },
{ id: 'g-6', name: 'Ghanaian Sugar Bread Loaf (Sweet Bakery)', category: 'Groceries', price: 3.20, description: 'Soft, heavy, and sweet traditional Ghanaian bakery staple, perfect with butter or tea.', image: '🍞', stock: 12, rating: 4.9, country: 'Ghana', sellerId: S.osuKitchen, sellerName: 'Osu Spicy Kelewele Spot', perishable: true, shelfLife: 'short_life', shelfLifeHours: 72, weight: 0.8 },
{ id: 'g-7', name: 'Pure Palm Oil (500ml)', category: 'Groceries', price: 5.00, description: 'Unrefined red palm oil for authentic Ghanaian stews and soups.', image: 'πŸ«’', stock: 40, rating: 4.6, country: 'Ghana', sellerId: S.accraGold, sellerName: 'Accra Gold Cocoa & Foods', shelfLife: 'stable', weight: 0.6 },
{ id: 'g-8', name: 'Dried Smoked Herrings (Keta School Boys)', category: 'Groceries', price: 6.50, description: 'Traditional smoked fish, essential for Ghanaian soups and stews.', image: '🐟', stock: 20, rating: 4.7, country: 'Ghana', sellerId: S.accraGold, sellerName: 'Accra Gold Cocoa & Foods', shelfLife: 'stable', weight: 0.4 },
// ═══════════════════════════════════════════════════════════════
// LOCAL DINER (ultra-perishable cooked food)
// ═══════════════════════════════════════════════════════════════
{ id: 'f-1', name: 'Smoky Ghanaian Jollof Rice with Grilled Chicken', category: 'Local Diner', price: 9.50, description: 'Rich, aromatic smoky Ghanaian Jollof rice served with savory grilled chicken and sweet dodo plantain.', image: 'πŸ›', stock: 50, rating: 4.9, country: 'Ghana', sellerId: S.osuKitchen, sellerName: 'Osu Spicy Kelewele Spot', perishable: true, shelfLife: 'ultra_perishable', shelfLifeHours: 6, maxDeliveryHours: 2, weight: 0.8, thumbnailUrl: 'https://images.unsplash.com/photo-1604329760661-e71dc83f8f26?w=400&h=400&fit=crop', images: ['https://images.unsplash.com/photo-1604329760661-e71dc83f8f26?w=800&fit=crop', 'https://images.unsplash.com/photo-1574484284002-952d92456975?w=800&fit=crop'] },
{ id: 'f-2', name: 'Authentic Accra Waakye Combo Feast', category: 'Local Diner', price: 10.50, description: 'Traditional Ghanaian rice and beans cooked in red sorghum leaves. Served with spaghetti, boiled egg, shito pepper sauce, and gari.', image: '🍲', stock: 35, rating: 4.9, country: 'Ghana', sellerId: S.osuKitchen, sellerName: 'Osu Spicy Kelewele Spot', perishable: true, shelfLife: 'ultra_perishable', shelfLifeHours: 6, maxDeliveryHours: 2, weight: 1.0 },
{ id: 'f-3', name: 'Spiced Kelewele (Fried Plantain Cubes)', category: 'Local Diner', price: 4.00, description: 'Sweet ripe Ghanaian plantain cubes seasoned with ginger, cayenne pepper, and local cloves, fried till golden.', image: '🍌', stock: 45, rating: 4.8, country: 'Ghana', sellerId: S.osuKitchen, sellerName: 'Osu Spicy Kelewele Spot', perishable: true, shelfLife: 'ultra_perishable', shelfLifeHours: 4, maxDeliveryHours: 1.5, weight: 0.4 },
{ id: 'f-4', name: 'Charcoal Grilled Tilapia with Fresh Banku', category: 'Local Diner', price: 14.00, description: 'Sizzling whole tilapia grilled on red mahogany coals, served alongside fermented corn-cassava Banku and hot chili pepper salsa.', image: '🐟', stock: 18, rating: 4.9, country: 'Ghana', sellerId: S.osuKitchen, sellerName: 'Osu Spicy Kelewele Spot', perishable: true, shelfLife: 'ultra_perishable', shelfLifeHours: 5, maxDeliveryHours: 2, weight: 1.2 },
{ id: 'f-5', name: 'Traditional Ga Kenkey & Fried Sardine Combo', category: 'Local Diner', price: 7.50, description: 'Hot fermented corn dough dumplings wrapped in husk, served with crispy fried sardines and shito pepper.', image: '🌽', stock: 30, rating: 4.8, country: 'Ghana', sellerId: S.osuKitchen, sellerName: 'Osu Spicy Kelewele Spot', perishable: true, shelfLife: 'ultra_perishable', shelfLifeHours: 8, maxDeliveryHours: 2, weight: 0.9 },
{ id: 'f-6', name: 'Accra Red Red (Black-Eyed Beans & Fried Plantain)', category: 'Local Diner', price: 8.50, description: 'Slow-simmered zesty palm oil beans stew paired with sweet caramelized fried plantain slices.', image: 'πŸ›', stock: 20, rating: 4.9, country: 'Ghana', sellerId: S.osuKitchen, sellerName: 'Osu Spicy Kelewele Spot', perishable: true, shelfLife: 'ultra_perishable', shelfLifeHours: 6, maxDeliveryHours: 2, weight: 0.7 },
// ═══════════════════════════════════════════════════════════════
// PHARMACY & HEALTH (non-perishable / stable)
// ═══════════════════════════════════════════════════════════════
{ id: 'p-1', name: 'Paracetamol Pain Relief (24 Tablets)', category: 'Pharmacy & Health', price: 3.50, description: 'Rapid headache, fever, and muscle pain relief capsules.', image: 'πŸ’Š', stock: 100, rating: 4.7, country: 'all', sellerId: S.madina, sellerName: 'Madina Pharmacy', shelfLife: 'non_perishable', expiryDate: '2026-12-31', weight: 0.05, specs: { dosage: '500mg', type: 'tablet' } },
{ id: 'p-2', name: 'Immune Guard Vitamin C Gummies', category: 'Pharmacy & Health', price: 14.00, description: '90-pack booster gummies loaded with Vitamin C, Zinc, and Echinacea.', image: '🍊', stock: 22, rating: 4.8, country: 'all', sellerId: S.madina, sellerName: 'Madina Pharmacy', shelfLife: 'stable', expiryDate: '2025-09-15', weight: 0.3 },
{ id: 'p-3', name: 'Emergency Travel First-Aid Kit', category: 'Pharmacy & Health', price: 9.50, description: 'Compact kit with bandages, antiseptic wipes, burn ointment, and gauze.', image: '🩹', stock: 18, rating: 4.6, country: 'all', sellerId: S.madina, sellerName: 'Madina Pharmacy', shelfLife: 'non_perishable', weight: 0.5 },
{ id: 'p-4', name: 'Herbal Cough & Sinus Syrup (150ml)', category: 'Pharmacy & Health', price: 6.80, description: 'Soothing all-natural honey and eucalyptus defense syrup for throat relief.', image: 'πŸ§ͺ', stock: 35, rating: 4.4, country: 'all', sellerId: S.madina, sellerName: 'Madina Pharmacy', shelfLife: 'stable', expiryDate: '2025-11-30', weight: 0.2 },
{ id: 'p-5', name: 'Malaria Rapid Test Kit (5 Pack)', category: 'Pharmacy & Health', price: 8.00, description: 'Self-test malaria detection strips with 99% accuracy. Results in 15 minutes.', image: 'πŸ”¬', stock: 50, rating: 4.9, country: 'Ghana', sellerId: S.madina, sellerName: 'Madina Pharmacy', shelfLife: 'stable', expiryDate: '2026-06-01', weight: 0.1 },
// ═══════════════════════════════════════════════════════════════
// EVERYDAY ESSENTIALS (non-perishable)
// ═══════════════════════════════════════════════════════════════
{ id: 'e-1', name: 'Eco-Dishwashing Concentrated Liquid', category: 'Everyday Essentials', price: 3.20, description: '500ml plant-based powerful grease removal detergent gentle on hands.', image: '🧼', stock: 50, rating: 4.5, country: 'all', shelfLife: 'non_perishable', weight: 0.6 },
{ id: 'e-2', name: 'Alkaline Battery Pack (4 x AA)', category: 'Everyday Essentials', price: 4.90, description: 'Heavy duty long lasting power cells for household electronics.', image: 'πŸ”‹', stock: 75, rating: 4.6, country: 'all', shelfLife: 'non_perishable', weight: 0.15 },
{ id: 'e-3', name: 'USB-C Rechargeable LED Emergency Torch', category: 'Everyday Essentials', price: 15.00, description: 'Super bright 1000 lumen torch with built-in power-bank port.', image: 'πŸ”¦', stock: 14, rating: 4.7, country: 'all', sellerId: S.techHub, sellerName: 'TechHub Accra', shelfLife: 'non_perishable', weight: 0.3, specs: { lumens: '1000', battery: '3000mAh', charging: 'USB-C' } },
{ id: 'e-4', name: 'Triple-Plug Power Extension Cord (3m)', category: 'Everyday Essentials', price: 8.50, description: 'Thick heavy-insulated cord with safety shutters and surge overload protectors.', image: 'πŸ”Œ', stock: 20, rating: 4.8, country: 'all', sellerId: S.techHub, sellerName: 'TechHub Accra', shelfLife: 'non_perishable', weight: 0.8 },
// ═══════════════════════════════════════════════════════════════
// FRESH PRODUCE (perishable, cold chain)
// ═══════════════════════════════════════════════════════════════
{ id: 'fp-1', name: 'Fresh Tomatoes (1kg Basket)', category: 'Fresh Produce', price: 2.50, description: 'Vine-ripened local tomatoes, perfect for stews and salads.', image: 'πŸ…', stock: 60, rating: 4.6, country: 'Ghana', sellerId: S.freshFarm, sellerName: 'Fresh Farm Accra', perishable: true, shelfLife: 'short_life', shelfLifeHours: 120, weight: 1.0 },
{ id: 'fp-2', name: 'Garden Eggs (Eggplant, 6 pieces)', category: 'Fresh Produce', price: 1.80, description: 'Small white African eggplants, great for kontomire stew.', image: 'πŸ†', stock: 45, rating: 4.5, country: 'Ghana', sellerId: S.freshFarm, sellerName: 'Fresh Farm Accra', perishable: true, shelfLife: 'short_life', shelfLifeHours: 96, weight: 0.6 },
{ id: 'fp-3', name: 'Fresh Okra (500g)', category: 'Fresh Produce', price: 2.00, description: 'Tender young okra pods for soups and stews.', image: 'πŸ₯’', stock: 35, rating: 4.7, country: 'Ghana', sellerId: S.freshFarm, sellerName: 'Fresh Farm Accra', perishable: true, shelfLife: 'perishable', shelfLifeHours: 48, weight: 0.5 },
// ═══════════════════════════════════════════════════════════════
// BEVERAGES (mixed perishability)
// ═══════════════════════════════════════════════════════════════
{ id: 'bv-1', name: 'Fresh Coconut Water (500ml)', category: 'Beverages', price: 3.00, description: 'Chilled pure coconut water, straight from the shell.', image: 'πŸ₯₯', stock: 30, rating: 4.8, country: 'Ghana', sellerId: S.cantonments, sellerName: 'Cantonments Green Grocers', perishable: true, shelfLife: 'perishable', shelfLifeHours: 24, requiresColdChain: true, weight: 0.55 },
{ id: 'bv-2', name: 'Bel-Aqua Mineral Water (1.5L)', category: 'Beverages', price: 1.00, description: 'Pure mineral water, Ghana\'s trusted hydration brand.', image: 'πŸ’§', stock: 100, rating: 4.5, country: 'Ghana', shelfLife: 'non_perishable', weight: 1.5 },
{ id: 'bv-3', name: 'Sobolo Hibiscus Drink (1L)', category: 'Beverages', price: 4.50, description: 'Traditional Ghanaian hibiscus tea with ginger, cloves, and pineapple.', image: 'πŸ§ƒ', stock: 25, rating: 4.9, country: 'Ghana', sellerId: S.osuKitchen, sellerName: 'Osu Spicy Kelewele Spot', perishable: true, shelfLife: 'perishable', shelfLifeHours: 48, requiresColdChain: true, weight: 1.1 },
// ═══════════════════════════════════════════════════════════════
// ELECTRONICS (non-perishable, fragile)
// ═══════════════════════════════════════════════════════════════
{ id: 'el-1', name: 'Wireless Bluetooth Earbuds (TWS)', category: 'Electronics', price: 25.00, description: 'True wireless stereo earbuds with 24h battery life and noise cancellation.', image: '🎧', stock: 15, rating: 4.6, country: 'all', sellerId: S.techHub, sellerName: 'TechHub Accra', shelfLife: 'non_perishable', fragile: true, weight: 0.08, specs: { battery: '24h', bluetooth: '5.3', waterproof: 'IPX5' }, thumbnailUrl: 'https://images.unsplash.com/photo-1590658268037-6bf12f8e4d12?w=400&h=400&fit=crop', images: ['https://images.unsplash.com/photo-1590658268037-6bf12f8e4d12?w=800&fit=crop', 'https://images.unsplash.com/photo-1606220588913-b3aacb4d2f46?w=800&fit=crop', 'https://images.unsplash.com/photo-1572569511254-d8f925fe2cbb?w=800&fit=crop'] },
{ id: 'el-2', name: '10000mAh Power Bank (Fast Charge)', category: 'Electronics', price: 18.00, description: 'Slim portable charger with USB-C PD and dual output.', image: 'πŸ”‹', stock: 20, rating: 4.7, country: 'all', sellerId: S.techHub, sellerName: 'TechHub Accra', shelfLife: 'non_perishable', weight: 0.25, specs: { capacity: '10000mAh', output: '22.5W', ports: 'USB-C + USB-A' } },
{ id: 'el-3', name: 'Smart LED Bulb (WiFi, Color)', category: 'Electronics', price: 8.00, description: 'RGB smart bulb controllable via phone app. 16 million colors.', image: 'πŸ’‘', stock: 30, rating: 4.4, country: 'all', sellerId: S.techHub, sellerName: 'TechHub Accra', shelfLife: 'non_perishable', fragile: true, weight: 0.12, specs: { wattage: '9W', connectivity: 'WiFi 2.4GHz' } },
// ═══════════════════════════════════════════════════════════════
// FASHION & BEAUTY (non-perishable)
// ═══════════════════════════════════════════════════════════════
{ id: 'fb-1', name: 'African Print Ankara Shirt (Men)', category: 'Fashion & Beauty', price: 22.00, description: 'Vibrant wax print short-sleeve shirt, tailored fit. Made in Ghana.', image: 'πŸ‘”', stock: 12, rating: 4.8, country: 'Ghana', sellerId: S.fashionista, sellerName: 'Fashionista GH', shelfLife: 'non_perishable', weight: 0.3, specs: { material: '100% cotton wax', sizes: 'S/M/L/XL' }, thumbnailUrl: 'https://images.unsplash.com/photo-1590735213920-68192a487bc2?w=400&h=400&fit=crop', images: ['https://images.unsplash.com/photo-1590735213920-68192a487bc2?w=800&fit=crop', 'https://images.unsplash.com/photo-1594938298603-c8148c4dae35?w=800&fit=crop'] },
{ id: 'fb-2', name: 'Shea Butter Body Cream (250ml)', category: 'Fashion & Beauty', price: 5.50, description: 'Pure Ghanaian shea butter moisturizer, unrefined and organic.', image: '🧴', stock: 40, rating: 4.7, country: 'Ghana', sellerId: S.fashionista, sellerName: 'Fashionista GH', shelfLife: 'stable', weight: 0.3 },
{ id: 'fb-3', name: 'Kente Cloth Tote Bag', category: 'Fashion & Beauty', price: 15.00, description: 'Handwoven kente-accented tote bag, perfect for everyday use.', image: 'πŸ‘œ', stock: 18, rating: 4.9, country: 'Ghana', sellerId: S.fashionista, sellerName: 'Fashionista GH', shelfLife: 'non_perishable', weight: 0.4 },
// ═══════════════════════════════════════════════════════════════
// BABY & KIDS (mixed)
// ═══════════════════════════════════════════════════════════════
{ id: 'bk-1', name: 'Baby Diapers (Pack of 30, Size M)', category: 'Baby & Kids', price: 12.00, description: 'Ultra-absorbent disposable diapers with wetness indicator.', image: 'πŸ‘Ά', stock: 25, rating: 4.6, country: 'all', sellerId: S.babyWorld, sellerName: 'Baby World GH', shelfLife: 'non_perishable', weight: 1.5 },
{ id: 'bk-2', name: 'Infant Formula Milk (400g)', category: 'Baby & Kids', price: 18.00, description: 'Stage 1 infant formula with DHA and iron. 0-6 months.', image: '🍼', stock: 15, rating: 4.8, country: 'all', sellerId: S.babyWorld, sellerName: 'Baby World GH', shelfLife: 'stable', expiryDate: '2025-12-01', weight: 0.5, specs: { stage: '1 (0-6 months)', weight: '400g' } },
{ id: 'bk-3', name: 'Children\'s Coloring Book Set (4 Books)', category: 'Baby & Kids', price: 6.00, description: 'Educational coloring books with African animals and cultural themes.', image: 'πŸ–οΈ', stock: 35, rating: 4.5, country: 'Ghana', sellerId: S.babyWorld, sellerName: 'Baby World GH', shelfLife: 'non_perishable', weight: 0.6 },
// ═══════════════════════════════════════════════════════════════
// FROZEN FOODS (cold chain required)
// ═══════════════════════════════════════════════════════════════
{ id: 'fz-1', name: 'Frozen Chicken Wings (1kg)', category: 'Frozen Foods', price: 8.50, description: 'Premium frozen chicken wings, individually quick-frozen for freshness.', image: 'πŸ—', stock: 20, rating: 4.5, country: 'Ghana', sellerId: S.freshFarm, sellerName: 'Fresh Farm Accra', perishable: true, shelfLife: 'perishable', shelfLifeHours: 4, requiresColdChain: true, maxDeliveryHours: 1, weight: 1.0 },
{ id: 'fz-2', name: 'Ice Cream Tub (Vanilla, 500ml)', category: 'Frozen Foods', price: 6.00, description: 'Creamy vanilla ice cream made with real Madagascar vanilla.', image: '🍦', stock: 15, rating: 4.8, country: 'all', sellerId: S.cantonments, sellerName: 'Cantonments Green Grocers', perishable: true, shelfLife: 'ultra_perishable', shelfLifeHours: 2, requiresColdChain: true, maxDeliveryHours: 0.5, weight: 0.6, thumbnailUrl: 'https://images.unsplash.com/photo-1497034825429-c343d7c6a68f?w=400&h=400&fit=crop' },
// ═══════════════════════════════════════════════════════════════
// HOME & GARDEN (non-perishable)
// ═══════════════════════════════════════════════════════════════
{ id: 'hg-1', name: 'Indoor Potted Aloe Vera Plant', category: 'Home & Garden', price: 10.00, description: 'Live aloe vera plant in decorative ceramic pot. Air-purifying.', image: 'πŸͺ΄', stock: 10, rating: 4.7, country: 'Ghana', sellerId: S.cantonments, sellerName: 'Cantonments Green Grocers', perishable: true, shelfLife: 'short_life', shelfLifeHours: 168, fragile: true, weight: 2.0 },
{ id: 'hg-2', name: 'Mosquito Repellent Coils (10 Pack)', category: 'Home & Garden', price: 2.80, description: 'Long-lasting mosquito repellent coils for overnight protection.', image: 'πŸŒ€', stock: 80, rating: 4.3, country: 'Ghana', shelfLife: 'non_perishable', weight: 0.3 },
// ═══════════════════════════════════════════════════════════════
// AUTO & TOOLS (non-perishable)
// ═══════════════════════════════════════════════════════════════
{ id: 'at-1', name: 'Motorcycle Chain Lubricant (200ml)', category: 'Auto & Tools', price: 5.00, description: 'Heavy-duty chain lube for motorcycles. Water-resistant formula.', image: 'β›½', stock: 30, rating: 4.5, country: 'all', shelfLife: 'non_perishable', weight: 0.25 },
{ id: 'at-2', name: 'Multi-Tool Pocket Knife (12-in-1)', category: 'Auto & Tools', price: 12.00, description: 'Stainless steel folding multi-tool with pliers, knife, screwdriver, and bottle opener.', image: 'πŸ”§', stock: 15, rating: 4.6, country: 'all', sellerId: S.techHub, sellerName: 'TechHub Accra', shelfLife: 'non_perishable', weight: 0.2, specs: { tools: '12', material: 'stainless steel' } },
];