waaseyaa/groups

Multi-bundle Group content entity type for Waaseyaa (group + group_type; app-defined bundles)

Maintainers

Package info

github.com/waaseyaa/groups

pkg:composer/waaseyaa/groups

Statistics

Installs: 179

Dependents: 1

Suggesters: 0

Stars: 0

Open Issues: 0

v0.1.0-alpha.158 2026-04-24 21:18 UTC

README

Layer 2 — Content Types

Multi-bundle group content entity type for Waaseyaa applications. This package is framework-agnostic: consuming apps register bundles and fields; it does not target any single product domain.

History: Originally extracted from an early Waaseyaa product codebase; extraction context belongs in this repository’s changelog, not in runtime docs.

Defines two entity types:

  • group — the content entity. Bundle-aware (bundleEntityType: 'group_type'), keyed by gid/uuid, labeled by name.
  • group_type — the config entity that declares bundle identities.

The package ships with zero pre-registered bundles and zero bundle-scoped fields. Consuming applications create GroupType config entities and register bundle-scoped fields via EntityTypeManager::addBundleFields($entityTypeId, $bundle, $fields). Bundle-scoped columns land in per-bundle subtables named group__{bundle} as described in docs/specs/bundle-scoped-storage.md.

Key classes: Group, GroupType, GroupsServiceProvider.

Adding a bundle

$entityTypeManager->addBundleFields('group', 'business', [
    new FieldDefinition(
        name: 'email',
        type: 'string',
        targetEntityTypeId: 'group',
        targetBundle: 'business',
    ),
]);

The framework materializes group__business on the next install / schema pass. Missing subtables for registered-but-unmaterialized bundles are reported by waaseyaa health:check as MISSING_BUNDLE_SUBTABLE.