Add typed service contracts (Protocols + frozen DTOs) in shared/contracts/ for cross-domain communication. Each domain exposes a service interface (BlogService, CalendarService, MarketService, CartService) backed by SQL implementations in shared/services/. A singleton registry with has() guards enables composable startup — apps register their own domain service and stubs for absent domains. Absorbs glue layer: navigation, relationships, event handlers (login, container, order) now live in shared/ with has()-guarded service calls. Factory gains domain_services_fn parameter for per-app service registration. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
32 lines
563 B
Python
32 lines
563 B
Python
"""Typed contracts (DTOs + Protocols) for cross-domain service interfaces."""
|
|
|
|
from .dtos import (
|
|
PostDTO,
|
|
CalendarDTO,
|
|
CalendarEntryDTO,
|
|
MarketPlaceDTO,
|
|
ProductDTO,
|
|
CartItemDTO,
|
|
CartSummaryDTO,
|
|
)
|
|
from .protocols import (
|
|
BlogService,
|
|
CalendarService,
|
|
MarketService,
|
|
CartService,
|
|
)
|
|
|
|
__all__ = [
|
|
"PostDTO",
|
|
"CalendarDTO",
|
|
"CalendarEntryDTO",
|
|
"MarketPlaceDTO",
|
|
"ProductDTO",
|
|
"CartItemDTO",
|
|
"CartSummaryDTO",
|
|
"BlogService",
|
|
"CalendarService",
|
|
"MarketService",
|
|
"CartService",
|
|
]
|