feat(platform): sprint 11.5 standardization
Some checks failed
Architecture Governance / architecture (push) Has been cancelled
Some checks failed
Architecture Governance / architecture (push) Has been cancelled
This commit is contained in:
@@ -215,3 +215,78 @@ Catalog spacing and controls were polished for desktop/tablet/mobile:
|
||||
- `src/app/i18n/hy.ts`
|
||||
- `src/app/i18n/translations.ts`
|
||||
- No hardcoded catalog UX strings were introduced for Sprint 10.2 additions.
|
||||
|
||||
## Sprint 11 Search & Discovery Engine
|
||||
|
||||
Sprint 11 introduces a reusable, backend-driven Search and Discovery architecture while preserving platform boundaries and existing domain models.
|
||||
|
||||
### Search Domain Models
|
||||
|
||||
Core search models were added under:
|
||||
|
||||
- `src/app/core/search/models/search.model.ts`
|
||||
- `src/app/core/search/models/search-state.model.ts`
|
||||
|
||||
Model coverage includes:
|
||||
|
||||
- `SearchQuery`
|
||||
- `SearchResult`
|
||||
- `FilterGroup`
|
||||
- `FilterOption`
|
||||
- `SortOption`
|
||||
- `SearchSuggestion`
|
||||
- `SearchHistory`
|
||||
- `SearchState`
|
||||
|
||||
### Search Entry Point
|
||||
|
||||
- `src/app/facades/platform/search.facade.ts`
|
||||
|
||||
`SearchFacade` is now the search orchestration entry point for the catalog UX and provides:
|
||||
|
||||
- backend catalog loading bridge for search query payloads
|
||||
- metadata-driven sort option generation
|
||||
- metadata-driven dynamic filter group generation
|
||||
- live suggestions generation
|
||||
- in-memory filter metadata memoization
|
||||
- reusable filtering, sorting, and pagination helpers
|
||||
- query param serialization/deserialization for URL synchronization
|
||||
|
||||
### History Service
|
||||
|
||||
- `src/app/core/search/services/search-history.service.ts`
|
||||
|
||||
Search history moved to a reusable core service with:
|
||||
|
||||
- recent search tracking
|
||||
- popular search support
|
||||
- clear/reset support
|
||||
|
||||
### Catalog UI Integration
|
||||
|
||||
Catalog UI now consumes Search domain metadata and state:
|
||||
|
||||
- `src/app/features/website/catalog/containers/catalog-container.component.ts`
|
||||
- `src/app/features/website/catalog/components/search-box/search-box.component.ts`
|
||||
- `src/app/features/website/catalog/components/filters-panel/filters-panel.component.ts`
|
||||
- `src/app/features/website/catalog/components/sorting-control/sorting-control.component.ts`
|
||||
|
||||
Implemented behaviors:
|
||||
|
||||
- live suggestions
|
||||
- recent + popular searches
|
||||
- keyboard navigation in search box (up/down/enter/escape)
|
||||
- clear search action
|
||||
- dynamic filters for checkbox, radio, toggle, range, slider, color, size, rating, availability
|
||||
- URL query synchronization with `SearchState`
|
||||
- page reload restore from query params
|
||||
|
||||
### Validation
|
||||
|
||||
Completed validation for Sprint 11 integration:
|
||||
|
||||
- `npm run build` passes successfully
|
||||
- facades remain the UI data boundary
|
||||
- no authentication changes
|
||||
- no payment changes
|
||||
- no bootstrap/runtime contract changes
|
||||
|
||||
@@ -19,8 +19,10 @@ A reusable component must:
|
||||
- Contain no localStorage/sessionStorage usage.
|
||||
- Import no environment data.
|
||||
- Have no tenant-specific behavior.
|
||||
- Have no project-name-specific behavior (including legacy variant naming paths).
|
||||
- Have no auth/payment/authorization logic.
|
||||
- Have no route navigation logic.
|
||||
- Render no hardcoded UI copy when translation keys are expected.
|
||||
|
||||
## Container Rules
|
||||
|
||||
|
||||
@@ -48,3 +48,15 @@ Bootstrap includes at minimum:
|
||||
- Mock payloads must match future API responses exactly.
|
||||
- No mock-only fields.
|
||||
- No mock-only nesting conventions.
|
||||
|
||||
## Sprint 11.5 Bootstrap Audit Addendum
|
||||
|
||||
- Every configurable website behavior must be representable in bootstrap contracts or widget metadata.
|
||||
- Missing configuration must be documented before implementation work starts.
|
||||
- Frontend teams must not implement backend contract changes in standardization sprints.
|
||||
|
||||
Current documented gaps:
|
||||
|
||||
- Widget role/permission enforcement requires richer auth session claims than currently available.
|
||||
- Catalog popular-search defaults should move from facade constants into bootstrap `catalog` config.
|
||||
- Optional override support for persistent-storage key prefixes is not yet represented in bootstrap schema.
|
||||
|
||||
@@ -64,6 +64,30 @@ All new work must comply with this foundation.
|
||||
If an implementation conflicts with these rules, implementation must be adjusted.
|
||||
If a rule must change, an ADR update is required first.
|
||||
|
||||
## Sprint 11.5 Standardization Audit (2026-07-09)
|
||||
|
||||
Platform-wide standardization was executed before Admin Platform work.
|
||||
|
||||
### Completed Standardization
|
||||
|
||||
- Verified and enforced container/facade/domain/infrastructure boundaries across active website features.
|
||||
- Removed remaining legacy variant naming in application-layer templates/styles.
|
||||
- Removed duplicate legacy search-history implementation in catalog feature module.
|
||||
- Standardized design-token surface with explicit spacing, radius, shadow, and transition tokens.
|
||||
- Added widget metadata support for title/subtitle/visibility/layout/animation/style/permissions in shared contracts and dynamic rendering path.
|
||||
- Converted remaining identified hardcoded UI strings in audited runtime pages/components to translation keys.
|
||||
|
||||
### Bootstrap/Configuration Gaps Identified
|
||||
|
||||
- Widget permission model supports auth gating but role/permission enforcement is limited by current auth session shape (no role list in session model).
|
||||
- Popular search defaults are currently facade-local and should be moved to bootstrap-configurable catalog search settings.
|
||||
- Storage key naming conventions for local persistence are platform-scoped but still static constants; optional bootstrap override could improve tenant isolation.
|
||||
|
||||
### Validation Baseline
|
||||
|
||||
- Build and architecture checks are required for acceptance of this sprint.
|
||||
- Final details and file-level changes are tracked in `Platform-Standardization-Report.md`.
|
||||
|
||||
## Mandatory Phase Order
|
||||
|
||||
Implementation must proceed only in this order:
|
||||
|
||||
@@ -16,6 +16,8 @@ Date: 2026-07-03
|
||||
- Services should avoid UI-specific formatting.
|
||||
- Services should not depend on component classes.
|
||||
- Shared services must not depend on feature modules.
|
||||
- Business decisions must not be driven by `environment.*` flags.
|
||||
- Environment values are limited to infrastructure concerns (API base URLs, provider strategy wiring, auth endpoint origins).
|
||||
|
||||
## Facade Interaction
|
||||
|
||||
|
||||
Reference in New Issue
Block a user