/* Options: Date: 2025-08-05 02:42:54 SwiftVersion: 5.0 Version: 8.0 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://www.asg.com.au/RestApi //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True IncludeTypes: TouchpointRequestDto.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/sitefinity/data-intelligence/touchpoint", "GET") public class TouchpointRequestDto : IReturn, Codable { public typealias Return = TouchpointsViewModel public var filter:String required public init(){} } public class TouchpointsViewModel : Codable { public var touchpoints:IList required public init(){} } public class Touchpoint : Codable { public var id:Int public var name:String public var definition:ConditionExpression public var state:CalculationState public var createdOn:Date? public var createdByUserId:String public var modifiedOn:Date? public var modifiedByUserId:String public var totalHits:Int? public var totalMetaClientHits:Int? public var absoluteHits:Int? public var attributionsCalculatedOn:Date? public var statisticsCalculatedOn:Date? public var errors:String public var touchpointType:TouchpointType required public init(){} } public class ConditionExpression : Codable { public var relation:String public var parts:IList required public init(){} } public enum CalculationState : String, Codable { case Inactive case Initializing case Active case ToBeDeleted case Error case Pending case Expired } public enum TouchpointType : String, Codable { case Touchpoint case Discovered case Personalization case AbVariant case AbGoal case Content } public class ConditionPart : Codable { public var id:Int public var predicate:String public var isNegated:Bool public var predicateOperator:MatchingOperator public var objectOperator:MatchingOperator public var objects:[String] = [] public var clientAttribute:String public var contactPropertyId:String? public var objectMetadata:[String:String] = [:] public var urlParameters:[String:String] = [:] required public init(){} } public enum MatchingOperator : String, Codable { case ExactMatch case Contains case StartsWith case EndsWith case UrlStrippedMatch }