Domain Layer Reference¶
Complete reference for USL's domain layer.
Entities¶
Entities are mutable objects with identity:
entity User {
id: UserId @primary
email: Email @unique
name: String
age: Int
invariant adult {
this.age >= 18
}
}
Annotations¶
@primary- Primary key@unique- Unique constraint@secret- Sensitive data@indexed- Database index
Invariants¶
Business rules that must always hold:
Value Objects¶
Immutable, validated types:
Enums¶
Simple enumerations:
Variants¶
Sum types with associated data:
Relationships¶
Computed Fields¶
entity User {
firstName: String
lastName: String
computed fullName: String {
this.firstName + " " + this.lastName
}
}