(org: MembershipTierRow | null | undefined)
| 257 | * Only falls back for tier-preserving statuses (active, past_due, trialing). |
| 258 | */ |
| 259 | export function resolveMembershipTier(org: MembershipTierRow | null | undefined): MembershipTier | null { |
| 260 | if (!org) return null; |
| 261 | if (org.membership_tier) return org.membership_tier as MembershipTier; |
| 262 | if (!(TIER_PRESERVING_STATUSES as readonly string[]).includes(org.subscription_status ?? '')) return null; |
| 263 | return tierFromLookupKey(org.subscription_price_lookup_key) |
| 264 | ?? inferMembershipTier(org.subscription_amount, org.subscription_interval, org.is_personal); |
| 265 | } |
| 266 | |
| 267 | /** |
| 268 | * Read + resolve the current membership tier for `orgId` using a |
no test coverage detected