/* Options: Date: 2026-08-01 02:23:03 SwiftVersion: 6.0 Version: 8.80 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://api.dev.dynamics.trendsic.com //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True //MakePropertiesOptional: True IncludeTypes: PlanningRequest.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/v1/workforce/planning", "GET") public class PlanningRequest : IReturn, Codable { public typealias Return = PlanningResponse public var asOf:Date? required public init(){} } public class PlanningResponse : Codable { public var surface:PlanningSurface? public var canSeePay:Bool? public var responseStatus:ResponseStatus? required public init(){} } public class PlanningSurface : Codable { public var weekLabel:String? public var weekStart:Date? public var workerCount:Int? public var ot:OtExposureBoard? public var perDiem:PerDiemBoard? public var margin:MarginBoard? public var utilization:UtilizationBoard? public var suggestions:[PlanningSuggestion] = [] required public init(){} } public class OtExposureBoard : Codable { public var totalOtCost:Double? public var totalOtHours:Double? public var overCount:Int? public var workerCount:Int? public var rows:[OtRow] = [] required public init(){} } public class PerDiemBoard : Codable { public var totalCost:Double? public var nonTaxable:Double? public var taxable:Double? public var awayCount:Int? public var jobs:[PerDiemJobRow] = [] required public init(){} } public class MarginBoard : Codable { public var jobCount:Int? public var totalFade:Double? public var jobs:[MarginJobRow] = [] required public init(){} } public class UtilizationBoard : Codable { public var underCount:Int? public var overCount:Int? public var rows:[UtilRow] = [] required public init(){} } public class PlanningSuggestion : Codable { public var id:String? public var kind:String? public var title:String? public var detail:String? public var saveText:String? public var effect:String? public var ruleId:String? public var legalNote:String? public var applyLabel:String? public var severity:String? required public init(){} } public class OtRow : Codable { public var contactID:Int? public var workerName:String? public var classCode:String? public var crew:String? public var job:String? public var patternLabel:String? public var projHours:Double? public var otHours:Double? public var dtHours:Double? public var otCost:Double? public var state:String? public var tone:String? required public init(){} } public class PerDiemJobRow : Codable { public var job:String? public var total:Double? public var nonTax:Double? public var tax:Double? public var days:Int? public var awayCount:Int? public var dayRateFlag:Bool? required public init(){} } public class MarginJobRow : Codable { public var job:String? public var basePct:Double? public var projPct:Double? public var fadePts:Double? public var severity:String? public var otCost:Double? public var perDiem:Double? required public init(){} } public class UtilRow : Codable { public var contactID:Int? public var workerName:String? public var crew:String? public var projHours:Double? public var baselineHours:Double? public var pct:Double? public var band:String? required public init(){} }