refactor: complete module-driven architecture migration
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>
This commit is contained in:
@@ -2,11 +2,207 @@
|
||||
"""
|
||||
Tenancy module Pydantic schemas.
|
||||
|
||||
Request/response schemas for platform, company, vendor, and admin user management.
|
||||
Currently schemas remain in models/schema/ - this package is a placeholder
|
||||
for future migration.
|
||||
Request/response schemas for platform, company, vendor, admin user, and team management.
|
||||
"""
|
||||
|
||||
# Schemas will be migrated here from models/schema/
|
||||
# For now, import from legacy location if needed:
|
||||
# from models.schema.vendor import VendorDetailResponse
|
||||
# Company schemas
|
||||
from app.modules.tenancy.schemas.company import (
|
||||
CompanyBase,
|
||||
CompanyCreate,
|
||||
CompanyCreateResponse,
|
||||
CompanyDetailResponse,
|
||||
CompanyListResponse,
|
||||
CompanyResponse,
|
||||
CompanySummary,
|
||||
CompanyTransferOwnership,
|
||||
CompanyTransferOwnershipResponse,
|
||||
CompanyUpdate,
|
||||
)
|
||||
|
||||
# Vendor schemas
|
||||
from app.modules.tenancy.schemas.vendor import (
|
||||
LetzshopExportFileInfo,
|
||||
LetzshopExportRequest,
|
||||
LetzshopExportResponse,
|
||||
VendorCreate,
|
||||
VendorCreateResponse,
|
||||
VendorDetailResponse,
|
||||
VendorListResponse,
|
||||
VendorResponse,
|
||||
VendorSummary,
|
||||
VendorUpdate,
|
||||
)
|
||||
|
||||
# Admin schemas
|
||||
from app.modules.tenancy.schemas.admin import (
|
||||
AdminAuditLogFilters,
|
||||
AdminAuditLogListResponse,
|
||||
AdminAuditLogResponse,
|
||||
AdminDashboardStats,
|
||||
AdminNotificationCreate,
|
||||
AdminNotificationListResponse,
|
||||
AdminNotificationResponse,
|
||||
AdminNotificationUpdate,
|
||||
AdminSessionListResponse,
|
||||
AdminSessionResponse,
|
||||
AdminSettingCreate,
|
||||
AdminSettingDefaultResponse,
|
||||
AdminSettingListResponse,
|
||||
AdminSettingResponse,
|
||||
AdminSettingUpdate,
|
||||
ApplicationLogFilters,
|
||||
ApplicationLogListResponse,
|
||||
ApplicationLogResponse,
|
||||
BulkUserAction,
|
||||
BulkUserActionResponse,
|
||||
BulkVendorAction,
|
||||
BulkVendorActionResponse,
|
||||
ComponentHealthStatus,
|
||||
FileLogResponse,
|
||||
LogCleanupResponse,
|
||||
LogDeleteResponse,
|
||||
LogFileInfo,
|
||||
LogFileListResponse,
|
||||
LogSettingsResponse,
|
||||
LogSettingsUpdate,
|
||||
LogSettingsUpdateResponse,
|
||||
LogStatistics,
|
||||
PlatformAlertCreate,
|
||||
PlatformAlertListResponse,
|
||||
PlatformAlertResolve,
|
||||
PlatformAlertResponse,
|
||||
PublicDisplaySettingsResponse,
|
||||
RowsPerPageResponse,
|
||||
RowsPerPageUpdateResponse,
|
||||
SystemHealthResponse,
|
||||
)
|
||||
|
||||
# Team schemas
|
||||
from app.modules.tenancy.schemas.team import (
|
||||
BulkRemoveRequest,
|
||||
BulkRemoveResponse,
|
||||
InvitationAccept,
|
||||
InvitationAcceptResponse,
|
||||
InvitationResponse,
|
||||
PermissionCheckRequest,
|
||||
PermissionCheckResponse,
|
||||
RoleBase,
|
||||
RoleCreate,
|
||||
RoleListResponse,
|
||||
RoleResponse,
|
||||
RoleUpdate,
|
||||
TeamErrorResponse,
|
||||
TeamMemberBase,
|
||||
TeamMemberInvite,
|
||||
TeamMemberListResponse,
|
||||
TeamMemberResponse,
|
||||
TeamMemberUpdate,
|
||||
TeamStatistics,
|
||||
UserPermissionsResponse,
|
||||
)
|
||||
|
||||
# Vendor domain schemas
|
||||
from app.modules.tenancy.schemas.vendor_domain import (
|
||||
DomainDeletionResponse,
|
||||
DomainVerificationInstructions,
|
||||
DomainVerificationResponse,
|
||||
VendorDomainCreate,
|
||||
VendorDomainListResponse,
|
||||
VendorDomainResponse,
|
||||
VendorDomainUpdate,
|
||||
)
|
||||
|
||||
__all__ = [
|
||||
# Company
|
||||
"CompanyBase",
|
||||
"CompanyCreate",
|
||||
"CompanyCreateResponse",
|
||||
"CompanyDetailResponse",
|
||||
"CompanyListResponse",
|
||||
"CompanyResponse",
|
||||
"CompanySummary",
|
||||
"CompanyTransferOwnership",
|
||||
"CompanyTransferOwnershipResponse",
|
||||
"CompanyUpdate",
|
||||
# Vendor
|
||||
"LetzshopExportFileInfo",
|
||||
"LetzshopExportRequest",
|
||||
"LetzshopExportResponse",
|
||||
"VendorCreate",
|
||||
"VendorCreateResponse",
|
||||
"VendorDetailResponse",
|
||||
"VendorListResponse",
|
||||
"VendorResponse",
|
||||
"VendorSummary",
|
||||
"VendorUpdate",
|
||||
# Admin
|
||||
"AdminAuditLogFilters",
|
||||
"AdminAuditLogListResponse",
|
||||
"AdminAuditLogResponse",
|
||||
"AdminDashboardStats",
|
||||
"AdminNotificationCreate",
|
||||
"AdminNotificationListResponse",
|
||||
"AdminNotificationResponse",
|
||||
"AdminNotificationUpdate",
|
||||
"AdminSessionListResponse",
|
||||
"AdminSessionResponse",
|
||||
"AdminSettingCreate",
|
||||
"AdminSettingDefaultResponse",
|
||||
"AdminSettingListResponse",
|
||||
"AdminSettingResponse",
|
||||
"AdminSettingUpdate",
|
||||
"ApplicationLogFilters",
|
||||
"ApplicationLogListResponse",
|
||||
"ApplicationLogResponse",
|
||||
"BulkUserAction",
|
||||
"BulkUserActionResponse",
|
||||
"BulkVendorAction",
|
||||
"BulkVendorActionResponse",
|
||||
"ComponentHealthStatus",
|
||||
"FileLogResponse",
|
||||
"LogCleanupResponse",
|
||||
"LogDeleteResponse",
|
||||
"LogFileInfo",
|
||||
"LogFileListResponse",
|
||||
"LogSettingsResponse",
|
||||
"LogSettingsUpdate",
|
||||
"LogSettingsUpdateResponse",
|
||||
"LogStatistics",
|
||||
"PlatformAlertCreate",
|
||||
"PlatformAlertListResponse",
|
||||
"PlatformAlertResolve",
|
||||
"PlatformAlertResponse",
|
||||
"PublicDisplaySettingsResponse",
|
||||
"RowsPerPageResponse",
|
||||
"RowsPerPageUpdateResponse",
|
||||
"SystemHealthResponse",
|
||||
# Team
|
||||
"BulkRemoveRequest",
|
||||
"BulkRemoveResponse",
|
||||
"InvitationAccept",
|
||||
"InvitationAcceptResponse",
|
||||
"InvitationResponse",
|
||||
"PermissionCheckRequest",
|
||||
"PermissionCheckResponse",
|
||||
"RoleBase",
|
||||
"RoleCreate",
|
||||
"RoleListResponse",
|
||||
"RoleResponse",
|
||||
"RoleUpdate",
|
||||
"TeamErrorResponse",
|
||||
"TeamMemberBase",
|
||||
"TeamMemberInvite",
|
||||
"TeamMemberListResponse",
|
||||
"TeamMemberResponse",
|
||||
"TeamMemberUpdate",
|
||||
"TeamStatistics",
|
||||
"UserPermissionsResponse",
|
||||
# Vendor Domain
|
||||
"DomainDeletionResponse",
|
||||
"DomainVerificationInstructions",
|
||||
"DomainVerificationResponse",
|
||||
"VendorDomainCreate",
|
||||
"VendorDomainListResponse",
|
||||
"VendorDomainResponse",
|
||||
"VendorDomainUpdate",
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user