/* Options: Date: 2025-12-06 05:14:27 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: ProjectCrewMemberRequest.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/v1/ProjectCrew/Member/", "POST,PUT,DELETE,OPTIONS") public class ProjectCrewMemberRequest : IReturn, Codable { public typealias Return = ProjectCrewMemberResponse public var projectCrewMember:ProjectCrewMember? required public init(){} } public class ProjectCrewMemberResponse : Codable { public var responseStatus:ResponseStatus? public var projectCrewMembers:[Contact] = [] required public init(){} } public class ProjectCrewMember : Contact { public var projectCrewContactID:Int? public var projectID:Int? public var crewID:Int? public var crewRate:Double? public var billedCrewRate:Double? public var projectCrewID:Int? public var status:String? public var firstAddedDate:Date? public var dateAddedToThisProject:Date? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case projectCrewContactID case projectID case crewID case crewRate case billedCrewRate case projectCrewID case status case firstAddedDate case dateAddedToThisProject } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) projectCrewContactID = try container.decodeIfPresent(Int.self, forKey: .projectCrewContactID) projectID = try container.decodeIfPresent(Int.self, forKey: .projectID) crewID = try container.decodeIfPresent(Int.self, forKey: .crewID) crewRate = try container.decodeIfPresent(Double.self, forKey: .crewRate) billedCrewRate = try container.decodeIfPresent(Double.self, forKey: .billedCrewRate) projectCrewID = try container.decodeIfPresent(Int.self, forKey: .projectCrewID) status = try container.decodeIfPresent(String.self, forKey: .status) firstAddedDate = try container.decodeIfPresent(Date.self, forKey: .firstAddedDate) dateAddedToThisProject = try container.decodeIfPresent(Date.self, forKey: .dateAddedToThisProject) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if projectCrewContactID != nil { try container.encode(projectCrewContactID, forKey: .projectCrewContactID) } if projectID != nil { try container.encode(projectID, forKey: .projectID) } if crewID != nil { try container.encode(crewID, forKey: .crewID) } if crewRate != nil { try container.encode(crewRate, forKey: .crewRate) } if billedCrewRate != nil { try container.encode(billedCrewRate, forKey: .billedCrewRate) } if projectCrewID != nil { try container.encode(projectCrewID, forKey: .projectCrewID) } if status != nil { try container.encode(status, forKey: .status) } if firstAddedDate != nil { try container.encode(firstAddedDate, forKey: .firstAddedDate) } if dateAddedToThisProject != nil { try container.encode(dateAddedToThisProject, forKey: .dateAddedToThisProject) } } } public class Contact : Codable { public var contactId:Int? public var contactType:Int? public var firstName:String? public var lastName:String? public var name:String? public var role:String? public var title:String? public var emailWork:String? public var emailPersonal:String? public var district:String? public var districtID:Int? public var school:String? public var schoolID:Int? public var state:String? public var stateName:String? public var stateID:Int? public var countyID:Int? public var county:String? public var phone:String? public var department:String? public var flow:String? public var lastContact:Date? public var doNotContact:Bool? public var active:Bool? public var agentId:Int? public var phoneAlt:String? public var peraContactId:Int? public var roomNumber:String? public var sourceTypeId:Int? public var sourceTypeDesc:String? public var sourceNote:String? public var contactStatusId:Int? public var contactStatusDesc:String? public var ssn:String? public var dateOfBirth:Date? public var deleted:Bool? public var isShared:Bool? public var address_line1:String? public var address_city:String? public var address_state:String? public var address_zip:String? public var deletedBy:String? public var deletedDateTimeUtc:Date? public var hasNBC:Bool? public var hasFactFinderSheet:Bool? public var middleInitial:String? public var tags:String? public var dateCreated:Date? public var phoneLabel:String? public var altPhoneLabel:String? public var carriers:String? public var contactImage:String? public var companyAffiliation:String? public var additionalInformation:String? public var hasGiftCard:Bool? public var contactCategory:Int? public var writingAgentId:Int? public var writingAgentName:String? public var maritalStatus:String? public var totalDebtAmount:Double? public var numberOfDebtAccounts:Int? public var factFinderCodeId:Int? public var businessName:String? public var dba:String? public var contactGUID:String? public var projectEndDate:Date? public var rate:Int? public var jobID:Int? public var jobName:String? public var jobCount:Int? public var locked:Bool? public var lockedByAgentId:Int? public var lockedTimestamp:Date? public var initials:String? public var contactCategoryName:String? public var smsOptIn:Bool? required public init(){} }