Trendsic Platform Service

<back to all web services

AdditionalServiceDetailRequest

Requires Authentication
The following routes are available for this service:
GET,OPTIONS/v1/additionalservice/{Id}
import 'package:servicestack/servicestack.dart';

class AdditionalServiceRequestPhoto implements IConvertible
{
    int? AdditionalServiceRequestPhotoID;
    String? Url;
    String? MimeType;
    DateTime? CreatedAt;

    AdditionalServiceRequestPhoto({this.AdditionalServiceRequestPhotoID,this.Url,this.MimeType,this.CreatedAt});
    AdditionalServiceRequestPhoto.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        AdditionalServiceRequestPhotoID = json['AdditionalServiceRequestPhotoID'];
        Url = json['Url'];
        MimeType = json['MimeType'];
        CreatedAt = JsonConverters.fromJson(json['CreatedAt'],'DateTime',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'AdditionalServiceRequestPhotoID': AdditionalServiceRequestPhotoID,
        'Url': Url,
        'MimeType': MimeType,
        'CreatedAt': JsonConverters.toJson(CreatedAt,'DateTime',context!)
    };

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

class AdditionalServiceRequest implements IConvertible
{
    int? AdditionalServiceRequestID;
    String? AdditionalServiceRequestUID;
    String? TenantId;
    String? BranchId;
    String? BranchName;
    int? ProjectID;
    String? ProjectName;
    String? ProjectUID;
    int? JobID;
    int? AgreementJobID;
    int? RequestedByContactID;
    String? RequestedByName;
    int? CustomerContactID;
    String? CustomerName;
    String? CustomerEmail;
    String? CustomerPhone;
    bool? CustomerSmsOptIn;
    String? Description;
    String? Status;
    int? QuoteID;
    String? QuoteUID;
    String? QuoteStatus;
    double? QuoteTotal;
    bool? FinalPriceAfterCompletion;
    String? QuoteApprovedByName;
    DateTime? QuoteApprovedAt;
    int? ConvertedJobID;
    int? PhotoCount;
    String? CreatedBy;
    DateTime? CreatedAt;
    String? UpdatedBy;
    DateTime? UpdatedAt;
    List<AdditionalServiceRequestPhoto>? Photos = [];

    AdditionalServiceRequest({this.AdditionalServiceRequestID,this.AdditionalServiceRequestUID,this.TenantId,this.BranchId,this.BranchName,this.ProjectID,this.ProjectName,this.ProjectUID,this.JobID,this.AgreementJobID,this.RequestedByContactID,this.RequestedByName,this.CustomerContactID,this.CustomerName,this.CustomerEmail,this.CustomerPhone,this.CustomerSmsOptIn,this.Description,this.Status,this.QuoteID,this.QuoteUID,this.QuoteStatus,this.QuoteTotal,this.FinalPriceAfterCompletion,this.QuoteApprovedByName,this.QuoteApprovedAt,this.ConvertedJobID,this.PhotoCount,this.CreatedBy,this.CreatedAt,this.UpdatedBy,this.UpdatedAt,this.Photos});
    AdditionalServiceRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        AdditionalServiceRequestID = json['AdditionalServiceRequestID'];
        AdditionalServiceRequestUID = json['AdditionalServiceRequestUID'];
        TenantId = json['TenantId'];
        BranchId = json['BranchId'];
        BranchName = json['BranchName'];
        ProjectID = json['ProjectID'];
        ProjectName = json['ProjectName'];
        ProjectUID = json['ProjectUID'];
        JobID = json['JobID'];
        AgreementJobID = json['AgreementJobID'];
        RequestedByContactID = json['RequestedByContactID'];
        RequestedByName = json['RequestedByName'];
        CustomerContactID = json['CustomerContactID'];
        CustomerName = json['CustomerName'];
        CustomerEmail = json['CustomerEmail'];
        CustomerPhone = json['CustomerPhone'];
        CustomerSmsOptIn = json['CustomerSmsOptIn'];
        Description = json['Description'];
        Status = json['Status'];
        QuoteID = json['QuoteID'];
        QuoteUID = json['QuoteUID'];
        QuoteStatus = json['QuoteStatus'];
        QuoteTotal = JsonConverters.toDouble(json['QuoteTotal']);
        FinalPriceAfterCompletion = json['FinalPriceAfterCompletion'];
        QuoteApprovedByName = json['QuoteApprovedByName'];
        QuoteApprovedAt = JsonConverters.fromJson(json['QuoteApprovedAt'],'DateTime',context!);
        ConvertedJobID = json['ConvertedJobID'];
        PhotoCount = json['PhotoCount'];
        CreatedBy = json['CreatedBy'];
        CreatedAt = JsonConverters.fromJson(json['CreatedAt'],'DateTime',context!);
        UpdatedBy = json['UpdatedBy'];
        UpdatedAt = JsonConverters.fromJson(json['UpdatedAt'],'DateTime',context!);
        Photos = JsonConverters.fromJson(json['Photos'],'List<AdditionalServiceRequestPhoto>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'AdditionalServiceRequestID': AdditionalServiceRequestID,
        'AdditionalServiceRequestUID': AdditionalServiceRequestUID,
        'TenantId': TenantId,
        'BranchId': BranchId,
        'BranchName': BranchName,
        'ProjectID': ProjectID,
        'ProjectName': ProjectName,
        'ProjectUID': ProjectUID,
        'JobID': JobID,
        'AgreementJobID': AgreementJobID,
        'RequestedByContactID': RequestedByContactID,
        'RequestedByName': RequestedByName,
        'CustomerContactID': CustomerContactID,
        'CustomerName': CustomerName,
        'CustomerEmail': CustomerEmail,
        'CustomerPhone': CustomerPhone,
        'CustomerSmsOptIn': CustomerSmsOptIn,
        'Description': Description,
        'Status': Status,
        'QuoteID': QuoteID,
        'QuoteUID': QuoteUID,
        'QuoteStatus': QuoteStatus,
        'QuoteTotal': QuoteTotal,
        'FinalPriceAfterCompletion': FinalPriceAfterCompletion,
        'QuoteApprovedByName': QuoteApprovedByName,
        'QuoteApprovedAt': JsonConverters.toJson(QuoteApprovedAt,'DateTime',context!),
        'ConvertedJobID': ConvertedJobID,
        'PhotoCount': PhotoCount,
        'CreatedBy': CreatedBy,
        'CreatedAt': JsonConverters.toJson(CreatedAt,'DateTime',context!),
        'UpdatedBy': UpdatedBy,
        'UpdatedAt': JsonConverters.toJson(UpdatedAt,'DateTime',context!),
        'Photos': JsonConverters.toJson(Photos,'List<AdditionalServiceRequestPhoto>',context!)
    };

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

class AdditionalServiceDetailResponse implements IConvertible
{
    ResponseStatus? ResponseStatus;
    AdditionalServiceRequest? Request;

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

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

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

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

class AdditionalServiceDetailRequest implements IConvertible
{
    int? Id;

    AdditionalServiceDetailRequest({this.Id});
    AdditionalServiceDetailRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Id = json['Id'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Id': Id
    };

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

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

Dart AdditionalServiceDetailRequest DTOs

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

To embed the response in a jsonp callback, append ?callback=myCallback

HTTP + JSON

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

GET /v1/additionalservice/{Id} HTTP/1.1 
Host: api.dev.dynamics.trendsic.com 
Accept: application/json
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: length

{"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}},"Request":{"AdditionalServiceRequestID":0,"AdditionalServiceRequestUID":"00000000000000000000000000000000","TenantId":"00000000000000000000000000000000","BranchId":"00000000000000000000000000000000","BranchName":"String","ProjectID":0,"ProjectName":"String","ProjectUID":"00000000000000000000000000000000","JobID":0,"AgreementJobID":0,"RequestedByContactID":0,"RequestedByName":"String","CustomerContactID":0,"CustomerName":"String","CustomerEmail":"String","CustomerPhone":"String","CustomerSmsOptIn":false,"Description":"String","Status":"String","QuoteID":0,"QuoteUID":"00000000000000000000000000000000","QuoteStatus":"String","QuoteTotal":0,"FinalPriceAfterCompletion":false,"QuoteApprovedByName":"String","QuoteApprovedAt":"0001-01-01T00:00:00.0000000","ConvertedJobID":0,"PhotoCount":0,"CreatedBy":"String","CreatedAt":"0001-01-01T00:00:00.0000000","UpdatedBy":"String","UpdatedAt":"0001-01-01T00:00:00.0000000","Photos":[{"AdditionalServiceRequestPhotoID":0,"Url":"String","MimeType":"String","CreatedAt":"0001-01-01T00:00:00.0000000"}]}}