export interface ProductVariant {
  id: string;
  name: string;
  value: string;
  available: boolean;
}

export interface Product {
  id: string;
  slug: string;
  name: string;
  shortDescription: string;
  description: string;
  category: string;
  collection: string;
  brand: string;
  ageRange: string;
  price: number | null;
  compareAtPrice: number | null;
  currency: string;
  priceLabel: string;
  available: boolean;
  featured: boolean;
  isNew: boolean;
  image: string;
  thumbnail: string;
  images: string[];
  tags: string[];
  variants: ProductVariant[];
}

export interface ProductFilters {
  query?: string;
  category?: string;
  collection?: string;
  brand?: string;
  ageRange?: string;
  minPrice?: number;
  maxPrice?: number;
}

export interface CatalogProvider {
  getProducts(filters?: ProductFilters): Promise<Product[]>;
  getProductBySlug(slug: string): Promise<Product | null>;
  searchProducts(query: string, limit?: number): Promise<Product[]>;
}
