/**
 * ANNOTATED COPY — every line explained
 * Source: src/lib/products.ts
 * NOT used by the app — read this to learn how the real file works
 */
// Import project module (@/ alias = src/ folder in tsconfig)
import { Product } from '@/types';
// Import from a relative file in the same project
import { IMAGES } from './images';
// (blank line — separates logical blocks for readability)
// Product catalog entry — demo data shown in shop and product pages
const P = IMAGES.products;
// (blank line — separates logical blocks for readability)
// Named export constant — shared config/data imported elsewhere
export const products: Product[] = [
  // Product catalog entry — demo data shown in shop and product pages
  {
    // Property or array item — trailing comma allowed in TypeScript
    id: 'chicken-whole',
    // Property or array item — trailing comma allowed in TypeScript
    slug: 'whole-chicken',
    // Property or array item — trailing comma allowed in TypeScript
    category: 'chicken',
    // Property or array item — trailing comma allowed in TypeScript
    price: 129,
    // Property or array item — trailing comma allowed in TypeScript
    priceUnitKey: 'perBird',
    // Property or array item — trailing comma allowed in TypeScript
    image: P['chicken-whole'],
    // Property or array item — trailing comma allowed in TypeScript
    images: [P['chicken-whole'], P['chicken-breast']],
    // Property or array item — trailing comma allowed in TypeScript
    badgeKey: 'bestseller',
    // Property or array item — trailing comma allowed in TypeScript
    inStock: true,
    // Property or array item — trailing comma allowed in TypeScript
    featured: true,
    // Property or array item — trailing comma allowed in TypeScript
    weight: '1.2–1.5 kg',
    // Property or array item — trailing comma allowed in TypeScript
    tags: ['fresh', 'whole', 'popular'],
  // Closing brace — end of block (function, if, object, JSX)
  },
  // Product catalog entry — demo data shown in shop and product pages
  {
    // Property or array item — trailing comma allowed in TypeScript
    id: 'chicken-breast',
    // Property or array item — trailing comma allowed in TypeScript
    slug: 'chicken-breast',
    // Property or array item — trailing comma allowed in TypeScript
    category: 'chicken',
    // Property or array item — trailing comma allowed in TypeScript
    price: 99,
    // Property or array item — trailing comma allowed in TypeScript
    priceUnitKey: 'perPack',
    // Property or array item — trailing comma allowed in TypeScript
    image: P['chicken-breast'],
    // Property or array item — trailing comma allowed in TypeScript
    images: [P['chicken-breast'], P['chicken-whole']],
    // Property or array item — trailing comma allowed in TypeScript
    inStock: true,
    // Property or array item — trailing comma allowed in TypeScript
    featured: true,
    // Property or array item — trailing comma allowed in TypeScript
    weight: '500g–1kg',
    // Property or array item — trailing comma allowed in TypeScript
    tags: ['fresh', 'boneless', 'lean'],
  // Closing brace — end of block (function, if, object, JSX)
  },
  // Product catalog entry — demo data shown in shop and product pages
  {
    // Property or array item — trailing comma allowed in TypeScript
    id: 'chicken-thighs',
    // Property or array item — trailing comma allowed in TypeScript
    slug: 'chicken-thighs',
    // Property or array item — trailing comma allowed in TypeScript
    category: 'chicken',
    // Property or array item — trailing comma allowed in TypeScript
    price: 85,
    // Property or array item — trailing comma allowed in TypeScript
    priceUnitKey: 'perPack',
    // Property or array item — trailing comma allowed in TypeScript
    image: P['chicken-thighs'],
    // Property or array item — trailing comma allowed in TypeScript
    images: [P['chicken-thighs']],
    // Property or array item — trailing comma allowed in TypeScript
    inStock: true,
    // Property or array item — trailing comma allowed in TypeScript
    featured: false,
    // Property or array item — trailing comma allowed in TypeScript
    weight: '500g–1kg',
    // Property or array item — trailing comma allowed in TypeScript
    tags: ['fresh', 'juicy'],
  // Closing brace — end of block (function, if, object, JSX)
  },
  // Product catalog entry — demo data shown in shop and product pages
  {
    // Property or array item — trailing comma allowed in TypeScript
    id: 'chicken-wings',
    // Property or array item — trailing comma allowed in TypeScript
    slug: 'chicken-wings',
    // Property or array item — trailing comma allowed in TypeScript
    category: 'chicken',
    // Property or array item — trailing comma allowed in TypeScript
    price: 79,
    // Property or array item — trailing comma allowed in TypeScript
    priceUnitKey: 'perPack',
    // Property or array item — trailing comma allowed in TypeScript
    image: P['chicken-wings'],
    // Property or array item — trailing comma allowed in TypeScript
    images: [P['chicken-wings']],
    // Property or array item — trailing comma allowed in TypeScript
    inStock: true,
    // Property or array item — trailing comma allowed in TypeScript
    featured: false,
    // Property or array item — trailing comma allowed in TypeScript
    tags: ['fresh', 'party'],
  // Closing brace — end of block (function, if, object, JSX)
  },
  // Product catalog entry — demo data shown in shop and product pages
  {
    // Property or array item — trailing comma allowed in TypeScript
    id: 'beef-nihari',
    // Property or array item — trailing comma allowed in TypeScript
    slug: 'beef-for-nihari',
    // Property or array item — trailing comma allowed in TypeScript
    category: 'beef',
    // Property or array item — trailing comma allowed in TypeScript
    price: 149,
    // Property or array item — trailing comma allowed in TypeScript
    priceUnitKey: 'perKg',
    // Property or array item — trailing comma allowed in TypeScript
    image: P['beef-nihari'],
    // Property or array item — trailing comma allowed in TypeScript
    images: [P['beef-nihari'], P['beef-steak']],
    // Property or array item — trailing comma allowed in TypeScript
    badgeKey: 'chefsPick',
    // Property or array item — trailing comma allowed in TypeScript
    inStock: true,
    // Property or array item — trailing comma allowed in TypeScript
    featured: true,
    // Property or array item — trailing comma allowed in TypeScript
    weight: '1 kg',
    // Property or array item — trailing comma allowed in TypeScript
    tags: ['fresh', 'traditional'],
  // Closing brace — end of block (function, if, object, JSX)
  },
  // Product catalog entry — demo data shown in shop and product pages
  {
    // Property or array item — trailing comma allowed in TypeScript
    id: 'beef-steak',
    // Property or array item — trailing comma allowed in TypeScript
    slug: 'premium-beef-steak',
    // Property or array item — trailing comma allowed in TypeScript
    category: 'beef',
    // Property or array item — trailing comma allowed in TypeScript
    price: 229,
    // Property or array item — trailing comma allowed in TypeScript
    priceUnitKey: 'perKg',
    // Property or array item — trailing comma allowed in TypeScript
    image: P['beef-steak'],
    // Property or array item — trailing comma allowed in TypeScript
    images: [P['beef-steak'], P['beef-nihari']],
    // Property or array item — trailing comma allowed in TypeScript
    badgeKey: 'premium',
    // Property or array item — trailing comma allowed in TypeScript
    inStock: true,
    // Property or array item — trailing comma allowed in TypeScript
    featured: true,
    // Property or array item — trailing comma allowed in TypeScript
    weight: '1 kg',
    // Property or array item — trailing comma allowed in TypeScript
    tags: ['premium', 'steak'],
  // Closing brace — end of block (function, if, object, JSX)
  },
  // Product catalog entry — demo data shown in shop and product pages
  {
    // Property or array item — trailing comma allowed in TypeScript
    id: 'beef-mince',
    // Property or array item — trailing comma allowed in TypeScript
    slug: 'beef-mince',
    // Property or array item — trailing comma allowed in TypeScript
    category: 'beef',
    // Property or array item — trailing comma allowed in TypeScript
    price: 119,
    // Property or array item — trailing comma allowed in TypeScript
    priceUnitKey: 'perKg',
    // Property or array item — trailing comma allowed in TypeScript
    image: P['beef-mince'],
    // Property or array item — trailing comma allowed in TypeScript
    images: [P['beef-mince']],
    // Property or array item — trailing comma allowed in TypeScript
    inStock: true,
    // Property or array item — trailing comma allowed in TypeScript
    featured: false,
    // Property or array item — trailing comma allowed in TypeScript
    weight: '500g–1kg',
    // Property or array item — trailing comma allowed in TypeScript
    tags: ['fresh', 'mince'],
  // Closing brace — end of block (function, if, object, JSX)
  },
  // Product catalog entry — demo data shown in shop and product pages
  {
    // Property or array item — trailing comma allowed in TypeScript
    id: 'beef-boneless',
    // Property or array item — trailing comma allowed in TypeScript
    slug: 'boneless-beef-cubes',
    // Property or array item — trailing comma allowed in TypeScript
    category: 'beef',
    // Property or array item — trailing comma allowed in TypeScript
    price: 169,
    // Property or array item — trailing comma allowed in TypeScript
    priceUnitKey: 'perKg',
    // Property or array item — trailing comma allowed in TypeScript
    image: P['beef-boneless'],
    // Property or array item — trailing comma allowed in TypeScript
    images: [P['beef-boneless']],
    // Property or array item — trailing comma allowed in TypeScript
    inStock: true,
    // Property or array item — trailing comma allowed in TypeScript
    featured: false,
    // Property or array item — trailing comma allowed in TypeScript
    weight: '1 kg',
    // Property or array item — trailing comma allowed in TypeScript
    tags: ['fresh', 'boneless'],
  // Closing brace — end of block (function, if, object, JSX)
  },
  // Product catalog entry — demo data shown in shop and product pages
  {
    // Property or array item — trailing comma allowed in TypeScript
    id: 'lamb-shoulder',
    // Property or array item — trailing comma allowed in TypeScript
    slug: 'lamb-shoulder',
    // Property or array item — trailing comma allowed in TypeScript
    category: 'lamb',
    // Property or array item — trailing comma allowed in TypeScript
    price: 189,
    // Property or array item — trailing comma allowed in TypeScript
    priceUnitKey: 'perKg',
    // Property or array item — trailing comma allowed in TypeScript
    image: P['lamb-shoulder'],
    // Property or array item — trailing comma allowed in TypeScript
    images: [P['lamb-shoulder'], P['lamb-leg']],
    // Property or array item — trailing comma allowed in TypeScript
    badgeKey: 'popular',
    // Property or array item — trailing comma allowed in TypeScript
    inStock: true,
    // Property or array item — trailing comma allowed in TypeScript
    featured: true,
    // Property or array item — trailing comma allowed in TypeScript
    weight: '1 kg',
    // Property or array item — trailing comma allowed in TypeScript
    tags: ['fresh', 'traditional'],
  // Closing brace — end of block (function, if, object, JSX)
  },
  // Product catalog entry — demo data shown in shop and product pages
  {
    // Property or array item — trailing comma allowed in TypeScript
    id: 'lamb-leg',
    // Property or array item — trailing comma allowed in TypeScript
    slug: 'lamb-leg',
    // Property or array item — trailing comma allowed in TypeScript
    category: 'lamb',
    // Property or array item — trailing comma allowed in TypeScript
    price: 219,
    // Property or array item — trailing comma allowed in TypeScript
    priceUnitKey: 'perKg',
    // Property or array item — trailing comma allowed in TypeScript
    image: P['lamb-leg'],
    // Property or array item — trailing comma allowed in TypeScript
    images: [P['lamb-leg']],
    // Property or array item — trailing comma allowed in TypeScript
    inStock: true,
    // Property or array item — trailing comma allowed in TypeScript
    featured: true,
    // Property or array item — trailing comma allowed in TypeScript
    weight: '1–2 kg',
    // Property or array item — trailing comma allowed in TypeScript
    tags: ['premium', 'roast'],
  // Closing brace — end of block (function, if, object, JSX)
  },
  // Product catalog entry — demo data shown in shop and product pages
  {
    // Property or array item — trailing comma allowed in TypeScript
    id: 'lamb-chops',
    // Property or array item — trailing comma allowed in TypeScript
    slug: 'lamb-chops',
    // Property or array item — trailing comma allowed in TypeScript
    category: 'lamb',
    // Property or array item — trailing comma allowed in TypeScript
    price: 249,
    // Property or array item — trailing comma allowed in TypeScript
    priceUnitKey: 'perKg',
    // Property or array item — trailing comma allowed in TypeScript
    image: P['lamb-chops'],
    // Property or array item — trailing comma allowed in TypeScript
    images: [P['lamb-chops']],
    // Property or array item — trailing comma allowed in TypeScript
    badgeKey: 'premium',
    // Property or array item — trailing comma allowed in TypeScript
    inStock: true,
    // Property or array item — trailing comma allowed in TypeScript
    featured: false,
    // Property or array item — trailing comma allowed in TypeScript
    weight: '500g',
    // Property or array item — trailing comma allowed in TypeScript
    tags: ['premium', 'grill'],
  // Closing brace — end of block (function, if, object, JSX)
  },
  // Product catalog entry — demo data shown in shop and product pages
  {
    // Property or array item — trailing comma allowed in TypeScript
    id: 'lamb-mince',
    // Property or array item — trailing comma allowed in TypeScript
    slug: 'lamb-mince',
    // Property or array item — trailing comma allowed in TypeScript
    category: 'lamb',
    // Property or array item — trailing comma allowed in TypeScript
    price: 159,
    // Property or array item — trailing comma allowed in TypeScript
    priceUnitKey: 'perKg',
    // Property or array item — trailing comma allowed in TypeScript
    image: P['lamb-mince'],
    // Property or array item — trailing comma allowed in TypeScript
    images: [P['lamb-mince']],
    // Property or array item — trailing comma allowed in TypeScript
    inStock: true,
    // Property or array item — trailing comma allowed in TypeScript
    featured: false,
    // Property or array item — trailing comma allowed in TypeScript
    weight: '500g–1kg',
    // Property or array item — trailing comma allowed in TypeScript
    tags: ['fresh', 'mince'],
  // Closing brace — end of block (function, if, object, JSX)
  },
  // Product catalog entry — demo data shown in shop and product pages
  {
    // Property or array item — trailing comma allowed in TypeScript
    id: 'fish-salmon',
    // Property or array item — trailing comma allowed in TypeScript
    slug: 'atlantic-salmon-fillet',
    // Property or array item — trailing comma allowed in TypeScript
    category: 'fish',
    // Property or array item — trailing comma allowed in TypeScript
    price: 199,
    // Property or array item — trailing comma allowed in TypeScript
    priceUnitKey: 'perKg',
    // Property or array item — trailing comma allowed in TypeScript
    image: P['fish-salmon'],
    // Property or array item — trailing comma allowed in TypeScript
    images: [P['fish-salmon'], P['fish-rohu']],
    // Property or array item — trailing comma allowed in TypeScript
    badgeKey: 'freshCatch',
    // Property or array item — trailing comma allowed in TypeScript
    inStock: true,
    // Property or array item — trailing comma allowed in TypeScript
    featured: true,
    // Property or array item — trailing comma allowed in TypeScript
    weight: '500g',
    // Property or array item — trailing comma allowed in TypeScript
    tags: ['fresh', 'fillet'],
  // Closing brace — end of block (function, if, object, JSX)
  },
  // Product catalog entry — demo data shown in shop and product pages
  {
    // Property or array item — trailing comma allowed in TypeScript
    id: 'fish-rohu',
    // Property or array item — trailing comma allowed in TypeScript
    slug: 'rohu-fish',
    // Property or array item — trailing comma allowed in TypeScript
    category: 'fish',
    // Property or array item — trailing comma allowed in TypeScript
    price: 119,
    // Property or array item — trailing comma allowed in TypeScript
    priceUnitKey: 'perKg',
    // Property or array item — trailing comma allowed in TypeScript
    image: P['fish-rohu'],
    // Property or array item — trailing comma allowed in TypeScript
    images: [P['fish-rohu']],
    // Property or array item — trailing comma allowed in TypeScript
    inStock: true,
    // Property or array item — trailing comma allowed in TypeScript
    featured: true,
    // Property or array item — trailing comma allowed in TypeScript
    weight: '1–1.5 kg',
    // Property or array item — trailing comma allowed in TypeScript
    tags: ['fresh', 'whole'],
  // Closing brace — end of block (function, if, object, JSX)
  },
  // Product catalog entry — demo data shown in shop and product pages
  {
    // Property or array item — trailing comma allowed in TypeScript
    id: 'fish-prawns',
    // Property or array item — trailing comma allowed in TypeScript
    slug: 'jumbo-prawns',
    // Property or array item — trailing comma allowed in TypeScript
    category: 'fish',
    // Property or array item — trailing comma allowed in TypeScript
    price: 179,
    // Property or array item — trailing comma allowed in TypeScript
    priceUnitKey: 'perKg',
    // Property or array item — trailing comma allowed in TypeScript
    image: P['fish-prawns'],
    // Property or array item — trailing comma allowed in TypeScript
    images: [P['fish-prawns']],
    // Property or array item — trailing comma allowed in TypeScript
    inStock: true,
    // Property or array item — trailing comma allowed in TypeScript
    featured: false,
    // Property or array item — trailing comma allowed in TypeScript
    weight: '500g',
    // Property or array item — trailing comma allowed in TypeScript
    tags: ['fresh', 'seafood'],
  // Closing brace — end of block (function, if, object, JSX)
  },
  // Product catalog entry — demo data shown in shop and product pages
  {
    // Property or array item — trailing comma allowed in TypeScript
    id: 'fish-basa',
    // Property or array item — trailing comma allowed in TypeScript
    slug: 'basa-fillet',
    // Property or array item — trailing comma allowed in TypeScript
    category: 'fish',
    // Property or array item — trailing comma allowed in TypeScript
    price: 109,
    // Property or array item — trailing comma allowed in TypeScript
    priceUnitKey: 'perKg',
    // Property or array item — trailing comma allowed in TypeScript
    image: P['fish-basa'],
    // Property or array item — trailing comma allowed in TypeScript
    images: [P['fish-basa']],
    // Property or array item — trailing comma allowed in TypeScript
    inStock: true,
    // Property or array item — trailing comma allowed in TypeScript
    featured: false,
    // Property or array item — trailing comma allowed in TypeScript
    weight: '500g',
    // Property or array item — trailing comma allowed in TypeScript
    tags: ['fresh', 'fillet', 'mild'],
  // Closing brace — end of block (function, if, object, JSX)
  },
// End of array literal
];
// (blank line — separates logical blocks for readability)
// Named export — utility function other files can import
export function getProductBySlug(slug: string): Product | undefined {
  // Return value from function
  return products.find((p) => p.slug === slug);
// Closing brace — end of block (function, if, object, JSX)
}
// (blank line — separates logical blocks for readability)
// Named export — utility function other files can import
export function getProductsByCategory(category: string): Product[] {
  // Return value from function
  return products.filter((p) => p.category === category);
// Closing brace — end of block (function, if, object, JSX)
}
// (blank line — separates logical blocks for readability)
// Named export — utility function other files can import
export function getFeaturedProducts(): Product[] {
  // Return value from function
  return products.filter((p) => p.featured);
// Closing brace — end of block (function, if, object, JSX)
}
