- Ya
- 24 Agosti 2026, 22:09 UTC
- Mwandishi
- Kamo
- Ahadi ya
- 3797e1e
requiredService becomes total now that each vertical has a child app under ServiceType.POS, which deletes the "null means POS alone is enough" special case and isGated() with it. Each vertical can now be switched on, licensed and PHI-classified independently — which is what lets a medical practice use commerce at all, since RETAIL stays blocked for a PHI tenant while the rest of commerce does not. HEALTHCARE(ServiceType.EHR) is what makes the EHR appear at **************** when the app is on, with no new gating code: assertCommerceTypeAllowed, getAllowedCommerceTypes, the allowed-types endpoint behind both market pickers, **************** and the market list filter all already resolve through getRequiredService(). NOT PUSHED until the KamoInitializer backfill has run. assertCommerceTypeAllowed reads getRequiredService() directly, so the moment SecurityService sees this every org with a retail or rental market needs a child OrgFeature row it does not have yet.