Trendsic Platform Service

<back to all web services

InspectionDetailRequest

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

class InspectionPhoto implements IConvertible
{
    String? AttachmentId;
    String? FileName;
    String? Url;
    String? CreatedBy;
    DateTime? CreatedDate;
    bool? HasAnnotation;
    String? AnnotatedAttachmentId;
    String? AnnotatedUrl;

    InspectionPhoto({this.AttachmentId,this.FileName,this.Url,this.CreatedBy,this.CreatedDate,this.HasAnnotation,this.AnnotatedAttachmentId,this.AnnotatedUrl});
    InspectionPhoto.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        AttachmentId = json['AttachmentId'];
        FileName = json['FileName'];
        Url = json['Url'];
        CreatedBy = json['CreatedBy'];
        CreatedDate = JsonConverters.fromJson(json['CreatedDate'],'DateTime',context!);
        HasAnnotation = json['HasAnnotation'];
        AnnotatedAttachmentId = json['AnnotatedAttachmentId'];
        AnnotatedUrl = json['AnnotatedUrl'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'AttachmentId': AttachmentId,
        'FileName': FileName,
        'Url': Url,
        'CreatedBy': CreatedBy,
        'CreatedDate': JsonConverters.toJson(CreatedDate,'DateTime',context!),
        'HasAnnotation': HasAnnotation,
        'AnnotatedAttachmentId': AnnotatedAttachmentId,
        'AnnotatedUrl': AnnotatedUrl
    };

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

class InspectionItem implements IConvertible
{
    int? InspectionItemID;
    int? InspectionID;
    int? Seq;
    String? Section;
    String? Prompt;
    String? ResponseType;
    bool? IsRequired;
    String? Unit;
    String? Guidance;
    String? Result;
    String? Value;
    String? Notes;
    int? PhotoCount;
    int? LinkedPunchItemID;
    String? LinkedPunchNo;
    String? LinkedPunchStatus;
    int? LinkedNcrID;
    String? LinkedNcrNo;
    int? LinkedActionID;
    String? AnsweredBy;
    DateTime? AnsweredAt;
    List<InspectionPhoto>? Photos = [];

    InspectionItem({this.InspectionItemID,this.InspectionID,this.Seq,this.Section,this.Prompt,this.ResponseType,this.IsRequired,this.Unit,this.Guidance,this.Result,this.Value,this.Notes,this.PhotoCount,this.LinkedPunchItemID,this.LinkedPunchNo,this.LinkedPunchStatus,this.LinkedNcrID,this.LinkedNcrNo,this.LinkedActionID,this.AnsweredBy,this.AnsweredAt,this.Photos});
    InspectionItem.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        InspectionItemID = json['InspectionItemID'];
        InspectionID = json['InspectionID'];
        Seq = json['Seq'];
        Section = json['Section'];
        Prompt = json['Prompt'];
        ResponseType = json['ResponseType'];
        IsRequired = json['IsRequired'];
        Unit = json['Unit'];
        Guidance = json['Guidance'];
        Result = json['Result'];
        Value = json['Value'];
        Notes = json['Notes'];
        PhotoCount = json['PhotoCount'];
        LinkedPunchItemID = json['LinkedPunchItemID'];
        LinkedPunchNo = json['LinkedPunchNo'];
        LinkedPunchStatus = json['LinkedPunchStatus'];
        LinkedNcrID = json['LinkedNcrID'];
        LinkedNcrNo = json['LinkedNcrNo'];
        LinkedActionID = json['LinkedActionID'];
        AnsweredBy = json['AnsweredBy'];
        AnsweredAt = JsonConverters.fromJson(json['AnsweredAt'],'DateTime',context!);
        Photos = JsonConverters.fromJson(json['Photos'],'List<InspectionPhoto>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'InspectionItemID': InspectionItemID,
        'InspectionID': InspectionID,
        'Seq': Seq,
        'Section': Section,
        'Prompt': Prompt,
        'ResponseType': ResponseType,
        'IsRequired': IsRequired,
        'Unit': Unit,
        'Guidance': Guidance,
        'Result': Result,
        'Value': Value,
        'Notes': Notes,
        'PhotoCount': PhotoCount,
        'LinkedPunchItemID': LinkedPunchItemID,
        'LinkedPunchNo': LinkedPunchNo,
        'LinkedPunchStatus': LinkedPunchStatus,
        'LinkedNcrID': LinkedNcrID,
        'LinkedNcrNo': LinkedNcrNo,
        'LinkedActionID': LinkedActionID,
        'AnsweredBy': AnsweredBy,
        'AnsweredAt': JsonConverters.toJson(AnsweredAt,'DateTime',context!),
        'Photos': JsonConverters.toJson(Photos,'List<InspectionPhoto>',context!)
    };

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

class InspectionRequest implements IConvertible
{
    int? InspectionRequestID;
    int? InspectionID;
    String? Agency;
    String? ContactName;
    String? ContactPhone;
    String? PermitNo;
    DateTime? RequestedDate;
    String? RequestedWindow;
    String? Status;
    String? ConfirmationNo;
    String? Outcome;
    String? CreatedBy;
    DateTime? CreatedAt;
    DateTime? UpdatedAt;

    InspectionRequest({this.InspectionRequestID,this.InspectionID,this.Agency,this.ContactName,this.ContactPhone,this.PermitNo,this.RequestedDate,this.RequestedWindow,this.Status,this.ConfirmationNo,this.Outcome,this.CreatedBy,this.CreatedAt,this.UpdatedAt});
    InspectionRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        InspectionRequestID = json['InspectionRequestID'];
        InspectionID = json['InspectionID'];
        Agency = json['Agency'];
        ContactName = json['ContactName'];
        ContactPhone = json['ContactPhone'];
        PermitNo = json['PermitNo'];
        RequestedDate = JsonConverters.fromJson(json['RequestedDate'],'DateTime',context!);
        RequestedWindow = json['RequestedWindow'];
        Status = json['Status'];
        ConfirmationNo = json['ConfirmationNo'];
        Outcome = json['Outcome'];
        CreatedBy = json['CreatedBy'];
        CreatedAt = JsonConverters.fromJson(json['CreatedAt'],'DateTime',context!);
        UpdatedAt = JsonConverters.fromJson(json['UpdatedAt'],'DateTime',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'InspectionRequestID': InspectionRequestID,
        'InspectionID': InspectionID,
        'Agency': Agency,
        'ContactName': ContactName,
        'ContactPhone': ContactPhone,
        'PermitNo': PermitNo,
        'RequestedDate': JsonConverters.toJson(RequestedDate,'DateTime',context!),
        'RequestedWindow': RequestedWindow,
        'Status': Status,
        'ConfirmationNo': ConfirmationNo,
        'Outcome': Outcome,
        'CreatedBy': CreatedBy,
        'CreatedAt': JsonConverters.toJson(CreatedAt,'DateTime',context!),
        'UpdatedAt': JsonConverters.toJson(UpdatedAt,'DateTime',context!)
    };

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

class SignatureRecord implements IConvertible
{
    int? SignatureRecordID;
    String? EntityType;
    int? EntityID;
    String? Role;
    String? SignerName;
    int? SignerContactID;
    String? SignerUserId;
    String? Method;
    String? ImageAttachmentId;
    String? ImageUrl;
    String? ImageHash;
    String? DocumentHash;
    String? ConsentText;
    String? IpAddress;
    String? UserAgent;
    DateTime? SignedAt;

    SignatureRecord({this.SignatureRecordID,this.EntityType,this.EntityID,this.Role,this.SignerName,this.SignerContactID,this.SignerUserId,this.Method,this.ImageAttachmentId,this.ImageUrl,this.ImageHash,this.DocumentHash,this.ConsentText,this.IpAddress,this.UserAgent,this.SignedAt});
    SignatureRecord.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        SignatureRecordID = json['SignatureRecordID'];
        EntityType = json['EntityType'];
        EntityID = json['EntityID'];
        Role = json['Role'];
        SignerName = json['SignerName'];
        SignerContactID = json['SignerContactID'];
        SignerUserId = json['SignerUserId'];
        Method = json['Method'];
        ImageAttachmentId = json['ImageAttachmentId'];
        ImageUrl = json['ImageUrl'];
        ImageHash = json['ImageHash'];
        DocumentHash = json['DocumentHash'];
        ConsentText = json['ConsentText'];
        IpAddress = json['IpAddress'];
        UserAgent = json['UserAgent'];
        SignedAt = JsonConverters.fromJson(json['SignedAt'],'DateTime',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'SignatureRecordID': SignatureRecordID,
        'EntityType': EntityType,
        'EntityID': EntityID,
        'Role': Role,
        'SignerName': SignerName,
        'SignerContactID': SignerContactID,
        'SignerUserId': SignerUserId,
        'Method': Method,
        'ImageAttachmentId': ImageAttachmentId,
        'ImageUrl': ImageUrl,
        'ImageHash': ImageHash,
        'DocumentHash': DocumentHash,
        'ConsentText': ConsentText,
        'IpAddress': IpAddress,
        'UserAgent': UserAgent,
        'SignedAt': JsonConverters.toJson(SignedAt,'DateTime',context!)
    };

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

class Inspection implements IConvertible
{
    int? InspectionID;
    String? InspectionUID;
    int? ProjectID;
    String? ProjectName;
    int? JobID;
    String? JobName;
    String? InspectionNo;
    String? Type;
    String? Title;
    String? Status;
    String? TemplateUID;
    int? TemplateVersionNo;
    DateTime? ScheduledFor;
    DateTime? StartedAt;
    DateTime? CompletedAt;
    DateTime? ClosedAt;
    int? InspectorContactID;
    String? InspectorName;
    String? AgencyName;
    String? PermitNo;
    String? LocationText;
    String? Notes;
    String? WeatherJson;
    int? ItemsTotal;
    int? ItemsPassed;
    int? ItemsFailed;
    String? Outcome;
    String? OutcomeNotes;
    int? ReinspectionOfInspectionID;
    int? QcHoldPointID;
    String? ReportAttachmentId;
    int? RequestCount;
    int? SignatureCount;
    String? CreatedBy;
    DateTime? CreatedAt;
    DateTime? UpdatedAt;
    List<InspectionItem>? Items = [];
    List<InspectionRequest>? Requests = [];
    List<SignatureRecord>? Signatures = [];
    List<String>? Actions = [];

    Inspection({this.InspectionID,this.InspectionUID,this.ProjectID,this.ProjectName,this.JobID,this.JobName,this.InspectionNo,this.Type,this.Title,this.Status,this.TemplateUID,this.TemplateVersionNo,this.ScheduledFor,this.StartedAt,this.CompletedAt,this.ClosedAt,this.InspectorContactID,this.InspectorName,this.AgencyName,this.PermitNo,this.LocationText,this.Notes,this.WeatherJson,this.ItemsTotal,this.ItemsPassed,this.ItemsFailed,this.Outcome,this.OutcomeNotes,this.ReinspectionOfInspectionID,this.QcHoldPointID,this.ReportAttachmentId,this.RequestCount,this.SignatureCount,this.CreatedBy,this.CreatedAt,this.UpdatedAt,this.Items,this.Requests,this.Signatures,this.Actions});
    Inspection.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        InspectionID = json['InspectionID'];
        InspectionUID = json['InspectionUID'];
        ProjectID = json['ProjectID'];
        ProjectName = json['ProjectName'];
        JobID = json['JobID'];
        JobName = json['JobName'];
        InspectionNo = json['InspectionNo'];
        Type = json['Type'];
        Title = json['Title'];
        Status = json['Status'];
        TemplateUID = json['TemplateUID'];
        TemplateVersionNo = json['TemplateVersionNo'];
        ScheduledFor = JsonConverters.fromJson(json['ScheduledFor'],'DateTime',context!);
        StartedAt = JsonConverters.fromJson(json['StartedAt'],'DateTime',context!);
        CompletedAt = JsonConverters.fromJson(json['CompletedAt'],'DateTime',context!);
        ClosedAt = JsonConverters.fromJson(json['ClosedAt'],'DateTime',context!);
        InspectorContactID = json['InspectorContactID'];
        InspectorName = json['InspectorName'];
        AgencyName = json['AgencyName'];
        PermitNo = json['PermitNo'];
        LocationText = json['LocationText'];
        Notes = json['Notes'];
        WeatherJson = json['WeatherJson'];
        ItemsTotal = json['ItemsTotal'];
        ItemsPassed = json['ItemsPassed'];
        ItemsFailed = json['ItemsFailed'];
        Outcome = json['Outcome'];
        OutcomeNotes = json['OutcomeNotes'];
        ReinspectionOfInspectionID = json['ReinspectionOfInspectionID'];
        QcHoldPointID = json['QcHoldPointID'];
        ReportAttachmentId = json['ReportAttachmentId'];
        RequestCount = json['RequestCount'];
        SignatureCount = json['SignatureCount'];
        CreatedBy = json['CreatedBy'];
        CreatedAt = JsonConverters.fromJson(json['CreatedAt'],'DateTime',context!);
        UpdatedAt = JsonConverters.fromJson(json['UpdatedAt'],'DateTime',context!);
        Items = JsonConverters.fromJson(json['Items'],'List<InspectionItem>',context!);
        Requests = JsonConverters.fromJson(json['Requests'],'List<InspectionRequest>',context!);
        Signatures = JsonConverters.fromJson(json['Signatures'],'List<SignatureRecord>',context!);
        Actions = JsonConverters.fromJson(json['Actions'],'List<String>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'InspectionID': InspectionID,
        'InspectionUID': InspectionUID,
        'ProjectID': ProjectID,
        'ProjectName': ProjectName,
        'JobID': JobID,
        'JobName': JobName,
        'InspectionNo': InspectionNo,
        'Type': Type,
        'Title': Title,
        'Status': Status,
        'TemplateUID': TemplateUID,
        'TemplateVersionNo': TemplateVersionNo,
        'ScheduledFor': JsonConverters.toJson(ScheduledFor,'DateTime',context!),
        'StartedAt': JsonConverters.toJson(StartedAt,'DateTime',context!),
        'CompletedAt': JsonConverters.toJson(CompletedAt,'DateTime',context!),
        'ClosedAt': JsonConverters.toJson(ClosedAt,'DateTime',context!),
        'InspectorContactID': InspectorContactID,
        'InspectorName': InspectorName,
        'AgencyName': AgencyName,
        'PermitNo': PermitNo,
        'LocationText': LocationText,
        'Notes': Notes,
        'WeatherJson': WeatherJson,
        'ItemsTotal': ItemsTotal,
        'ItemsPassed': ItemsPassed,
        'ItemsFailed': ItemsFailed,
        'Outcome': Outcome,
        'OutcomeNotes': OutcomeNotes,
        'ReinspectionOfInspectionID': ReinspectionOfInspectionID,
        'QcHoldPointID': QcHoldPointID,
        'ReportAttachmentId': ReportAttachmentId,
        'RequestCount': RequestCount,
        'SignatureCount': SignatureCount,
        'CreatedBy': CreatedBy,
        'CreatedAt': JsonConverters.toJson(CreatedAt,'DateTime',context!),
        'UpdatedAt': JsonConverters.toJson(UpdatedAt,'DateTime',context!),
        'Items': JsonConverters.toJson(Items,'List<InspectionItem>',context!),
        'Requests': JsonConverters.toJson(Requests,'List<InspectionRequest>',context!),
        'Signatures': JsonConverters.toJson(Signatures,'List<SignatureRecord>',context!),
        'Actions': JsonConverters.toJson(Actions,'List<String>',context!)
    };

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

class InspectionResponse implements IConvertible
{
    ResponseStatus? ResponseStatus;
    Inspection? Inspection;

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

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

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

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

class InspectionDetailRequest implements IConvertible
{
    String? InspectionUID;

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

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

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

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

TypeContext _ctx = TypeContext(library: 'api.dev.dynamics.trendsic.com', types: <String, TypeInfo> {
    'InspectionPhoto': TypeInfo(TypeOf.Class, create:() => InspectionPhoto()),
    'InspectionItem': TypeInfo(TypeOf.Class, create:() => InspectionItem()),
    'List<InspectionPhoto>': TypeInfo(TypeOf.Class, create:() => <InspectionPhoto>[]),
    'InspectionRequest': TypeInfo(TypeOf.Class, create:() => InspectionRequest()),
    'SignatureRecord': TypeInfo(TypeOf.Class, create:() => SignatureRecord()),
    'Inspection': TypeInfo(TypeOf.Class, create:() => Inspection()),
    'List<InspectionItem>': TypeInfo(TypeOf.Class, create:() => <InspectionItem>[]),
    'List<InspectionRequest>': TypeInfo(TypeOf.Class, create:() => <InspectionRequest>[]),
    'List<SignatureRecord>': TypeInfo(TypeOf.Class, create:() => <SignatureRecord>[]),
    'InspectionResponse': TypeInfo(TypeOf.Class, create:() => InspectionResponse()),
    'InspectionDetailRequest': TypeInfo(TypeOf.Class, create:() => InspectionDetailRequest()),
});

Dart InspectionDetailRequest 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.

GET /v1/inspections/{InspectionUID} HTTP/1.1 
Host: api.dev.dynamics.trendsic.com 
Accept: text/jsv
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
		}
	},
	Inspection: 
	{
		InspectionID: 0,
		InspectionUID: 00000000000000000000000000000000,
		ProjectID: 0,
		ProjectName: String,
		JobID: 0,
		JobName: String,
		InspectionNo: String,
		Type: String,
		Title: String,
		Status: String,
		TemplateUID: 00000000000000000000000000000000,
		TemplateVersionNo: 0,
		ScheduledFor: 0001-01-01,
		StartedAt: 0001-01-01,
		CompletedAt: 0001-01-01,
		ClosedAt: 0001-01-01,
		InspectorContactID: 0,
		InspectorName: String,
		AgencyName: String,
		PermitNo: String,
		LocationText: String,
		Notes: String,
		WeatherJson: String,
		ItemsTotal: 0,
		ItemsPassed: 0,
		ItemsFailed: 0,
		Outcome: String,
		OutcomeNotes: String,
		ReinspectionOfInspectionID: 0,
		QcHoldPointID: 0,
		ReportAttachmentId: 00000000000000000000000000000000,
		RequestCount: 0,
		SignatureCount: 0,
		CreatedBy: String,
		CreatedAt: 0001-01-01,
		UpdatedAt: 0001-01-01,
		Items: 
		[
			{
				InspectionItemID: 0,
				InspectionID: 0,
				Seq: 0,
				Section: String,
				Prompt: String,
				ResponseType: String,
				IsRequired: False,
				Unit: String,
				Guidance: String,
				Result: String,
				Value: String,
				Notes: String,
				PhotoCount: 0,
				LinkedPunchItemID: 0,
				LinkedPunchNo: String,
				LinkedPunchStatus: String,
				LinkedNcrID: 0,
				LinkedNcrNo: String,
				LinkedActionID: 0,
				AnsweredBy: String,
				AnsweredAt: 0001-01-01,
				Photos: 
				[
					{
						AttachmentId: 00000000000000000000000000000000,
						FileName: String,
						Url: String,
						CreatedBy: String,
						CreatedDate: 0001-01-01,
						HasAnnotation: False,
						AnnotatedAttachmentId: 00000000000000000000000000000000,
						AnnotatedUrl: String
					}
				]
			}
		],
		Requests: 
		[
			{
				InspectionRequestID: 0,
				InspectionID: 0,
				Agency: String,
				ContactName: String,
				ContactPhone: String,
				PermitNo: String,
				RequestedDate: 0001-01-01,
				RequestedWindow: String,
				Status: String,
				ConfirmationNo: String,
				Outcome: String,
				CreatedBy: String,
				CreatedAt: 0001-01-01,
				UpdatedAt: 0001-01-01
			}
		],
		Signatures: 
		[
			{
				SignatureRecordID: 0,
				EntityType: String,
				EntityID: 0,
				Role: String,
				SignerName: String,
				SignerContactID: 0,
				SignerUserId: String,
				Method: String,
				ImageAttachmentId: 00000000000000000000000000000000,
				ImageUrl: String,
				ImageHash: String,
				DocumentHash: String,
				ConsentText: String,
				IpAddress: String,
				UserAgent: String,
				SignedAt: 0001-01-01
			}
		],
		Actions: 
		[
			String
		]
	}
}