/* Options: Date: 2026-06-22 20:32:07 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: PortalVisitsRequest.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart */ import 'package:servicestack/servicestack.dart'; class CustomerVisit implements IConvertible { int? AgreementJobID; DateTime? VisitDate; DateTime? CompletedAt; String? ServiceName; String? CrewNotes; CustomerVisit({this.AgreementJobID,this.VisitDate,this.CompletedAt,this.ServiceName,this.CrewNotes}); CustomerVisit.fromJson(Map json) { fromMap(json); } fromMap(Map json) { AgreementJobID = json['AgreementJobID']; VisitDate = JsonConverters.fromJson(json['VisitDate'],'DateTime',context!); CompletedAt = JsonConverters.fromJson(json['CompletedAt'],'DateTime',context!); ServiceName = json['ServiceName']; CrewNotes = json['CrewNotes']; return this; } Map toJson() => { 'AgreementJobID': AgreementJobID, 'VisitDate': JsonConverters.toJson(VisitDate,'DateTime',context!), 'CompletedAt': JsonConverters.toJson(CompletedAt,'DateTime',context!), 'ServiceName': ServiceName, 'CrewNotes': CrewNotes }; getTypeName() => "CustomerVisit"; TypeContext? context = _ctx; } class CustomerVisitPhoto implements IConvertible { int? ProjectLocationAttachmentID; int? AgreementJobID; String? DocTitle; String? MimeType; DateTime? UploadDate; CustomerVisitPhoto({this.ProjectLocationAttachmentID,this.AgreementJobID,this.DocTitle,this.MimeType,this.UploadDate}); CustomerVisitPhoto.fromJson(Map json) { fromMap(json); } fromMap(Map json) { ProjectLocationAttachmentID = json['ProjectLocationAttachmentID']; AgreementJobID = json['AgreementJobID']; DocTitle = json['DocTitle']; MimeType = json['MimeType']; UploadDate = JsonConverters.fromJson(json['UploadDate'],'DateTime',context!); return this; } Map toJson() => { 'ProjectLocationAttachmentID': ProjectLocationAttachmentID, 'AgreementJobID': AgreementJobID, 'DocTitle': DocTitle, 'MimeType': MimeType, 'UploadDate': JsonConverters.toJson(UploadDate,'DateTime',context!) }; getTypeName() => "CustomerVisitPhoto"; TypeContext? context = _ctx; } class PortalVisitsResponse implements IConvertible { ResponseStatus? ResponseStatus; List? Visits = []; List? Photos = []; PortalVisitsResponse({this.ResponseStatus,this.Visits,this.Photos}); PortalVisitsResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!); Visits = JsonConverters.fromJson(json['Visits'],'List',context!); Photos = JsonConverters.fromJson(json['Photos'],'List',context!); return this; } Map toJson() => { 'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!), 'Visits': JsonConverters.toJson(Visits,'List',context!), 'Photos': JsonConverters.toJson(Photos,'List',context!) }; getTypeName() => "PortalVisitsResponse"; TypeContext? context = _ctx; } // @Route("/portal/{Token}/visits", "GET,OPTIONS") class PortalVisitsRequest implements IReturn, IConvertible, IGet { String? Token; PortalVisitsRequest({this.Token}); PortalVisitsRequest.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Token = json['Token']; return this; } Map toJson() => { 'Token': Token }; createResponse() => PortalVisitsResponse(); getResponseTypeName() => "PortalVisitsResponse"; getTypeName() => "PortalVisitsRequest"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'api.dev.dynamics.trendsic.com', types: { 'CustomerVisit': TypeInfo(TypeOf.Class, create:() => CustomerVisit()), 'CustomerVisitPhoto': TypeInfo(TypeOf.Class, create:() => CustomerVisitPhoto()), 'PortalVisitsResponse': TypeInfo(TypeOf.Class, create:() => PortalVisitsResponse()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'List': TypeInfo(TypeOf.Class, create:() => []), 'PortalVisitsRequest': TypeInfo(TypeOf.Class, create:() => PortalVisitsRequest()), });