towerops/lib/towerops_web/live/org
Graham McIntire 9aec87636b
feat: per-organization billing override admin UI
Allow superadmins to override free device limits and per-device pricing
on a per-organization basis. Overrides cascade through subscription
limits, billing calculations, and user-facing settings display.

- Add custom_free_device_limit and custom_price_per_device to organizations
- Add billing_override_changeset with validation
- Update SubscriptionLimits.effective_device_limit to respect overrides
- Update Billing to use effective free count and price per device
- Add Admin.update_billing_overrides with audit logging
- Add override editing UI to /admin/organizations
- Update org settings page to show effective limits/pricing
2026-03-06 13:02:05 -06:00
..
gaiia_mapping_live.ex Sort Gaiia entity mapping: items with suggestions shown first 2026-02-15 16:35:36 -06:00
gaiia_mapping_live.html.heex Fix Gaiia inventory matching, mapping UX, and logo link 2026-02-15 17:41:43 -06:00
gaiia_reconciliation_live.ex i18n: wrap all user-facing strings in gettext() 2026-02-14 17:44:01 -06:00
gaiia_reconciliation_live.html.heex fix: netbox url field type, gaiia ipRange→block, remove unknown webhook log 2026-02-14 17:44:01 -06:00
integrations_live.ex Fix Splynx integration: token-based auth, per-provider credential fields 2026-02-15 15:02:17 -06:00
integrations_live.html.heex Prevent Oban polling/monitoring job stacking per device 2026-02-16 16:37:48 -06:00
preseem_devices_live.ex i18n: wrap all user-facing strings in gettext() 2026-02-14 17:44:01 -06:00
preseem_devices_live.html.heex Fix Preseem devices table for mobile 2026-02-15 15:10:08 -06:00
preseem_insights_live.ex i18n: wrap all user-facing strings in gettext() 2026-02-14 17:44:01 -06:00
preseem_insights_live.html.heex i18n: wrap all user-facing strings in gettext() 2026-02-14 17:44:01 -06:00
settings_live.ex feat: add billing tab to organization settings 2026-03-06 11:08:05 -06:00
settings_live.html.heex feat: per-organization billing override admin UI 2026-03-06 13:02:05 -06:00