export interface WishlistFeatureConfig {
  enabled?: boolean;
  headerBadgeEnabled?: boolean;
}

export interface CompareFeatureConfig {
  enabled?: boolean;
  maxItems?: number;
  hideIdenticalDefault?: boolean;
  highlightDifferencesDefault?: boolean;
}

export interface RecentlyViewedFeatureConfig {
  enabled?: boolean;
  maxItems?: number;
  widgetEnabled?: boolean;
}

export interface ShareFeatureConfig {
  enabled?: boolean;
}

export interface ContinueBrowsingFeatureConfig {
  enabled?: boolean;
}

export interface SavedSearchesFeatureConfig {
  enabled?: boolean;
  maxItems?: number;
}

export interface UserExperienceConfig {
  wishlist?: WishlistFeatureConfig;
  compare?: CompareFeatureConfig;
  recentlyViewed?: RecentlyViewedFeatureConfig;
  share?: ShareFeatureConfig;
  continueBrowsing?: ContinueBrowsingFeatureConfig;
  savedSearches?: SavedSearchesFeatureConfig;
}

export const DEFAULT_USER_EXPERIENCE_CONFIG: Required<UserExperienceConfig> = {
  wishlist: {
    enabled: true,
    headerBadgeEnabled: true
  },
  compare: {
    enabled: true,
    maxItems: 4,
    hideIdenticalDefault: false,
    highlightDifferencesDefault: true
  },
  recentlyViewed: {
    enabled: true,
    maxItems: 12,
    widgetEnabled: true
  },
  share: {
    enabled: true
  },
  continueBrowsing: {
    enabled: true
  },
  savedSearches: {
    enabled: true,
    maxItems: 10
  }
};
