Learning Value Objects¶
Why This Exists¶
This document defines immutable or value-based concepts used by the Learning Domain.
Owner¶
The owner is the Chief Product Officer and Enterprise Architect.
Business Value¶
Value objects make learning rules precise. They prevent inconsistent scoring, unclear difficulty, invalid statuses, and unreliable certification records.
Value Object Catalogue¶
| Value object | Purpose | Validation rules |
|---|---|---|
| CourseId | Identifies a course. | Must be globally unique within Learning. |
| ModuleId | Identifies a module. | Must be unique and reference a CourseId. |
| LessonId | Identifies a lesson. | Must be unique and reference a ModuleId. |
| LearningAssetId | Identifies any course, module, lesson, quiz, exercise, or path. | Must include asset type and stable ID. |
| ContentType | Classifies content format. | Allowed values include video, interactive, text, quiz, exercise, assessment. |
| DifficultyLevel | Defines learning difficulty. | Allowed values: beginner, intermediate, advanced, enterprise. |
| LearningStatus | Tracks learner state. | Allowed values: not_started, enrolled, in_progress, completed, failed, deferred, expired. |
| ProgressPercentage | Measures completion. | Must be 0 to 100. |
| QuizScore | Stores quiz result. | Must be 0 to 100 or a rubric-equivalent normalized score. |
| PassThreshold | Defines required passing score. | Must be 0 to 100 and set before quiz publication. |
| CertificateStatus | Tracks certificate state. | Allowed values: pending, issued, revoked, expired. |
| MaturityLevel | Represents procurement learning maturity. | Allowed values: level_1 to level_5 with versioned definition. |
| KnowledgeGapSeverity | Describes severity of a gap. | Allowed values: low, medium, high, critical. |
| RecommendationPriority | Orders learning recommendations. | Allowed values: low, normal, high, urgent. |
| TutorSessionStatus | Tracks tutor session state. | Allowed values: started, completed, blocked, escalated, archived. |
| AIConfidenceScore | Captures confidence on AI-supported outputs. | Must be 0 to 1 and include source context. |
| RubricVersion | Identifies scoring rubric used. | Must be immutable once assessment or certificate is issued. |
| OrganizationId | References Organization-owned context. | Must be treated as reference only. |
| UserId | References identity-owned user. | Must be treated as reference only. |
Why Value Objects Matter¶
Learning decisions often depend on small but important values: score, pass threshold, maturity level, content type, and status. Treating those values consistently helps protect certificates, recommendations, and progress reporting.
Validation Principles¶
- Value objects should be validated at command boundaries.
- Historical records must retain the value object version used at the time.
- AI-derived confidence values must not be treated as objective truth.
- Cross-domain identifiers must remain references and must not duplicate owning-domain data.
Example¶
A quiz completion decision should use the quiz version, score, pass threshold, attempt timestamp, and user progress state. It should not rely on a mutable title, label, or free-text result.