/**
 * Microsoft 365 SKU 友好显示名映射
 *
 * Graph `/subscribedSkus` 只返回 `skuId` (UUID) + `skuPartNumber` (如 "ENTERPRISEPACK")，
 * 没有人类可读的产品名。本表覆盖常见 SKU；缺失时调用方应降级用 `skuPartNumber` 兜底。
 *
 * 完整映射: https://learn.microsoft.com/en-us/azure/active-directory/enterprise-users/licensing-service-plan-reference
 */
export const SKU_DISPLAY_NAMES: Record<string, string> = {
  ENTERPRISEPACK: 'Microsoft 365 E3',
  ENTERPRISEPREMIUM: 'Microsoft 365 E5',
  ENTERPRISEPREMIUM_NOPSTNCONF: 'Microsoft 365 E5 (no audio conferencing)',
  STANDARDPACK: 'Microsoft 365 E1',
  DESKLESSPACK: 'Microsoft 365 F1',
  SPB: 'Microsoft 365 Business Premium',
  O365_BUSINESS_ESSENTIALS: 'Microsoft 365 Business Basic',
  O365_BUSINESS_PREMIUM: 'Microsoft 365 Business Standard',
  EMS: 'Enterprise Mobility + Security E3',
  EMSPREMIUM: 'Enterprise Mobility + Security E5',
  POWER_BI_PRO: 'Power BI Pro',
  POWER_BI_STANDARD: 'Power BI (Free)',
  PROJECTPROFESSIONAL: 'Project Plan 3',
  PROJECTPREMIUM: 'Project Plan 5',
  VISIOCLIENT: 'Visio Plan 2',
  EXCHANGESTANDARD: 'Exchange Online (Plan 1)',
  EXCHANGEENTERPRISE: 'Exchange Online (Plan 2)',
  TEAMS_EXPLORATORY: 'Teams Exploratory',
  ATP_ENTERPRISE: 'Microsoft Defender for Office 365 (Plan 1)',
  THREAT_INTELLIGENCE: 'Microsoft Defender for Office 365 (Plan 2)',
  AAD_PREMIUM: 'Microsoft Entra ID P1',
  AAD_PREMIUM_P2: 'Microsoft Entra ID P2',
  INTUNE_A: 'Microsoft Intune',
};

export function resolveLicenseDisplayName(skuPartNumber: string): string {
  return SKU_DISPLAY_NAMES[skuPartNumber] ?? skuPartNumber;
}
