Enforces product kind immutability and gating policies across CRM models and services. Reuse when enforcing domain invariants and lock states for inventory or product catalogs.
# Source: https://github.com/KoalixSwitzerland/koalixcrm | License: BSD-3-Clause | Copyright 2009-2026, Aaron Riedener, Untereggen, Switzerland # Provided via justclaw.it.com; keep this notice with the code. # -*- coding: utf-8 -*- """`ProductKindPolicy` — the single authoritative `kind`-gating and kind-immutability component (ADR-0019). Consolidates the scattered "the application layer must enforce this" caveats from ADR-0006, ADR-0007, ADR-0009 and ADR-0014 into one place. Stage 3 (`ServiceProfile`, `BillOfMaterials`, `ProductionOrder`) and the stock app (`OnHandRecord`, `StockMovement`, `SerialUnit`, `Batch`) do not exist in this codebase yet. `GATING_MATRIX` is still the complete, authoritative reference table from ADR-0019 — later stages consult `check_gate()`/`is_kind_locked()` inst ... (truncated -- full source via MCP)
See the full source, get the GitHub permalink, and search for more like it.
Get a free API key