namespace WordVersioning.Api.Models; /// Snapshot ของเอกสารหนึ่ง version (spec ส่วน 7) public class DocumentVersion { public Guid Id { get; set; } public Guid DocumentId { get; set; } public Document? Document { get; set; } /// เริ่มที่ 1 — auto increment ต่อ document (unique index กัน race) public int VersionNumber { get; set; } /// MinIO object key: {documentId}/v{VersionNumber:D4}_{clientVersionId}.docx public string ObjectKey { get; set; } = string.Empty; /// SHA256 hex ของไฟล์ (ตรวจ integrity ภายหลัง) public string ContentHash { get; set; } = string.Empty; /// จาก claim `sub` เท่านั้น — ห้ามรับจาก client public string CreatedByUserId { get; set; } = string.Empty; public DateTimeOffset CreatedAt { get; set; } /// Snapshot ค่า fields ของ version นี้ (FR-11) — map tag→text แบบ JSON public string? FieldsSnapshotJson { get; set; } }