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; }
}