Files
yidaima/RuoYi-Vue/docs/superpowers/plans/2026-07-10-relational-page-block-plugins.md

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.0 with cart-table identity and product image/stock contributions.
  • Publish page-block.order@1.0.0 with order, item, and product table identities plus optional display contributions.
  • Publish page-block.master_detail@1.0.0 with 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.