/* Options: Date: 2026-06-22 22:53:42 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: AgreementExpiringRequest.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart */ import 'package:servicestack/servicestack.dart'; class ServiceAgreement implements IConvertible { int? AgreementID; String? AgreementUID; String? TenantId; String? BranchId; String? BranchName; int? ProjectID; String? ProjectName; int? ProjectLocationID; String? ProjectLocationName; String? Name; String? Status; String? PricingShape; double? MonthlyAmount; double? PerVisitAmount; String? SkipPolicy; int? SeasonStartMonth; int? SeasonStartDay; int? SeasonEndMonth; int? SeasonEndDay; String? RecurrenceFrequency; String? RecurrenceBy; String? RecurrenceByValue; int? RecurrenceInterval; String? WeeklyDayMode; DateTime? EffectiveStartDate; DateTime? EndDate; bool? CompletionAnchored; int? PreferredCrewID; String? PreferredCrewName; int? BackingJobID; String? ExternalRef; int? EstimatedDurationMinutes; int? ActualDurationMinutes; String? CreatedBy; DateTime? CreatedAt; String? UpdatedBy; DateTime? UpdatedAt; DateTime? NextVisitDate; int? VisitsThisPeriod; ServiceAgreement({this.AgreementID,this.AgreementUID,this.TenantId,this.BranchId,this.BranchName,this.ProjectID,this.ProjectName,this.ProjectLocationID,this.ProjectLocationName,this.Name,this.Status,this.PricingShape,this.MonthlyAmount,this.PerVisitAmount,this.SkipPolicy,this.SeasonStartMonth,this.SeasonStartDay,this.SeasonEndMonth,this.SeasonEndDay,this.RecurrenceFrequency,this.RecurrenceBy,this.RecurrenceByValue,this.RecurrenceInterval,this.WeeklyDayMode,this.EffectiveStartDate,this.EndDate,this.CompletionAnchored,this.PreferredCrewID,this.PreferredCrewName,this.BackingJobID,this.ExternalRef,this.EstimatedDurationMinutes,this.ActualDurationMinutes,this.CreatedBy,this.CreatedAt,this.UpdatedBy,this.UpdatedAt,this.NextVisitDate,this.VisitsThisPeriod}); ServiceAgreement.fromJson(Map json) { fromMap(json); } fromMap(Map json) { AgreementID = json['AgreementID']; AgreementUID = json['AgreementUID']; TenantId = json['TenantId']; BranchId = json['BranchId']; BranchName = json['BranchName']; ProjectID = json['ProjectID']; ProjectName = json['ProjectName']; ProjectLocationID = json['ProjectLocationID']; ProjectLocationName = json['ProjectLocationName']; Name = json['Name']; Status = json['Status']; PricingShape = json['PricingShape']; MonthlyAmount = JsonConverters.toDouble(json['MonthlyAmount']); PerVisitAmount = JsonConverters.toDouble(json['PerVisitAmount']); SkipPolicy = json['SkipPolicy']; SeasonStartMonth = json['SeasonStartMonth']; SeasonStartDay = json['SeasonStartDay']; SeasonEndMonth = json['SeasonEndMonth']; SeasonEndDay = json['SeasonEndDay']; RecurrenceFrequency = json['RecurrenceFrequency']; RecurrenceBy = json['RecurrenceBy']; RecurrenceByValue = json['RecurrenceByValue']; RecurrenceInterval = json['RecurrenceInterval']; WeeklyDayMode = json['WeeklyDayMode']; EffectiveStartDate = JsonConverters.fromJson(json['EffectiveStartDate'],'DateTime',context!); EndDate = JsonConverters.fromJson(json['EndDate'],'DateTime',context!); CompletionAnchored = json['CompletionAnchored']; PreferredCrewID = json['PreferredCrewID']; PreferredCrewName = json['PreferredCrewName']; BackingJobID = json['BackingJobID']; ExternalRef = json['ExternalRef']; EstimatedDurationMinutes = json['EstimatedDurationMinutes']; ActualDurationMinutes = json['ActualDurationMinutes']; CreatedBy = json['CreatedBy']; CreatedAt = JsonConverters.fromJson(json['CreatedAt'],'DateTime',context!); UpdatedBy = json['UpdatedBy']; UpdatedAt = JsonConverters.fromJson(json['UpdatedAt'],'DateTime',context!); NextVisitDate = JsonConverters.fromJson(json['NextVisitDate'],'DateTime',context!); VisitsThisPeriod = json['VisitsThisPeriod']; return this; } Map toJson() => { 'AgreementID': AgreementID, 'AgreementUID': AgreementUID, 'TenantId': TenantId, 'BranchId': BranchId, 'BranchName': BranchName, 'ProjectID': ProjectID, 'ProjectName': ProjectName, 'ProjectLocationID': ProjectLocationID, 'ProjectLocationName': ProjectLocationName, 'Name': Name, 'Status': Status, 'PricingShape': PricingShape, 'MonthlyAmount': MonthlyAmount, 'PerVisitAmount': PerVisitAmount, 'SkipPolicy': SkipPolicy, 'SeasonStartMonth': SeasonStartMonth, 'SeasonStartDay': SeasonStartDay, 'SeasonEndMonth': SeasonEndMonth, 'SeasonEndDay': SeasonEndDay, 'RecurrenceFrequency': RecurrenceFrequency, 'RecurrenceBy': RecurrenceBy, 'RecurrenceByValue': RecurrenceByValue, 'RecurrenceInterval': RecurrenceInterval, 'WeeklyDayMode': WeeklyDayMode, 'EffectiveStartDate': JsonConverters.toJson(EffectiveStartDate,'DateTime',context!), 'EndDate': JsonConverters.toJson(EndDate,'DateTime',context!), 'CompletionAnchored': CompletionAnchored, 'PreferredCrewID': PreferredCrewID, 'PreferredCrewName': PreferredCrewName, 'BackingJobID': BackingJobID, 'ExternalRef': ExternalRef, 'EstimatedDurationMinutes': EstimatedDurationMinutes, 'ActualDurationMinutes': ActualDurationMinutes, 'CreatedBy': CreatedBy, 'CreatedAt': JsonConverters.toJson(CreatedAt,'DateTime',context!), 'UpdatedBy': UpdatedBy, 'UpdatedAt': JsonConverters.toJson(UpdatedAt,'DateTime',context!), 'NextVisitDate': JsonConverters.toJson(NextVisitDate,'DateTime',context!), 'VisitsThisPeriod': VisitsThisPeriod }; getTypeName() => "ServiceAgreement"; TypeContext? context = _ctx; } class ServiceAgreementResponse implements IConvertible { ResponseStatus? ResponseStatus; List? ServiceAgreement = []; ServiceAgreementResponse({this.ResponseStatus,this.ServiceAgreement}); ServiceAgreementResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!); ServiceAgreement = JsonConverters.fromJson(json['ServiceAgreement'],'List',context!); return this; } Map toJson() => { 'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!), 'ServiceAgreement': JsonConverters.toJson(ServiceAgreement,'List',context!) }; getTypeName() => "ServiceAgreementResponse"; TypeContext? context = _ctx; } // @Route("/v1/serviceagreement/expiring", "GET,OPTIONS") class AgreementExpiringRequest implements IReturn, IConvertible, IGet { int? WithinDays; AgreementExpiringRequest({this.WithinDays}); AgreementExpiringRequest.fromJson(Map json) { fromMap(json); } fromMap(Map json) { WithinDays = json['WithinDays']; return this; } Map toJson() => { 'WithinDays': WithinDays }; createResponse() => ServiceAgreementResponse(); getResponseTypeName() => "ServiceAgreementResponse"; getTypeName() => "AgreementExpiringRequest"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'api.dev.dynamics.trendsic.com', types: { 'ServiceAgreement': TypeInfo(TypeOf.Class, create:() => ServiceAgreement()), 'ServiceAgreementResponse': TypeInfo(TypeOf.Class, create:() => ServiceAgreementResponse()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'AgreementExpiringRequest': TypeInfo(TypeOf.Class, create:() => AgreementExpiringRequest()), });