/**
 * ANNOTATED COPY — every line explained
 * Source: src/types/index.ts
 * NOT used by the app — read this to learn how the real file works
 */
// Export TypeScript type — defines data shape used across the app
export type Category = 'chicken' | 'beef' | 'lamb' | 'fish';
// (blank line — separates logical blocks for readability)
// Export TypeScript type — defines data shape used across the app
export type CutCount = 4 | 8 | 10 | 12;
// (blank line — separates logical blocks for readability)
// Export TypeScript type — defines data shape used across the app
export type CuttingStyleKey = 'nihari' | 'karahi' | 'qeema' | 'boneless' | 'steak';
// (blank line — separates logical blocks for readability)
// Export TypeScript type — defines data shape used across the app
export type MeatCategory = 'chicken' | 'beef' | 'lamb';
// (blank line — separates logical blocks for readability)
// Export TypeScript type — defines data shape used across the app
export interface MeatCustomization {
  // Line 10: type: MeatCategory;
  type: MeatCategory;
  // Line 11: cuts: CutCount;
  cuts: CutCount;
  // Line 12: cuttingStyle: CuttingStyleKey;
  cuttingStyle: CuttingStyleKey;
// Closing brace — end of block (function, if, object, JSX)
}
// (blank line — separates logical blocks for readability)
// Export TypeScript type — defines data shape used across the app
export type ProductCustomization = MeatCustomization | { type: 'fish' };
// (blank line — separates logical blocks for readability)
// Named export — utility function other files can import
export function isMeatCustomization(
  // Line 18: customization: ProductCustomization
  customization: ProductCustomization
// Line 19: ): customization is MeatCustomization {
): customization is MeatCustomization {
  // Return value from function
  return customization.type !== 'fish';
// Closing brace — end of block (function, if, object, JSX)
}
// (blank line — separates logical blocks for readability)
// Export TypeScript type — defines data shape used across the app
export type PriceUnitKey = 'perBird' | 'perPack' | 'perKg';
// Export TypeScript type — defines data shape used across the app
export type BadgeKey = 'bestseller' | 'chefsPick' | 'premium' | 'popular' | 'freshCatch';
// (blank line — separates logical blocks for readability)
// Export TypeScript type — defines data shape used across the app
export interface Product {
  // Line 27: id: string;
  id: string;
  // Line 28: slug: string;
  slug: string;
  // Line 29: category: Category;
  category: Category;
  // Line 30: price: number;
  price: number;
  // Line 31: priceUnitKey: PriceUnitKey;
  priceUnitKey: PriceUnitKey;
  // Line 32: image: string;
  image: string;
  // Line 33: images: string[];
  images: string[];
  // Line 34: badgeKey?: BadgeKey;
  badgeKey?: BadgeKey;
  // Line 35: inStock: boolean;
  inStock: boolean;
  // Line 36: featured: boolean;
  featured: boolean;
  // Line 37: weight?: string;
  weight?: string;
  // Line 38: tags: string[];
  tags: string[];
// Closing brace — end of block (function, if, object, JSX)
}
// (blank line — separates logical blocks for readability)
// Export TypeScript type — defines data shape used across the app
export interface CartItem {
  // Line 42: id: string;
  id: string;
  // Line 43: product: Product;
  product: Product;
  // Line 44: quantity: number;
  quantity: number;
  // Line 45: customization: ProductCustomization;
  customization: ProductCustomization;
  // Line 46: customizationLabel: string;
  customizationLabel: string;
// Closing brace — end of block (function, if, object, JSX)
}
// (blank line — separates logical blocks for readability)
// Export TypeScript type — defines data shape used across the app
export interface User {
  // Line 50: id: string;
  id: string;
  // Line 51: name: string;
  name: string;
  // Line 52: email: string;
  email: string;
  // Line 53: phone: string;
  phone: string;
  // Line 54: address: Address;
  address: Address;
  // Line 55: createdAt: string;
  createdAt: string;
// Closing brace — end of block (function, if, object, JSX)
}
// (blank line — separates logical blocks for readability)
// Export TypeScript type — defines data shape used across the app
export interface Address {
  // Line 59: street: string;
  street: string;
  // Line 60: city: string;
  city: string;
  // Line 61: state: string;
  state: string;
  // Line 62: zip: string;
  zip: string;
// Closing brace — end of block (function, if, object, JSX)
}
// (blank line — separates logical blocks for readability)
// Export TypeScript type — defines data shape used across the app
export interface Order {
  // Line 66: id: string;
  id: string;
  // Line 67: items: CartItem[];
  items: CartItem[];
  // Line 68: total: number;
  total: number;
  // Line 69: status: 'pending' | 'confirmed' | 'preparing' | 'out-for-...
  status: 'pending' | 'confirmed' | 'preparing' | 'out-for-delivery' | 'delivered';
  // Line 70: createdAt: string;
  createdAt: string;
  // Line 71: deliveryAddress: Address;
  deliveryAddress: Address;
  // Line 72: paymentMethod: string;
  paymentMethod: string;
// Closing brace — end of block (function, if, object, JSX)
}
// (blank line — separates logical blocks for readability)
// Export TypeScript type — defines data shape used across the app
export type SortOption = 'featured' | 'price-asc' | 'price-desc' | 'name';
// (blank line — separates logical blocks for readability)
// Export TypeScript type — defines data shape used across the app
export type OfferBadgeKey = 'fresh' | 'halal';
// (blank line — separates logical blocks for readability)
// Export TypeScript type — defines data shape used across the app
export interface WeeklyOffer {
  // Line 80: id: string;
  id: string;
  // Line 81: nameKey: string;
  nameKey: string;
  // Line 82: badgeKey: OfferBadgeKey;
  badgeKey: OfferBadgeKey;
  // Line 83: price: number;
  price: number;
  // Line 84: originalPrice?: number;
  originalPrice?: number;
  // Line 85: priceUnitKey: PriceUnitKey;
  priceUnitKey: PriceUnitKey;
  // Line 86: image: string;
  image: string;
  // Line 87: whatsappProduct: string;
  whatsappProduct: string;
  // Line 88: productSlug: string;
  productSlug: string;
// Closing brace — end of block (function, if, object, JSX)
}
