Files
TriliumMind/Models/JiraResponse.cs
2025-12-11 10:20:10 +09:00

105 lines
2.9 KiB
C#

namespace TriliumMind.Models;
public class JiraResponse
{
public string expand { get; set; }
public int startAt { get; set; }
public int maxResults { get; set; }
public int total { get; set; }
public Issue[] issues { get; set; }
}
public class Issue
{
public string expand { get; set; }
public string id { get; set; }
public string self { get; set; }
public string key { get; set; }
public Fields fields { get; set; }
}
public class Fields
{
public string summary { get; set; } // Title
public Assignee assignee { get; set; }
public Reporter reporter { get; set; }
public string updated { get; set; }
public Status status { get; set; }
public Issuetype issuetype { get; set; }
public DateTimeOffset UpdatedAt
{
get
{
// "2025-09-03T15:31:51.000+0900" → "2025-09-03T15:31:51.000+09:00"
var fixedValue = updated.Insert(updated.Length - 2, ":");
return DateTimeOffset.Parse(fixedValue);
}
}
public DateTime? duedate { get; set; }
public Issue parent { get; set; }
public string customfield_10808 { get; set; } // Epic key
}
public class Assignee
{
public string self { get; set; }
public string name { get; set; }
public string key { get; set; }
public string emailAddress { get; set; }
public Avatarurls avatarUrls { get; set; }
public string displayName { get; set; } // Korean name
public bool active { get; set; }
public string timeZone { get; set; }
}
public class Reporter
{
public string self { get; set; }
public string name { get; set; }
public string key { get; set; }
public string emailAddress { get; set; }
public Avatarurls avatarUrls { get; set; }
public string displayName { get; set; } // Korean name
public bool active { get; set; }
public string timeZone { get; set; }
}
public class Avatarurls
{
public string _48x48 { get; set; }
public string _24x24 { get; set; }
public string _16x16 { get; set; }
public string _32x32 { get; set; }
}
public class Status
{
public string self { get; set; }
public string description { get; set; }
public string iconUrl { get; set; }
public string name { get; set; } // Status: Open InProgress ...
public string id { get; set; }
public Statuscategory statusCategory { get; set; }
}
public class Statuscategory
{
public string self { get; set; }
public int id { get; set; }
public string key { get; set; }
public string colorName { get; set; }
public string name { get; set; }
}
public class Issuetype
{
public string self { get; set; }
public string id { get; set; }
public string description { get; set; }
public string iconUrl { get; set; }
public string name { get; set; } // Type
public bool subtask { get; set; }
public int avatarId { get; set; }
}