Skip to content
Updated Sep 26, 2026 by Barča Dvořáková · Owner: analysisactiveentityconfluence-migration Edit on GitHub

Entity: clientEnmsTarget ​

Entity Definition ​

  • Entity Name: clientEnmsTarget
  • Entity Type: Database table
  • Description: Stores numerical and qualitative energy targets defined by a client as part of their ISO 50001 Energy Management System. A client can have multiple targets. Each target can optionally be linked to a clientEnpi record — the linked EnPI is the measurable indicator used to track progress toward that target. Targets without a linked EnPI are free-text goals tracked manually.

Data Attributes Table ​

Attribute NameDescriptionData TypeDefault ValueRequired (= Nullable)UniqueFormatValidationsIndexExample
idPrimary keyUUIDGenerated in code (app layer)YesYesUUID v7-Primary Key018ed0b3-c298-7c7a-96d5-8b36f5a7f8d2
tenantIdTenant this record belongs to.UUID-YesNoUUID v7FK → tenant; must existname: idx_client_enms_target_tenantId, type: btree018fa51f-fda1-79f4-8461-2cb8f1cabc10
clientIdClient this target belongs toUUID-YesNoUUID v7FK → client; must exist — see clientname: idx_client_enms_target_clientId, type: btree018fa51f-fda1-79f4-8461-2cb8f1cabc10
enpiIdOptional link to the EnPI that measures progress toward this target. Null means the target is tracked manually without a system-computed indicator.UUID-NoNoUUID v7FK → clientEnpi; nullable; onDelete SET NULL — see clientEnpiname: idx_client_enms_target_enpiId, type: btree018ed0b3-c298-7c7a-96d5-8b36f5a7f8d2
descriptionHuman-readable description of the targetString-YesNo-Non-empty; max 500 chars-Reduce electricity consumption by 15% relative to 2022
targetValueNumerical target value (in the unit of the linked EnPI, or a percentage if no EnPI is linked)Float-NoNo-Nullable-85.0
baselineValueReference baseline value from which the target is measuredFloat-NoNo-Nullable-100.0
baselineYearYear of the baseline measurementInteger-NoNo-Nullable; 4-digit year-2022
targetYearYear by which the target should be achievedInteger-YesNo-4-digit year; must be ≥ current year at creation-2028
statusCurrent achievement status of the targetEnumplannedYesNoEnum - EnmsTargetStatusMust be a valid EnmsTargetStatus valuename: idx_client_enms_target_clientId_status, type: btreeinProgress
createdAtTimestamp of when the record was created. Immutable after insert.Timestamp with time zonenow() — set in codeYesNoISO 8601 — YYYY-MM-DDTHH:mm:ss.SSSZCannot be null; cannot be modified after creation-2025-03-16T18:00:00Z
updatedAtTimestamp of the last update.Timestamp with time zonenow() — set in codeYesNoISO 8601 — YYYY-MM-DDTHH:mm:ss.SSSZCannot be null-2025-03-16T18:00:00Z
deletedAtTimestamp of soft deletion. Null means active. Once set, immutable.Timestamp with time zone-NoNoISO 8601 — YYYY-MM-DDTHH:mm:ss.SSSZImmutable once set. Active records: WHERE deletedAt IS NULL-2025-06-01T09:00:00Z
createdByIdentifier of the actor who created the recordString-YesNotype:actorNon-empty-user:018ed0b3-c298-7c7a-96d5-8b36f5a7f8d2
updatedByIdentifier of the actor who last updated the recordString-YesNotype:actorNon-empty-user:018ed0b3-c298-7c7a-96d5-8b36f5a7f8d2

Translation note: the description example value was originally in Czech ("Snížit spotřebu elektřiny o 15 % oproti roku 2022") — translated above. Please double-check.

Ambiguity: status references "Enum - EnmsTargetStatus" as plain text with no linked Confluence page id (unlike most other enum references on sibling pages, which carry a smart link). The enum's actual value set (e.g. whether it includes planned, inProgress, achieved, missed, etc.) could not be confirmed — only the default value planned and one example value inProgress are known from this page. Recommend locating/creating the EnmsTargetStatus enum catalog page separately.

Audited fields ​

Recorded on created (in full), updated (changed only) and deleted (in full): clientId, enpiId, description, targetValue, baselineValue, baselineYear, targetYear, status.

Excluded: none.

Every entry would carry subjectEntityType = client / subjectEntityId = clientId — a client can have several targets, so (unlike clientEnms) this entity keeps its own row-level history rather than acting as a satellite read only through its parent.

Not registered for entityName resolution — renders id-only in the audit trail (architecture 61-audit-log.md §7.4 in the code repo: a valid, permanent state, not a gap). If registered, description is the natural candidate — the human-readable label a person would recognize this target by; there is no separate name field.