/**
 * Composable para gestionar colores de categorías de intensidades
 * Define una paleta de 8 colores coordinados (con variantes light/dark)
 */

export type CategoriaIntensidad =
  | 'fragancia'
  | 'aroma'
  | 'sabor'
  | 'saborResidual'
  | 'acidez'
  | 'dulzor'
  | 'sensacionBoca'
  | 'impresionGlobal'

interface ColorPalette {
  light: string
  dark: string
}

// Paleta de colores coordinados para cada categoría
const CATEGORY_COLORS: Record<CategoriaIntensidad, ColorPalette> = {
  fragancia: {
    light: '#8B7AB8', // Lavanda
    dark: '#B39DDB',
  },
  aroma: {
    light: '#26A69A', // Verde Menta
    dark: '#4DB6AC',
  },
  sabor: {
    light: '#E53935', // Rojo Carmesí
    dark: '#EF5350',
  },
  saborResidual: {
    light: '#F57C00', // Naranja
    dark: '#FF9800',
  },
  acidez: {
    light: '#FDD835', // Amarillo Limón
    dark: '#FFEB3B',
  },
  dulzor: {
    light: '#EC407A', // Rosa Magenta
    dark: '#F06292',
  },
  sensacionBoca: {
    light: '#1E88E5', // Azul
    dark: '#42A5F5',
  },
  impresionGlobal: {
    light: '#00ACC1', // Turquesa
    dark: '#26C6DA',
  },
}

export const useCategoryColors = () => {
  const colorMode = useColorMode()
  const isDark = computed(() => colorMode.value === 'dark')

  /**
   * Obtiene el color de una categoría según el tema actual
   */
  const getCategoryColor = (category: CategoriaIntensidad): string => {
    return isDark.value
      ? CATEGORY_COLORS[category].dark
      : CATEGORY_COLORS[category].light
  }

  /**
   * Obtiene ambas variantes de color de una categoría
   */
  const getCategoryColorPalette = (category: CategoriaIntensidad): ColorPalette => {
    return CATEGORY_COLORS[category]
  }

  return {
    getCategoryColor,
    getCategoryColorPalette,
  }
}
