using System.ComponentModel.DataAnnotations; namespace WordVersioning.Api.Models; /// body ของ POST /api/documents/{documentId}/versions (multipart/form-data) public class UploadVersionRequest { [Required] public IFormFile File { get; set; } = null!; /// GUID ที่ client generate ต่อ version — ใช้เป็นส่วนหนึ่งของ object key [Required] public string ClientVersionId { get; set; } = string.Empty; /// JSON object map tag→text จาก content controls (FR-11 — Phase 3 จะใช้ sync เต็มรูปแบบ) public string? Fields { get; set; } } public record UploadVersionResponse(Guid VersionId, int VersionNumber); /// item ของ version history — fields คือ snapshot ที่ parse แล้ว (ถ้ามี) public record VersionListItem( Guid VersionId, int VersionNumber, DateTimeOffset CreatedAt, string CreatedByUserId, string ContentHash, object? Fields);