import { cache } from "react";

import { createAdminClient } from "@/lib/supabase-admin";

import type { AjustesDaLoja } from "../ajustes";
import { corDeDestaque } from "../aparencia";
import { lerAjustesDigitais } from "./vitrine";

/*
 * Os ajustes dos digitais lidos uma vez por pedido: o invólucro da área de
 * membros (layout) e a página pedem os mesmos, e o banco só é consultado uma
 * vez.
 */
export const ajustesDosDigitais = cache((lojaId: string): Promise<AjustesDaLoja> => lerAjustesDigitais(createAdminClient(), lojaId));

/* A cor de destaque da área: a escolhida em Configurações, senão a da loja (cor apagada vira a laranja). */
export function corDaArea(ajustes: AjustesDaLoja, perfil: { primary_color?: unknown }): string {
  return corDeDestaque(ajustes.area.cor || String(perfil.primary_color || ""));
}
