import { preferencesManager } from '@vben/preferences';

/** 公司品牌信息（与后端 system_company_config 表字段对应） */
export interface CompanyConfigData {
  companyName?: string;
  logoUrl?: string;
  loginTitle?: string;
  loginDescription?: string;
}

/**
 * 将公司品牌信息应用到全局：
 * - 公司名 → preferences.app.name / copyright.companyName（联动菜单栏、登录页、网页标题、版权）
 * - logo → preferences.logo.source（联动登录页、侧边栏 logo）
 * - 有公司名时，设置 document.title（基础标题，dynamicTitle 开启时路由标题在此基础上拼接）
 */
export function applyCompanyConfig(config: CompanyConfigData) {
  const updates: Record<string, any> = {};
  if (config.logoUrl) {
    updates.logo = { source: config.logoUrl };
    // 同步网页标题图标（favicon）为上传的 logo
    const faviconLink = document.querySelector('link[rel="icon"]');
    faviconLink?.setAttribute('href', config.logoUrl);
  }
  if (config.companyName) {
    updates.app = { name: config.companyName };
    updates.copyright = { companyName: config.companyName };
  }
  if (Object.keys(updates).length > 0) {
    preferencesManager.updatePreferences(updates);
  }
  if (config.companyName) {
    document.title = config.companyName;
  }
}
