import { SubscriptionPlan } from '../value-objects/subscription-plan.vo'; export const PLATFORM_ADMIN_ROLE = 'ADMIN'; /** * Offre effective d'un utilisateur. * * Un compte ADMIN dispose de l'offre Platinium quelle que soit celle de son * organisation : c'est deja ce que renvoie l'apercu d'abonnement, donc ce que * lit toute l'interface (badge d'offre, licences illimitees, absence * d'echeance). * * Cette regle vivait uniquement dans `SubscriptionService`. L'assistant, qui * lisait l'abonnement brut, appliquait donc le quota Bronze de l'organisation a * un administrateur a qui le produit affichait « Platinium » partout ailleurs. * La regle est ici pour qu'un seul endroit la porte et que les deux lectures ne * puissent plus diverger. * * @param role Role de l'utilisateur, tel qu'il figure dans le JWT. * @param plan Offre de l'organisation, ou `null` sans abonnement exploitable. */ export function effectivePlan( role: string | undefined, plan: SubscriptionPlan | null ): SubscriptionPlan { if (role === PLATFORM_ADMIN_ROLE) return SubscriptionPlan.platinium(); return plan ?? SubscriptionPlan.bronze(); }