Trendsic Platform Service

<back to all web services

ServiceAgreementRequest

Requires Authentication
The following routes are available for this service:
GET,OPTIONS/v1/project/{ProjectID}/agreements
GET,POST,PUT,DELETE,OPTIONS/v1/serviceagreement
GET,DELETE,OPTIONS/v1/serviceagreement/{AgreementID}
import 'package:servicestack/servicestack.dart';

class ServiceAgreement implements IConvertible
{
    int? AgreementID;
    String? AgreementUID;
    String? TenantId;
    String? BranchId;
    String? BranchName;
    int? ProjectID;
    String? ProjectName;
    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;
    DateTime? EffectiveStartDate;
    DateTime? EndDate;
    int? PreferredCrewID;
    String? PreferredCrewName;
    String? ExternalRef;
    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.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.EffectiveStartDate,this.EndDate,this.PreferredCrewID,this.PreferredCrewName,this.ExternalRef,this.CreatedBy,this.CreatedAt,this.UpdatedBy,this.UpdatedAt,this.NextVisitDate,this.VisitsThisPeriod});
    ServiceAgreement.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        AgreementID = json['AgreementID'];
        AgreementUID = json['AgreementUID'];
        TenantId = json['TenantId'];
        BranchId = json['BranchId'];
        BranchName = json['BranchName'];
        ProjectID = json['ProjectID'];
        ProjectName = json['ProjectName'];
        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'];
        EffectiveStartDate = JsonConverters.fromJson(json['EffectiveStartDate'],'DateTime',context!);
        EndDate = JsonConverters.fromJson(json['EndDate'],'DateTime',context!);
        PreferredCrewID = json['PreferredCrewID'];
        PreferredCrewName = json['PreferredCrewName'];
        ExternalRef = json['ExternalRef'];
        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<String, dynamic> toJson() => {
        'AgreementID': AgreementID,
        'AgreementUID': AgreementUID,
        'TenantId': TenantId,
        'BranchId': BranchId,
        'BranchName': BranchName,
        'ProjectID': ProjectID,
        'ProjectName': ProjectName,
        '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,
        'EffectiveStartDate': JsonConverters.toJson(EffectiveStartDate,'DateTime',context!),
        'EndDate': JsonConverters.toJson(EndDate,'DateTime',context!),
        'PreferredCrewID': PreferredCrewID,
        'PreferredCrewName': PreferredCrewName,
        'ExternalRef': ExternalRef,
        '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>? ServiceAgreement = [];

    ServiceAgreementResponse({this.ResponseStatus,this.ServiceAgreement});
    ServiceAgreementResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!);
        ServiceAgreement = JsonConverters.fromJson(json['ServiceAgreement'],'List<ServiceAgreement>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!),
        'ServiceAgreement': JsonConverters.toJson(ServiceAgreement,'List<ServiceAgreement>',context!)
    };

    getTypeName() => "ServiceAgreementResponse";
    TypeContext? context = _ctx;
}

class ServiceAgreementRequest implements IConvertible
{
    int? AgreementID;
    int? ProjectID;
    List<ServiceAgreement>? ServiceAgreement = [];

    ServiceAgreementRequest({this.AgreementID,this.ProjectID,this.ServiceAgreement});
    ServiceAgreementRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        AgreementID = json['AgreementID'];
        ProjectID = json['ProjectID'];
        ServiceAgreement = JsonConverters.fromJson(json['ServiceAgreement'],'List<ServiceAgreement>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'AgreementID': AgreementID,
        'ProjectID': ProjectID,
        'ServiceAgreement': JsonConverters.toJson(ServiceAgreement,'List<ServiceAgreement>',context!)
    };

    getTypeName() => "ServiceAgreementRequest";
    TypeContext? context = _ctx;
}

TypeContext _ctx = TypeContext(library: 'api.dev.dynamics.trendsic.com', types: <String, TypeInfo> {
    'ServiceAgreement': TypeInfo(TypeOf.Class, create:() => ServiceAgreement()),
    'ServiceAgreementResponse': TypeInfo(TypeOf.Class, create:() => ServiceAgreementResponse()),
    'List<ServiceAgreement>': TypeInfo(TypeOf.Class, create:() => <ServiceAgreement>[]),
    'ServiceAgreementRequest': TypeInfo(TypeOf.Class, create:() => ServiceAgreementRequest()),
});

Dart ServiceAgreementRequest DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + JSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /v1/serviceagreement HTTP/1.1 
Host: api.dev.dynamics.trendsic.com 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	AgreementID: 0,
	ProjectID: 0,
	ServiceAgreement: 
	[
		{
			AgreementID: 0,
			AgreementUID: 00000000000000000000000000000000,
			TenantId: 00000000000000000000000000000000,
			BranchId: 00000000000000000000000000000000,
			BranchName: String,
			ProjectID: 0,
			ProjectName: String,
			Name: String,
			Status: String,
			PricingShape: String,
			MonthlyAmount: 0,
			PerVisitAmount: 0,
			SkipPolicy: String,
			SeasonStartMonth: 0,
			SeasonStartDay: 0,
			SeasonEndMonth: 0,
			SeasonEndDay: 0,
			RecurrenceFrequency: String,
			RecurrenceBy: String,
			RecurrenceByValue: String,
			EffectiveStartDate: 0001-01-01,
			EndDate: 0001-01-01,
			PreferredCrewID: 0,
			PreferredCrewName: String,
			ExternalRef: String,
			CreatedBy: String,
			CreatedAt: 0001-01-01,
			UpdatedBy: String,
			UpdatedAt: 0001-01-01,
			NextVisitDate: 0001-01-01,
			VisitsThisPeriod: 0
		}
	]
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	ResponseStatus: 
	{
		ErrorCode: String,
		Message: String,
		StackTrace: String,
		Errors: 
		[
			{
				ErrorCode: String,
				FieldName: String,
				Message: String,
				Meta: 
				{
					String: String
				}
			}
		],
		Meta: 
		{
			String: String
		}
	},
	ServiceAgreement: 
	[
		{
			AgreementID: 0,
			AgreementUID: 00000000000000000000000000000000,
			TenantId: 00000000000000000000000000000000,
			BranchId: 00000000000000000000000000000000,
			BranchName: String,
			ProjectID: 0,
			ProjectName: String,
			Name: String,
			Status: String,
			PricingShape: String,
			MonthlyAmount: 0,
			PerVisitAmount: 0,
			SkipPolicy: String,
			SeasonStartMonth: 0,
			SeasonStartDay: 0,
			SeasonEndMonth: 0,
			SeasonEndDay: 0,
			RecurrenceFrequency: String,
			RecurrenceBy: String,
			RecurrenceByValue: String,
			EffectiveStartDate: 0001-01-01,
			EndDate: 0001-01-01,
			PreferredCrewID: 0,
			PreferredCrewName: String,
			ExternalRef: String,
			CreatedBy: String,
			CreatedAt: 0001-01-01,
			UpdatedBy: String,
			UpdatedAt: 0001-01-01,
			NextVisitDate: 0001-01-01,
			VisitsThisPeriod: 0
		}
	]
}