# pbc-partners metadata. # # Loaded at boot by MetadataLoader, tagged source='core'. # This declares what the partners PBC offers to the rest of the # framework and the SPA: which entities exist, which permissions guard # them, which menu entries point at them. entities: - name: Partner pbc: partners table: partners__partner description: An external organisation the company does business with (customer, supplier, or both) - name: Address pbc: partners table: partners__address description: A postal address attached to a partner (billing, shipping, other) - name: Contact pbc: partners table: partners__contact description: A named human at a partner organisation (PII — GDPR-relevant) permissions: - key: partners.partner.read description: Read partner records - key: partners.partner.create description: Create partners - key: partners.partner.update description: Update partners - key: partners.partner.deactivate description: Deactivate partners (preserved for historical references) - key: partners.address.read description: Read partner addresses - key: partners.address.create description: Add an address to a partner - key: partners.address.update description: Update a partner address - key: partners.address.delete description: Remove a partner address - key: partners.contact.read description: Read partner contact people (PII — elevated) - key: partners.contact.create description: Add a contact to a partner - key: partners.contact.update description: Update a partner contact - key: partners.contact.deactivate description: Deactivate a partner contact menus: - path: /partners/partners label: Partners icon: users section: Partners order: 300 # Custom fields declared on the Partner entity (P3.4 — Tier 1 # customization). The framework's ExtJsonValidator enforces these on # every save through the JSONB `ext` column on partners__partner. # # These two fields are seeded as `source=core` here so the framework # has something to demo from a fresh boot. In production, key users # would add custom fields via the SPA's customization UI (which writes # `source=user` rows). Plug-ins can also declare custom fields via # their own YAML. customFields: - key: partners_credit_limit targetEntity: Partner type: kind: decimal precision: 14 scale: 2 required: false pii: false labelTranslations: en: Credit limit zh-CN: 信用额度 - key: partners_industry targetEntity: Partner type: kind: enum allowedValues: - printing - publishing - packaging - other required: false pii: false labelTranslations: en: Industry zh-CN: 行业