export type PlatformAdminUserInfo = {
  role_id?: number;
  roles?: { id?: number };
} | null | undefined;

/** 超级管理员、系统管理员（role_id 1/2） */
export function isPlatformSuperAdmin(userInfo: PlatformAdminUserInfo): boolean {
  const roleId = Number(userInfo?.role_id ?? userInfo?.roles?.id);
  return roleId === 1 || roleId === 2;
}

/** 是否可编辑医生卡片中的 service_user 及资料写操作 */
export function canEditDoctorServiceUser(userInfo: PlatformAdminUserInfo): boolean {
  return isPlatformSuperAdmin(userInfo);
}

/** 是否可管理诊所银行卡报备入口 */
export function canManageStoreBankCard(userInfo: PlatformAdminUserInfo): boolean {
  return isPlatformSuperAdmin(userInfo);
}

/**
 * 是否可在诊所页/诊所详情发起「添加医生」操作
 * 角色：1 超级管理员 / 2 系统管理员 / 3 省经理 / 4 市经理 / 6 业务员
 * 数据范围由后端 StoreService::assertCanViewStore 兜底校验
 */
export function canAddStoreDoctor(userInfo: PlatformAdminUserInfo): boolean {
  const roleId = Number(userInfo?.role_id ?? userInfo?.roles?.id);
  return [1, 2, 3, 4, 6].includes(roleId);
}
