Product Kind Policy Gatekeeper (services/product_kind_policy.py)

koalixcrm · koalixcrm/products/services/product_kind_policy.py · python · BSD-3-Clause
crm, lang:python, tag:policy, tag:validation

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