Bounded Context: Configuration
Aggregate Root: ParameterDefinition
Module: Ums.Domain.Configuration.Parameter
Status: Production
ParameterDefinition defines the schema of a configurable system parameter: its code, data type, scope (Global or Tenant), allowed values, and whether tenant-level overrides are permitted. It does not store parameter values — it only defines what parameters exist and their constraints.
ParameterDefinition is the schema authority. Parameter values are stored in separate aggregates: ParameterGlobalValue (system-wide default) and ParameterTenantValue (tenant-specific override).
Active ──Archive()──► Archived (terminal)
- Parameter code must be unique per scope.
DataTypedetermines which values are valid inParameterGlobalValueandParameterTenantValue.- Tenant-level overrides are only valid when the scope supports tenant values.
- A definition cannot be archived while active global or tenant values exist.
| Aggregate | Relationship |
|---|---|
ParameterGlobalValue |
References this definition by DefinitionId. One global value per definition. |
ParameterTenantValue |
References this definition by DefinitionId. One per (definition, tenant) pair. |
| Method | Description |
|---|---|
Create(code, name, description, dataType, defaultValue, scope, isActive, isMandatory, displayOrder, createdBy, existingDefinitionCount) |
Creates a new parameter definition when the code is still unique within scope. |
Archive(updatedBy, globalValueCount, tenantValueCount) |
Archives the definition if no active values reference it. |