export interface Category {
  id: string
  name: string
  slug: string
  description: string | null
  icon: string | null
  color: string | null
  order: number
  productCount?: number
}

export interface Product {
  id: string
  name: string
  code: string
  slug: string
  description: string | null
  benefits: string | null
  ingredients: string | null
  volume: string | null
  fragrance: string | null
  activeIngredient: string | null
  price: number
  promotionalPrice: number | null
  discountPercent: number | null
  page: number
  image: string | null
  isLaunch: boolean
  isBestseller: boolean
  isLowerPriceYear: boolean
  isKit: boolean
  isCombo: boolean
  rating: number
  reviewCount: number
  categoryId: string
  category?: Category
}

export interface Kit {
  id: string
  name: string
  code: string
  description: string | null
  price: number
  promotionalPrice: number | null
  discountPercent: number | null
  page: number
  image: string | null
  savings: string | null
}

export interface FeaturedData {
  launches: Product[]
  bestsellers: Product[]
  lowerPrice: Product[]
  promos: Product[]
  kits: Kit[]
  fragrances: string[]
  actives: string[]
}

export type ViewType =
  | 'home'
  | 'category'
  | 'product'
  | 'flipbook'
  | 'search'
  | 'favorites'
  | 'admin'
  | 'kits'

export interface FilterState {
  category: string
  search: string
  code: string
  isLaunch: boolean
  isPromo: boolean
  isLowerPrice: boolean
  isBestseller: boolean
  fragrance: string
  activeIngredient: string
  minPrice: string
  maxPrice: string
  sort: string
}
