This commit completes the migration to a fully module-driven architecture: ## Models Migration - Moved all domain models from models/database/ to their respective modules: - tenancy: User, Admin, Vendor, Company, Platform, VendorDomain, etc. - cms: MediaFile, VendorTheme - messaging: Email, VendorEmailSettings, VendorEmailTemplate - core: AdminMenuConfig - models/database/ now only contains Base and TimestampMixin (infrastructure) ## Schemas Migration - Moved all domain schemas from models/schema/ to their respective modules: - tenancy: company, vendor, admin, team, vendor_domain - cms: media, image, vendor_theme - messaging: email - models/schema/ now only contains base.py and auth.py (infrastructure) ## Routes Migration - Moved admin routes from app/api/v1/admin/ to modules: - menu_config.py -> core module - modules.py -> tenancy module - module_config.py -> tenancy module - app/api/v1/admin/ now only aggregates auto-discovered module routes ## Menu System - Implemented module-driven menu system with MenuDiscoveryService - Extended FrontendType enum: PLATFORM, ADMIN, VENDOR, STOREFRONT - Added MenuItemDefinition and MenuSectionDefinition dataclasses - Each module now defines its own menu items in definition.py - MenuService integrates with MenuDiscoveryService for template rendering ## Documentation - Updated docs/architecture/models-structure.md - Updated docs/architecture/menu-management.md - Updated architecture validation rules for new exceptions ## Architecture Validation - Updated MOD-019 rule to allow base.py in models/schema/ - Created core module exceptions.py and schemas/ directory - All validation errors resolved (only warnings remain) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
82 lines
4.5 KiB
JSON
82 lines
4.5 KiB
JSON
{
|
|
"team": {
|
|
"title": "Équipe",
|
|
"members": "Membres",
|
|
"add_member": "Ajouter un membre",
|
|
"invite_member": "Inviter un membre",
|
|
"remove_member": "Retirer un membre",
|
|
"role": "Rôle",
|
|
"owner": "Propriétaire",
|
|
"manager": "Gestionnaire",
|
|
"editor": "Éditeur",
|
|
"viewer": "Lecteur",
|
|
"permissions": "Permissions",
|
|
"pending_invitations": "Invitations en attente",
|
|
"invitation_sent": "Invitation envoyée",
|
|
"invitation_accepted": "Invitation acceptée"
|
|
},
|
|
"messages": {
|
|
"business_info_saved": "Business info saved",
|
|
"marketplace_settings_saved": "Marketplace settings saved",
|
|
"please_enter_a_url_first": "Please enter a URL first",
|
|
"could_not_validate_url_it_may_still_work": "Could not validate URL - it may still work",
|
|
"localization_settings_saved": "Localization settings saved",
|
|
"failed_to_load_email_settings": "Failed to load email settings",
|
|
"from_email_and_from_name_are_required": "From Email and From Name are required",
|
|
"email_settings_saved": "Email settings saved",
|
|
"please_enter_a_test_email_address": "Please enter a test email address",
|
|
"please_save_your_email_settings_first": "Please save your email settings first",
|
|
"test_email_sent_check_your_inbox": "Test email sent! Check your inbox.",
|
|
"please_fix_the_errors_before_saving": "Please fix the errors before saving",
|
|
"profile_updated_successfully": "Profile updated successfully",
|
|
"email_is_required": "Email is required",
|
|
"invitation_sent_successfully": "Invitation sent successfully",
|
|
"team_member_updated": "Team member updated",
|
|
"team_member_removed": "Team member removed",
|
|
"invalid_company_url": "Invalid company URL",
|
|
"failed_to_load_company_details": "Failed to load company details",
|
|
"company_deleted_successfully": "Company deleted successfully",
|
|
"company_details_refreshed": "Company details refreshed",
|
|
"invalid_admin_user_url": "Invalid admin user URL",
|
|
"failed_to_load_admin_user_details": "Failed to load admin user details",
|
|
"you_cannot_deactivate_your_own_account": "You cannot deactivate your own account",
|
|
"you_cannot_delete_your_own_account": "You cannot delete your own account",
|
|
"admin_user_deleted_successfully": "Admin user deleted successfully",
|
|
"admin_user_details_refreshed": "Admin user details refreshed",
|
|
"failed_to_initialize_page": "Failed to initialize page",
|
|
"failed_to_load_company": "Failed to load company",
|
|
"company_updated_successfully": "Company updated successfully",
|
|
"ownership_transferred_successfully": "Ownership transferred successfully",
|
|
"theme_saved_successfully": "Theme saved successfully",
|
|
"failed_to_apply_preset": "Failed to apply preset",
|
|
"theme_reset_to_default": "Theme reset to default",
|
|
"failed_to_reset_theme": "Failed to reset theme",
|
|
"failed_to_load_vendors": "Failed to load vendors",
|
|
"vendor_deleted_successfully": "Vendor deleted successfully",
|
|
"vendors_list_refreshed": "Vendors list refreshed",
|
|
"invalid_user_url": "Invalid user URL",
|
|
"failed_to_load_user_details": "Failed to load user details",
|
|
"user_deleted_successfully": "User deleted successfully",
|
|
"user_details_refreshed": "User details refreshed",
|
|
"invalid_vendor_url": "Invalid vendor URL",
|
|
"failed_to_load_vendor_details": "Failed to load vendor details",
|
|
"no_vendor_loaded": "No vendor loaded",
|
|
"subscription_created_successfully": "Subscription created successfully",
|
|
"vendor_details_refreshed": "Vendor details refreshed",
|
|
"failed_to_load_users": "Failed to load users",
|
|
"failed_to_delete_user": "Failed to delete user",
|
|
"failed_to_load_admin_users": "Failed to load admin users",
|
|
"failed_to_load_admin_user": "Failed to load admin user",
|
|
"you_cannot_demote_yourself_from_super_ad": "You cannot demote yourself from super admin",
|
|
"platform_assigned_successfully": "Platform assigned successfully",
|
|
"platform_admin_must_be_assigned_to_at_le": "Platform admin must be assigned to at least one platform",
|
|
"platform_removed_successfully": "Platform removed successfully",
|
|
"please_fix_the_errors_before_submitting": "Please fix the errors before submitting",
|
|
"failed_to_load_vendor": "Failed to load vendor",
|
|
"vendor_updated_successfully": "Vendor updated successfully",
|
|
"all_contact_fields_reset_to_company_defa": "All contact fields reset to company defaults",
|
|
"failed_to_load_user": "Failed to load user",
|
|
"user_updated_successfully": "User updated successfully"
|
|
}
|
|
}
|