diff --git a/Models/ServiceTrackerConfig.cs b/Models/ServiceTrackerConfig.cs
index c99d9f5..a7c9c83 100644
--- a/Models/ServiceTrackerConfig.cs
+++ b/Models/ServiceTrackerConfig.cs
@@ -1,29 +1,31 @@
-using System;
using System.Collections.Generic;
namespace Disco.Plugins.ServiceTracker.Models
{
- ///
- /// Plugin configuration for custom priorities, locations, and SLA timeframes.
- /// Stored as JSON in the plugin data directory.
- ///
public class ServiceTrackerConfig
{
public List Priorities { get; set; }
public List Locations { get; set; }
public List StatusOptions { get; set; }
+ public List Technicians { get; set; }
public bool AutoCreateTicketsForNewJobs { get; set; }
public string DefaultPriorityId { get; set; }
public string DefaultLocationId { get; set; }
public int DashboardRefreshSeconds { get; set; }
+ public string DiscoBaseUrl { get; set; }
+ public int DetailInactivitySeconds { get; set; }
+ public GoogleSheetConfig GoogleSheet { get; set; }
public ServiceTrackerConfig()
{
Priorities = new List();
Locations = new List();
StatusOptions = new List();
+ Technicians = new List();
AutoCreateTicketsForNewJobs = true;
DashboardRefreshSeconds = 60;
+ DetailInactivitySeconds = 300;
+ DiscoBaseUrl = "http://disco:9292";
}
public static ServiceTrackerConfig CreateDefault()
@@ -41,28 +43,41 @@ namespace Disco.Plugins.ServiceTracker.Models
Locations = new List
{
new DeviceLocation { Id = "it-office", Name = "IT Office", Icon = "💻", Color = "#337AB7", IsDefault = true },
- new DeviceLocation { Id = "with-user", Name = "With User", Icon = "👤", Color = "#5CB85C", IsDefault = false },
- new DeviceLocation { Id = "at-repairer", Name = "At Repairer", Icon = "🔧", Color = "#F0AD4E", IsDefault = false },
- new DeviceLocation { Id = "in-transit", Name = "In Transit", Icon = "🚚", Color = "#5BC0DE", IsDefault = false },
- new DeviceLocation { Id = "storage", Name = "Storage/Spare Pool", Icon = "📦", Color = "#777777", IsDefault = false },
- new DeviceLocation { Id = "disposed", Name = "Disposed/Written Off", Icon = "❌", Color = "#999999", IsDefault = false }
+ new DeviceLocation { Id = "with-user", Name = "With User", Icon = "👤", Color = "#5CB85C" },
+ new DeviceLocation { Id = "at-repairer", Name = "At Repairer", Icon = "🔧", Color = "#F0AD4E" },
+ new DeviceLocation { Id = "in-transit", Name = "In Transit", Icon = "🚚", Color = "#5BC0DE" },
+ new DeviceLocation { Id = "storage", Name = "Storage/Spare Pool", Icon = "📦", Color = "#777777" },
+ new DeviceLocation { Id = "disposed", Name = "Disposed/Written Off", Icon = "❌", Color = "#999999" }
},
StatusOptions = new List
{
- "Triaging",
- "In Progress",
- "Awaiting Parts",
- "Awaiting User",
- "Awaiting Vendor",
- "On Hold",
- "Ready for Return",
- "Escalated",
- "Resolved"
+ "Triaging", "In Progress", "Awaiting Parts", "Awaiting User",
+ "Awaiting Vendor", "On Hold", "Ready for Return", "Escalated", "Resolved"
+ },
+ Technicians = new List
+ {
+ new TechEntry { Id = "jess", DisplayName = "Jess Rogerson", DiscoUserIds = new List { "Curric\\st00913", "Curric\\09488098" }, Email = "Jessica.Rogerson@education.vic.gov.au" },
+ new TechEntry { Id = "ruby", DisplayName = "Ruby Stolica", DiscoUserIds = new List { "curric\\st02201" }, Email = "Ruby.Stolica@education.vic.gov.au" },
+ new TechEntry { Id = "gaby", DisplayName = "Gaby Aughton", DiscoUserIds = new List { "Curric\\09279223" }, Email = "Gabrielle.Aughton@education.vic.gov.au" },
+ new TechEntry { Id = "other", DisplayName = "Other", DiscoUserIds = new List(), Email = "" }
},
AutoCreateTicketsForNewJobs = true,
DefaultPriorityId = "medium",
DefaultLocationId = "it-office",
- DashboardRefreshSeconds = 60
+ DashboardRefreshSeconds = 60,
+ DetailInactivitySeconds = 300,
+ DiscoBaseUrl = "http://disco:9292",
+ GoogleSheet = new GoogleSheetConfig
+ {
+ Enabled = false,
+ SpreadsheetId = "1w9rVblDVyDMVedjx9tjuLoNv1w6_pfo8GC6R9uu8lXc",
+ GId = "170394795",
+ RefreshMinutes = 15,
+ ColTimestamp = 0, ColEmail = 1, ColDeviceName = 2,
+ ColLocation = 3, ColIssue = 4, ColPriority = 5,
+ ColStatus = 6, ColAssignedTo = 7,
+ HeaderRows = 1
+ }
};
}
}
@@ -85,4 +100,27 @@ namespace Disco.Plugins.ServiceTracker.Models
public string Color { get; set; }
public bool IsDefault { get; set; }
}
+
+ public class GoogleSheetConfig
+ {
+ public bool Enabled { get; set; }
+ public string SpreadsheetId { get; set; }
+ public string GId { get; set; }
+ public int RefreshMinutes { get; set; }
+ public int ColTimestamp { get; set; }
+ public int ColEmail { get; set; }
+ public int ColDeviceName { get; set; }
+ public int ColLocation { get; set; }
+ public int ColIssue { get; set; }
+ public int ColPriority { get; set; }
+ public int ColStatus { get; set; }
+ public int ColAssignedTo { get; set; }
+ public int HeaderRows { get; set; }
+
+ public GoogleSheetConfig()
+ {
+ RefreshMinutes = 15;
+ HeaderRows = 1;
+ }
+ }
}