1.6 KiB
1.6 KiB
Relational PageBlock Plugins Plan
Goal: Migrate Cart, Order, and MasterDetail into trusted PageBlock plugins while extracting reusable table-primary-key and optional-field generation contributions.
Task 1: Composable Generation Primitives
- Add a chainable table primary-key contribution to
PageBlockGenerationContext. - Add a chainable configured-field flag contribution with the same empty-value semantics as legacy rendering.
- Remove the obsolete shared primary-key resolver after all consumers move into plugins.
Task 2: Relational Plugin Migration
- Publish
page-block.cart@1.0.0with cart-table identity and product image/stock contributions. - Publish
page-block.order@1.0.0with order, item, and product table identities plus optional display contributions. - Publish
page-block.master_detail@1.0.0with master/detail identities and optional detail display contributions. - Preserve existing definitions, seven templates per block, output paths, API routes, and generated source behavior.
Task 3: Version Selection And Enforcement
- Auto-select exact relational PageBlock releases during legacy ProjectSpec assembly.
- Reject ProjectSpecs that use a migrated relational block without selecting its plugin release.
- Keep plugin ordering deterministic regardless of Spring bean or layout order.
Task 4: Verification
- Cover three-table primary-key composition and optional-field flags.
- Run Registry, page design, project generation, template rendering, ProjectSpec, and resolver compatibility tests.
- Confirm the full generator failure baseline does not expand.