/* Options: Date: 2026-10-16 23:46:47 Version: 8.80 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://api.dev.dynamics.trendsic.com //GlobalNamespace: //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: ContactVisitSummaryRequest.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart */ import 'package:servicestack/servicestack.dart'; class ContactQueueVisit implements IConvertible { String? CheckinId; String? BranchId; String? BranchName; String? LineId; String? ServiceName; int? Outcome; String? OutcomeLabel; bool? IsAppointment; DateTime? SignInUtc; DateTime? CalledUtc; DateTime? FirstStartUtc; DateTime? CompletedTime; int? WaitMinutes; int? ServiceMinutes; String? WindowName; String? TicketLabel; String? HoldReason; DateTime? ReturnedTime; int? PausedMinutes; ContactQueueVisit({this.CheckinId,this.BranchId,this.BranchName,this.LineId,this.ServiceName,this.Outcome,this.OutcomeLabel,this.IsAppointment,this.SignInUtc,this.CalledUtc,this.FirstStartUtc,this.CompletedTime,this.WaitMinutes,this.ServiceMinutes,this.WindowName,this.TicketLabel,this.HoldReason,this.ReturnedTime,this.PausedMinutes}); ContactQueueVisit.fromJson(Map json) { fromMap(json); } fromMap(Map json) { CheckinId = json['CheckinId']; BranchId = json['BranchId']; BranchName = json['BranchName']; LineId = json['LineId']; ServiceName = json['ServiceName']; Outcome = json['Outcome']; OutcomeLabel = json['OutcomeLabel']; IsAppointment = json['IsAppointment']; SignInUtc = JsonConverters.fromJson(json['SignInUtc'],'DateTime',context!); CalledUtc = JsonConverters.fromJson(json['CalledUtc'],'DateTime',context!); FirstStartUtc = JsonConverters.fromJson(json['FirstStartUtc'],'DateTime',context!); CompletedTime = JsonConverters.fromJson(json['CompletedTime'],'DateTime',context!); WaitMinutes = json['WaitMinutes']; ServiceMinutes = json['ServiceMinutes']; WindowName = json['WindowName']; TicketLabel = json['TicketLabel']; HoldReason = json['HoldReason']; ReturnedTime = JsonConverters.fromJson(json['ReturnedTime'],'DateTime',context!); PausedMinutes = json['PausedMinutes']; return this; } Map toJson() => { 'CheckinId': CheckinId, 'BranchId': BranchId, 'BranchName': BranchName, 'LineId': LineId, 'ServiceName': ServiceName, 'Outcome': Outcome, 'OutcomeLabel': OutcomeLabel, 'IsAppointment': IsAppointment, 'SignInUtc': JsonConverters.toJson(SignInUtc,'DateTime',context!), 'CalledUtc': JsonConverters.toJson(CalledUtc,'DateTime',context!), 'FirstStartUtc': JsonConverters.toJson(FirstStartUtc,'DateTime',context!), 'CompletedTime': JsonConverters.toJson(CompletedTime,'DateTime',context!), 'WaitMinutes': WaitMinutes, 'ServiceMinutes': ServiceMinutes, 'WindowName': WindowName, 'TicketLabel': TicketLabel, 'HoldReason': HoldReason, 'ReturnedTime': JsonConverters.toJson(ReturnedTime,'DateTime',context!), 'PausedMinutes': PausedMinutes }; getTypeName() => "ContactQueueVisit"; TypeContext? context = _ctx; } class ContactQueueVisitSummary implements IConvertible { int? Visits; int? Completed; int? NoShows; int? NoShows90d; int? Cancelled; int? Unfulfilled; int? Appointments; DateTime? LastVisitUtc; DateTime? LastNoShowUtc; double? AvgWaitMinutes; bool? SmsOptIn; int? TextsSent90d; String? SayNameAs; ContactQueueVisitSummary({this.Visits,this.Completed,this.NoShows,this.NoShows90d,this.Cancelled,this.Unfulfilled,this.Appointments,this.LastVisitUtc,this.LastNoShowUtc,this.AvgWaitMinutes,this.SmsOptIn,this.TextsSent90d,this.SayNameAs}); ContactQueueVisitSummary.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Visits = json['Visits']; Completed = json['Completed']; NoShows = json['NoShows']; NoShows90d = json['NoShows90d']; Cancelled = json['Cancelled']; Unfulfilled = json['Unfulfilled']; Appointments = json['Appointments']; LastVisitUtc = JsonConverters.fromJson(json['LastVisitUtc'],'DateTime',context!); LastNoShowUtc = JsonConverters.fromJson(json['LastNoShowUtc'],'DateTime',context!); AvgWaitMinutes = JsonConverters.toDouble(json['AvgWaitMinutes']); SmsOptIn = json['SmsOptIn']; TextsSent90d = json['TextsSent90d']; SayNameAs = json['SayNameAs']; return this; } Map toJson() => { 'Visits': Visits, 'Completed': Completed, 'NoShows': NoShows, 'NoShows90d': NoShows90d, 'Cancelled': Cancelled, 'Unfulfilled': Unfulfilled, 'Appointments': Appointments, 'LastVisitUtc': JsonConverters.toJson(LastVisitUtc,'DateTime',context!), 'LastNoShowUtc': JsonConverters.toJson(LastNoShowUtc,'DateTime',context!), 'AvgWaitMinutes': AvgWaitMinutes, 'SmsOptIn': SmsOptIn, 'TextsSent90d': TextsSent90d, 'SayNameAs': SayNameAs }; getTypeName() => "ContactQueueVisitSummary"; TypeContext? context = _ctx; } class ContactVisitsResponse implements IConvertible { ResponseStatus? ResponseStatus; List? Visits = []; ContactQueueVisitSummary? Summary; ContactVisitsResponse({this.ResponseStatus,this.Visits,this.Summary}); ContactVisitsResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!); Visits = JsonConverters.fromJson(json['Visits'],'List',context!); Summary = JsonConverters.fromJson(json['Summary'],'ContactQueueVisitSummary',context!); return this; } Map toJson() => { 'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!), 'Visits': JsonConverters.toJson(Visits,'List',context!), 'Summary': JsonConverters.toJson(Summary,'ContactQueueVisitSummary',context!) }; getTypeName() => "ContactVisitsResponse"; TypeContext? context = _ctx; } // @Route("/v1/contact/{ContactId}/visit-summary", "GET,OPTIONS") class ContactVisitSummaryRequest implements IReturn, IConvertible, IGet { int? ContactId; ContactVisitSummaryRequest({this.ContactId}); ContactVisitSummaryRequest.fromJson(Map json) { fromMap(json); } fromMap(Map json) { ContactId = json['ContactId']; return this; } Map toJson() => { 'ContactId': ContactId }; createResponse() => ContactVisitsResponse(); getResponseTypeName() => "ContactVisitsResponse"; getTypeName() => "ContactVisitSummaryRequest"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'api.dev.dynamics.trendsic.com', types: { 'ContactQueueVisit': TypeInfo(TypeOf.Class, create:() => ContactQueueVisit()), 'ContactQueueVisitSummary': TypeInfo(TypeOf.Class, create:() => ContactQueueVisitSummary()), 'ContactVisitsResponse': TypeInfo(TypeOf.Class, create:() => ContactVisitsResponse()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'ContactVisitSummaryRequest': TypeInfo(TypeOf.Class, create:() => ContactVisitSummaryRequest()), });