feat: add ChangeEntry model for version/change tracking

This commit is contained in:
2026-05-06 09:28:33 +10:00
parent 56004c4e21
commit e6c328827d
+17 -5
View File
@@ -3,10 +3,6 @@ using System.Collections.Generic;
namespace Disco.Plugins.ServiceTracker.Models namespace Disco.Plugins.ServiceTracker.Models
{ {
/// <summary>
/// Extended ticket metadata stored alongside Disco Job records.
/// Links to a Disco Job by JobId.
/// </summary>
public class ServiceTicket public class ServiceTicket
{ {
public int JobId { get; set; } public int JobId { get; set; }
@@ -18,6 +14,7 @@ namespace Disco.Plugins.ServiceTracker.Models
public string StatusOverride { get; set; } public string StatusOverride { get; set; }
public string Summary { get; set; } public string Summary { get; set; }
public List<TicketNote> Notes { get; set; } public List<TicketNote> Notes { get; set; }
public List<ChangeEntry> ChangeLog { get; set; }
public DateTime CreatedDate { get; set; } public DateTime CreatedDate { get; set; }
public DateTime LastModifiedDate { get; set; } public DateTime LastModifiedDate { get; set; }
public string LastModifiedBy { get; set; } public string LastModifiedBy { get; set; }
@@ -25,6 +22,7 @@ namespace Disco.Plugins.ServiceTracker.Models
public ServiceTicket() public ServiceTicket()
{ {
Notes = new List<TicketNote>(); Notes = new List<TicketNote>();
ChangeLog = new List<ChangeEntry>();
CreatedDate = DateTime.Now; CreatedDate = DateTime.Now;
LastModifiedDate = DateTime.Now; LastModifiedDate = DateTime.Now;
} }
@@ -37,7 +35,7 @@ namespace Disco.Plugins.ServiceTracker.Models
public string AuthorName { get; set; } public string AuthorName { get; set; }
public DateTime Timestamp { get; set; } public DateTime Timestamp { get; set; }
public string Content { get; set; } public string Content { get; set; }
public string NoteType { get; set; } // "update", "escalation", "resolution", "general" public string NoteType { get; set; }
public TicketNote() public TicketNote()
{ {
@@ -46,4 +44,18 @@ namespace Disco.Plugins.ServiceTracker.Models
NoteType = "general"; NoteType = "general";
} }
} }
public class ChangeEntry
{
public DateTime Timestamp { get; set; }
public string UserId { get; set; }
public string Field { get; set; }
public string OldValue { get; set; }
public string NewValue { get; set; }
public ChangeEntry()
{
Timestamp = DateTime.Now;
}
}
} }