/* Options: Date: 2026-07-08 21:16:43 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: ProjectTimelineRequest.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/v1/project/{ProjectID}/timeline", "GET,OPTIONS") public class ProjectTimelineRequest : IReturn, Codable { public typealias Return = ProjectTimelineResponse public var projectID:Int? required public init(){} } public class ProjectTimelineResponse : Codable { public var responseStatus:ResponseStatus? public var timeline:ProjectTimeline? required public init(){} } public class JobDependency : Codable { public var jobDependencyID:Int? public var tenantId:String? public var projectID:Int? public var predecessorJobID:Int? public var successorJobID:Int? public var dependencyType:String? public var lagDays:Int? public var createdBy:String? public var createdAt:Date? public var updatedAt:Date? required public init(){} } public class ProjectTimeline : Codable { public var projectID:Int? public var jobs:[TimelineJob] = [] public var dependencies:[JobDependency] = [] required public init(){} } public class TimelineJob : Codable { public var jobID:Int? public var jobName:String? public var expectedStartDate:Date? public var expectedCompletionDate:Date? public var actualStartDate:Date? public var actualEndDate:Date? public var percentComplete:Double? public var statusID:Int? public var jobCategory:String? public var isAgreementVisit:Bool? public var occurrenceDate:Date? public var crew:[TimelineCrew] = [] public var equipment:[TimelineEquipment] = [] required public init(){} } public class TimelineCrew : Codable { public var projectJobCrewMemberID:Int? public var contactID:Int? public var contactName:String? public var budgetedHours:Double? required public init(){} } public class TimelineEquipment : Codable { public var projectJobEquipmentID:Int? public var equipmentID:Int? public var equipmentName:String? required public init(){} }