ปรับปรุง phase 6 ให้ครบถ้วน

This commit is contained in:
Suphonchai Phoonsawat 2026-08-20 11:15:04 +07:00
parent 93570d38d8
commit a196b8f9a8
14 changed files with 747 additions and 40 deletions

View file

@ -42,3 +42,37 @@ public record VersionListItem(
/// <summary>response ของ GET .../download-link — presigned URL อายุสั้นให้เปิดในเบราว์เซอร์ของผู้ใช้</summary>
public record VersionDownloadLinkResponse(string Url, DateTimeOffset ExpiresAt);
/// <summary>item ของ GET /api/templates/{templateId}/documents — รายการเอกสารของ template หนึ่งตัว (FR-12)</summary>
public record TemplateDocumentListItem(
Guid DocumentId,
string FileName,
DateTimeOffset CreatedAt,
int VersionCount,
int LatestVersionNumber,
DateTimeOffset? LatestVersionAt);
/// <summary>field หนึ่งตัวของ document (FR-12) — นิยามจาก TemplateField + ค่าล่าสุดจาก DocumentFieldValue
/// Label/Type/IsRequired เป็น null เมื่อมีค่าเก็บไว้แต่ key ไม่มีในนิยาม template ปัจจุบัน
/// (เช่น replace ไฟล์แล้ว tag หาย) — SourceVersionId/UpdatedByUserId/UpdatedAt เป็น null เมื่อ
/// field เพิ่มเข้า template หลังเอกสารนี้ถูกสร้าง (ยังไม่เคยมีค่า)</summary>
public record DocumentFieldItem(
string Key,
string? Label,
string? Type,
bool? IsRequired,
string Value,
Guid? SourceVersionId,
string? UpdatedByUserId,
DateTimeOffset? UpdatedAt);
/// <summary>response ของ GET /api/documents/{documentId} (FR-12) —
/// TemplateId null คือเอกสาร track เองจาก add-in (ไม่มีนิยาม field, Fields ว่าง)</summary>
public record DocumentDetail(
Guid Id,
string FileName,
DateTimeOffset CreatedAt,
Guid? TemplateId,
string? TemplateName,
bool TemplateIsActive,
IReadOnlyList<DocumentFieldItem> Fields);