fix(timeline): mark always-populated audit fields REQUIRED in OpenAPI schema
createdBy/updatedBy are NOT NULL and createdAt/updatedAt/version are Hibernate- populated on every persisted row, so per the CLAUDE.md rule they must carry @Schema(requiredMode = REQUIRED) like id/title/type/eventDate/precision already do. Keeps the generated TypeScript types honest if the entity ever reaches the OpenAPI spec (responses in #775 are planned as views, per ADR-040). Extends the #774 task list (which named only the five domain fields) per PR #816 review. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -99,9 +99,11 @@ public class TimelineEvent {
|
||||
* CWE-639 — see ADR-040).
|
||||
*/
|
||||
@Column(name = "created_by", nullable = false)
|
||||
@Schema(requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private UUID createdBy;
|
||||
|
||||
@CreationTimestamp
|
||||
@Schema(requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private LocalDateTime createdAt;
|
||||
|
||||
/**
|
||||
@@ -112,9 +114,11 @@ public class TimelineEvent {
|
||||
* stale. Same forgery rationale as {@link #createdBy}.
|
||||
*/
|
||||
@Column(name = "updated_by", nullable = false)
|
||||
@Schema(requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private UUID updatedBy;
|
||||
|
||||
@UpdateTimestamp
|
||||
@Schema(requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private LocalDateTime updatedAt;
|
||||
|
||||
/**
|
||||
@@ -125,5 +129,6 @@ public class TimelineEvent {
|
||||
* internals (CWE-209).
|
||||
*/
|
||||
@Version
|
||||
@Schema(requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Long version;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user