feat: consolidate media service, add merchant users page, fix metrics overlap
- Merge ImageService into MediaService with WebP variant generation, DB-backed storage stats, and module-driven media usage discovery via new MediaUsageProviderProtocol - Add merchant users admin page with scoped user listing, stats endpoint, template, JS, and i18n strings (de/en/fr/lb) - Fix merchant user metrics so Owners and Team Members are mutually exclusive (filter team_members on user_type="member" and exclude owner IDs) ensuring stat cards add up correctly - Update billing and monitoring services to use media_service - Update subscription-billing and feature-gating docs Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -86,6 +86,7 @@ tenancy_module = ModuleDefinition(
|
||||
"merchants",
|
||||
"stores",
|
||||
"admin-users",
|
||||
"merchant-users",
|
||||
],
|
||||
FrontendType.STORE: [
|
||||
"team",
|
||||
@@ -95,11 +96,10 @@ tenancy_module = ModuleDefinition(
|
||||
menus={
|
||||
FrontendType.ADMIN: [
|
||||
MenuSectionDefinition(
|
||||
id="superAdmin",
|
||||
label_key="tenancy.menu.super_admin",
|
||||
icon="shield",
|
||||
id="userManagement",
|
||||
label_key="tenancy.menu.user_management",
|
||||
icon="users",
|
||||
order=10,
|
||||
is_super_admin_only=True,
|
||||
items=[
|
||||
MenuItemDefinition(
|
||||
id="admin-users",
|
||||
@@ -108,6 +108,15 @@ tenancy_module = ModuleDefinition(
|
||||
route="/admin/admin-users",
|
||||
order=10,
|
||||
is_mandatory=True,
|
||||
is_super_admin_only=True,
|
||||
),
|
||||
MenuItemDefinition(
|
||||
id="merchant-users",
|
||||
label_key="tenancy.menu.merchant_users",
|
||||
icon="user-group",
|
||||
route="/admin/merchant-users",
|
||||
order=20,
|
||||
is_mandatory=True,
|
||||
),
|
||||
],
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user