export type CatalogLayoutModeConfig = 'grid' | 'large-grid' | 'compact-grid' | 'grid-2' | 'grid-3' | 'grid-4' | 'compact' | 'list';
export type CatalogNavigationModeConfig = 'default' | 'left-category-navigation' | 'mega-category-layout' | 'top-category-carousel';
export type CatalogLoadingStrategy = 'pagination' | 'loadMore' | 'infiniteScroll';

export interface CatalogConfig {
  layout?: CatalogLayoutModeConfig;
  loadingStrategy?: CatalogLoadingStrategy;
  navigationMode?: CatalogNavigationModeConfig;
  defaultSort?: 'relevance' | 'latest' | 'price_asc' | 'price_desc' | 'rating' | 'popular' | 'discount';
  availableSorts?: Array<'relevance' | 'latest' | 'price_asc' | 'price_desc' | 'rating' | 'popular' | 'discount'>;
  enabledFilters?: string[];
  showBreadcrumbs?: boolean;
  showCategoryBanner?: boolean;
  showSubcategoryChips?: boolean;
  showRatings?: boolean;
  showDiscounts?: boolean;
  showAvailability?: boolean;
  suggestionsEnabled?: boolean;
  searchHistoryEnabled?: boolean;
}

export const DEFAULT_CATALOG_CONFIG: Required<CatalogConfig> = {
  layout: 'grid-4',
  loadingStrategy: 'pagination',
  navigationMode: 'default',
  defaultSort: 'relevance',
  availableSorts: ['relevance', 'latest', 'price_asc', 'price_desc', 'rating', 'popular', 'discount'],
  enabledFilters: ['price', 'availability', 'rating', 'brand', 'category', 'subcategory', 'discount', 'new', 'color', 'size', 'attributes'],
  showBreadcrumbs: true,
  showCategoryBanner: true,
  showSubcategoryChips: true,
  showRatings: true,
  showDiscounts: true,
  showAvailability: true,
  suggestionsEnabled: true,
  searchHistoryEnabled: true
};
