| POST,OPTIONS | /v1/Equipment/{EquipmentID}/dvir/signoff |
|---|
import Foundation
import ServiceStack
public class EquipmentDvirSignOffRequest : Codable
{
public var equipmentID:Int
public var defects:[DvirSignOffItem] = []
public var mechanicName:String
public var signaturePng:String
required public init(){}
}
public class DvirSignOffItem : Codable
{
public var dvirDefectID:Int
public var outcome:String
public var note:String
public var scheduledFor:String
required public init(){}
}
public class EquipmentDvirSignOffResponse : Codable
{
public var vehicle:DvirVehicleDetail
public var returned:Bool
public var responseStatus:ResponseStatus
required public init(){}
}
public class DvirVehicleDetail : DvirVehicleView
{
public var plate:String
public var vin:String
public var gvwrLbs:Int?
public var branchName:String
public var inspectionDue:Date?
public var insuranceExpires:Date?
public var recentlyFixed:[DvirDefectView] = []
public var reviewReports:[DvirReportView] = []
public var history:[DvirReportView] = []
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case plate
case vin
case gvwrLbs
case branchName
case inspectionDue
case insuranceExpires
case recentlyFixed
case reviewReports
case history
}
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
let container = try decoder.container(keyedBy: CodingKeys.self)
plate = try container.decodeIfPresent(String.self, forKey: .plate)
vin = try container.decodeIfPresent(String.self, forKey: .vin)
gvwrLbs = try container.decodeIfPresent(Int.self, forKey: .gvwrLbs)
branchName = try container.decodeIfPresent(String.self, forKey: .branchName)
inspectionDue = try container.decodeIfPresent(Date.self, forKey: .inspectionDue)
insuranceExpires = try container.decodeIfPresent(Date.self, forKey: .insuranceExpires)
recentlyFixed = try container.decodeIfPresent([DvirDefectView].self, forKey: .recentlyFixed) ?? []
reviewReports = try container.decodeIfPresent([DvirReportView].self, forKey: .reviewReports) ?? []
history = try container.decodeIfPresent([DvirReportView].self, forKey: .history) ?? []
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
if plate != nil { try container.encode(plate, forKey: .plate) }
if vin != nil { try container.encode(vin, forKey: .vin) }
if gvwrLbs != nil { try container.encode(gvwrLbs, forKey: .gvwrLbs) }
if branchName != nil { try container.encode(branchName, forKey: .branchName) }
if inspectionDue != nil { try container.encode(inspectionDue, forKey: .inspectionDue) }
if insuranceExpires != nil { try container.encode(insuranceExpires, forKey: .insuranceExpires) }
if recentlyFixed.count > 0 { try container.encode(recentlyFixed, forKey: .recentlyFixed) }
if reviewReports.count > 0 { try container.encode(reviewReports, forKey: .reviewReports) }
if history.count > 0 { try container.encode(history, forKey: .history) }
}
}
public class DvirVehicleView : Codable
{
public var equipmentID:Int
public var unit:String
public var name:String
public var vehicleType:String
public var isTrailer:Bool
public var vehicleStatus:String
public var status:String
public var statusText:String
public var line:String
public var firstUnsafeReport:String
public var openCount:Int
public var localToday:String
public var needsPreTrip:Bool
public var needsReview:Bool
public var reviewReportIds:[Int] = []
public var trailers:[DvirUnitRef] = []
public var lastOdometer:Int?
public var inUseBy:String
public var drivingNow:Bool
public var todayPreTripId:Int?
public var todayPostTripId:Int?
public var openDefects:[DvirDefectView] = []
required public init(){}
}
public class DvirUnitRef : Codable
{
public var equipmentID:Int
public var unit:String
required public init(){}
}
public class DvirDefectView : Codable
{
public var dvirDefectID:Int
public var clientKey:String
public var dvirReportID:Int?
public var reportNumber:String
public var equipmentID:Int
public var unit:String
public var itemKey:String
public var label:String
public var formLine:String
public var isCustom:Bool
public var severity:String
public var severityText:String
public var note:String
public var source:String
public var reportedByName:String
public var reportedAtUtc:Date?
public var equipmentMaintenanceID:Int?
public var outcome:String
public var outcomeText:String
public var outcomeNote:String
public var scheduledFor:String
public var signedOffByName:String
public var signedOffAtUtc:Date?
public var isOpen:Bool
public var withdrawn:Bool
public var photoCount:Int
public var photos:[DvirPhotoView] = []
required public init(){}
}
public class DvirPhotoView : Codable
{
public var workPhotoID:Int
public var defectKey:String
public var url:String
public var markedUrl:String
public var capturedAtUtc:Date?
public var lat:Double?
public var lng:Double?
required public init(){}
}
public class DvirReportView : Codable
{
public var dvirReportID:Int
public var number:String
public var kind:String
public var kindText:String
public var equipmentID:Int
public var unit:String
public var trailers:[DvirUnitRef] = []
public var contactID:Int
public var driverName:String
public var board:String
public var forDate:String
public var filedAtUtc:Date
public var savedAtUtc:Date?
public var isLate:Bool
public var isAway:Bool
public var isSatisfactory:Bool
public var odometer:Int?
public var locationText:String
public var remarks:String
public var reviewedByName:String
public var reviewedAtUtc:Date?
public var chip:String
public var defects:[DvirDefectView] = []
public var signatures:[DvirSignatureView] = []
required public init(){}
}
public class DvirSignatureView : Codable
{
public var signatureRecordID:Int
public var role:String
public var signerName:String
public var signedAt:Date?
public var imageUrl:String
required public init(){}
}
Swift EquipmentDvirSignOffRequest DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /v1/Equipment/{EquipmentID}/dvir/signoff HTTP/1.1
Host: api.dev.dynamics.trendsic.com
Accept: application/xml
Content-Type: application/xml
Content-Length: length
<EquipmentDvirSignOffRequest xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/CRM.AgencyPlatform.API.Internal">
<Defects>
<DvirSignOffItem>
<DvirDefectID>0</DvirDefectID>
<Note>String</Note>
<Outcome>String</Outcome>
<ScheduledFor>String</ScheduledFor>
</DvirSignOffItem>
</Defects>
<EquipmentID>0</EquipmentID>
<MechanicName>String</MechanicName>
<SignaturePng>String</SignaturePng>
</EquipmentDvirSignOffRequest>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length
<EquipmentDvirSignOffResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/CRM.AgencyPlatform.API.Internal">
<ResponseStatus xmlns:d2p1="http://schemas.servicestack.net/types">
<d2p1:ErrorCode>String</d2p1:ErrorCode>
<d2p1:Message>String</d2p1:Message>
<d2p1:StackTrace>String</d2p1:StackTrace>
<d2p1:Errors>
<d2p1:ResponseError>
<d2p1:ErrorCode>String</d2p1:ErrorCode>
<d2p1:FieldName>String</d2p1:FieldName>
<d2p1:Message>String</d2p1:Message>
<d2p1:Meta xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d5p1:KeyValueOfstringstring>
<d5p1:Key>String</d5p1:Key>
<d5p1:Value>String</d5p1:Value>
</d5p1:KeyValueOfstringstring>
</d2p1:Meta>
</d2p1:ResponseError>
</d2p1:Errors>
<d2p1:Meta xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d3p1:KeyValueOfstringstring>
<d3p1:Key>String</d3p1:Key>
<d3p1:Value>String</d3p1:Value>
</d3p1:KeyValueOfstringstring>
</d2p1:Meta>
</ResponseStatus>
<Returned>false</Returned>
<Vehicle>
<DrivingNow>false</DrivingNow>
<EquipmentID>0</EquipmentID>
<FirstUnsafeReport>String</FirstUnsafeReport>
<InUseBy>String</InUseBy>
<IsTrailer>false</IsTrailer>
<LastOdometer>0</LastOdometer>
<Line>String</Line>
<LocalToday>String</LocalToday>
<Name>String</Name>
<NeedsPreTrip>false</NeedsPreTrip>
<NeedsReview>false</NeedsReview>
<OpenCount>0</OpenCount>
<OpenDefects>
<DvirDefectView>
<ClientKey>String</ClientKey>
<DvirDefectID>0</DvirDefectID>
<DvirReportID>0</DvirReportID>
<EquipmentID>0</EquipmentID>
<EquipmentMaintenanceID>0</EquipmentMaintenanceID>
<FormLine>String</FormLine>
<IsCustom>false</IsCustom>
<IsOpen>false</IsOpen>
<ItemKey>String</ItemKey>
<Label>String</Label>
<Note>String</Note>
<Outcome>String</Outcome>
<OutcomeNote>String</OutcomeNote>
<OutcomeText>String</OutcomeText>
<PhotoCount>0</PhotoCount>
<Photos>
<DvirPhotoView>
<CapturedAtUtc>0001-01-01T00:00:00</CapturedAtUtc>
<DefectKey>String</DefectKey>
<Lat>0</Lat>
<Lng>0</Lng>
<MarkedUrl>String</MarkedUrl>
<Url>String</Url>
<WorkPhotoID>0</WorkPhotoID>
</DvirPhotoView>
</Photos>
<ReportNumber>String</ReportNumber>
<ReportedAtUtc>0001-01-01T00:00:00</ReportedAtUtc>
<ReportedByName>String</ReportedByName>
<ScheduledFor>String</ScheduledFor>
<Severity>String</Severity>
<SeverityText>String</SeverityText>
<SignedOffAtUtc>0001-01-01T00:00:00</SignedOffAtUtc>
<SignedOffByName>String</SignedOffByName>
<Source>String</Source>
<Unit>String</Unit>
<Withdrawn>false</Withdrawn>
</DvirDefectView>
</OpenDefects>
<ReviewReportIds xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d3p1:int>0</d3p1:int>
</ReviewReportIds>
<Status>String</Status>
<StatusText>String</StatusText>
<TodayPostTripId>0</TodayPostTripId>
<TodayPreTripId>0</TodayPreTripId>
<Trailers>
<DvirUnitRef>
<EquipmentID>0</EquipmentID>
<Unit>String</Unit>
</DvirUnitRef>
</Trailers>
<Unit>String</Unit>
<VehicleStatus>String</VehicleStatus>
<VehicleType>String</VehicleType>
<BranchName>String</BranchName>
<GvwrLbs>0</GvwrLbs>
<History>
<DvirReportView>
<Board>String</Board>
<Chip>String</Chip>
<ContactID>0</ContactID>
<Defects>
<DvirDefectView>
<ClientKey>String</ClientKey>
<DvirDefectID>0</DvirDefectID>
<DvirReportID>0</DvirReportID>
<EquipmentID>0</EquipmentID>
<EquipmentMaintenanceID>0</EquipmentMaintenanceID>
<FormLine>String</FormLine>
<IsCustom>false</IsCustom>
<IsOpen>false</IsOpen>
<ItemKey>String</ItemKey>
<Label>String</Label>
<Note>String</Note>
<Outcome>String</Outcome>
<OutcomeNote>String</OutcomeNote>
<OutcomeText>String</OutcomeText>
<PhotoCount>0</PhotoCount>
<Photos>
<DvirPhotoView>
<CapturedAtUtc>0001-01-01T00:00:00</CapturedAtUtc>
<DefectKey>String</DefectKey>
<Lat>0</Lat>
<Lng>0</Lng>
<MarkedUrl>String</MarkedUrl>
<Url>String</Url>
<WorkPhotoID>0</WorkPhotoID>
</DvirPhotoView>
</Photos>
<ReportNumber>String</ReportNumber>
<ReportedAtUtc>0001-01-01T00:00:00</ReportedAtUtc>
<ReportedByName>String</ReportedByName>
<ScheduledFor>String</ScheduledFor>
<Severity>String</Severity>
<SeverityText>String</SeverityText>
<SignedOffAtUtc>0001-01-01T00:00:00</SignedOffAtUtc>
<SignedOffByName>String</SignedOffByName>
<Source>String</Source>
<Unit>String</Unit>
<Withdrawn>false</Withdrawn>
</DvirDefectView>
</Defects>
<DriverName>String</DriverName>
<DvirReportID>0</DvirReportID>
<EquipmentID>0</EquipmentID>
<FiledAtUtc>0001-01-01T00:00:00</FiledAtUtc>
<ForDate>String</ForDate>
<IsAway>false</IsAway>
<IsLate>false</IsLate>
<IsSatisfactory>false</IsSatisfactory>
<Kind>String</Kind>
<KindText>String</KindText>
<LocationText>String</LocationText>
<Number>String</Number>
<Odometer>0</Odometer>
<Remarks>String</Remarks>
<ReviewedAtUtc>0001-01-01T00:00:00</ReviewedAtUtc>
<ReviewedByName>String</ReviewedByName>
<SavedAtUtc>0001-01-01T00:00:00</SavedAtUtc>
<Signatures>
<DvirSignatureView>
<ImageUrl>String</ImageUrl>
<Role>String</Role>
<SignatureRecordID>0</SignatureRecordID>
<SignedAt>0001-01-01T00:00:00</SignedAt>
<SignerName>String</SignerName>
</DvirSignatureView>
</Signatures>
<Trailers>
<DvirUnitRef>
<EquipmentID>0</EquipmentID>
<Unit>String</Unit>
</DvirUnitRef>
</Trailers>
<Unit>String</Unit>
</DvirReportView>
</History>
<InspectionDue>0001-01-01T00:00:00</InspectionDue>
<InsuranceExpires>0001-01-01T00:00:00</InsuranceExpires>
<Plate>String</Plate>
<RecentlyFixed>
<DvirDefectView>
<ClientKey>String</ClientKey>
<DvirDefectID>0</DvirDefectID>
<DvirReportID>0</DvirReportID>
<EquipmentID>0</EquipmentID>
<EquipmentMaintenanceID>0</EquipmentMaintenanceID>
<FormLine>String</FormLine>
<IsCustom>false</IsCustom>
<IsOpen>false</IsOpen>
<ItemKey>String</ItemKey>
<Label>String</Label>
<Note>String</Note>
<Outcome>String</Outcome>
<OutcomeNote>String</OutcomeNote>
<OutcomeText>String</OutcomeText>
<PhotoCount>0</PhotoCount>
<Photos>
<DvirPhotoView>
<CapturedAtUtc>0001-01-01T00:00:00</CapturedAtUtc>
<DefectKey>String</DefectKey>
<Lat>0</Lat>
<Lng>0</Lng>
<MarkedUrl>String</MarkedUrl>
<Url>String</Url>
<WorkPhotoID>0</WorkPhotoID>
</DvirPhotoView>
</Photos>
<ReportNumber>String</ReportNumber>
<ReportedAtUtc>0001-01-01T00:00:00</ReportedAtUtc>
<ReportedByName>String</ReportedByName>
<ScheduledFor>String</ScheduledFor>
<Severity>String</Severity>
<SeverityText>String</SeverityText>
<SignedOffAtUtc>0001-01-01T00:00:00</SignedOffAtUtc>
<SignedOffByName>String</SignedOffByName>
<Source>String</Source>
<Unit>String</Unit>
<Withdrawn>false</Withdrawn>
</DvirDefectView>
</RecentlyFixed>
<ReviewReports>
<DvirReportView>
<Board>String</Board>
<Chip>String</Chip>
<ContactID>0</ContactID>
<Defects>
<DvirDefectView>
<ClientKey>String</ClientKey>
<DvirDefectID>0</DvirDefectID>
<DvirReportID>0</DvirReportID>
<EquipmentID>0</EquipmentID>
<EquipmentMaintenanceID>0</EquipmentMaintenanceID>
<FormLine>String</FormLine>
<IsCustom>false</IsCustom>
<IsOpen>false</IsOpen>
<ItemKey>String</ItemKey>
<Label>String</Label>
<Note>String</Note>
<Outcome>String</Outcome>
<OutcomeNote>String</OutcomeNote>
<OutcomeText>String</OutcomeText>
<PhotoCount>0</PhotoCount>
<Photos>
<DvirPhotoView>
<CapturedAtUtc>0001-01-01T00:00:00</CapturedAtUtc>
<DefectKey>String</DefectKey>
<Lat>0</Lat>
<Lng>0</Lng>
<MarkedUrl>String</MarkedUrl>
<Url>String</Url>
<WorkPhotoID>0</WorkPhotoID>
</DvirPhotoView>
</Photos>
<ReportNumber>String</ReportNumber>
<ReportedAtUtc>0001-01-01T00:00:00</ReportedAtUtc>
<ReportedByName>String</ReportedByName>
<ScheduledFor>String</ScheduledFor>
<Severity>String</Severity>
<SeverityText>String</SeverityText>
<SignedOffAtUtc>0001-01-01T00:00:00</SignedOffAtUtc>
<SignedOffByName>String</SignedOffByName>
<Source>String</Source>
<Unit>String</Unit>
<Withdrawn>false</Withdrawn>
</DvirDefectView>
</Defects>
<DriverName>String</DriverName>
<DvirReportID>0</DvirReportID>
<EquipmentID>0</EquipmentID>
<FiledAtUtc>0001-01-01T00:00:00</FiledAtUtc>
<ForDate>String</ForDate>
<IsAway>false</IsAway>
<IsLate>false</IsLate>
<IsSatisfactory>false</IsSatisfactory>
<Kind>String</Kind>
<KindText>String</KindText>
<LocationText>String</LocationText>
<Number>String</Number>
<Odometer>0</Odometer>
<Remarks>String</Remarks>
<ReviewedAtUtc>0001-01-01T00:00:00</ReviewedAtUtc>
<ReviewedByName>String</ReviewedByName>
<SavedAtUtc>0001-01-01T00:00:00</SavedAtUtc>
<Signatures>
<DvirSignatureView>
<ImageUrl>String</ImageUrl>
<Role>String</Role>
<SignatureRecordID>0</SignatureRecordID>
<SignedAt>0001-01-01T00:00:00</SignedAt>
<SignerName>String</SignerName>
</DvirSignatureView>
</Signatures>
<Trailers>
<DvirUnitRef>
<EquipmentID>0</EquipmentID>
<Unit>String</Unit>
</DvirUnitRef>
</Trailers>
<Unit>String</Unit>
</DvirReportView>
</ReviewReports>
<VIN>String</VIN>
</Vehicle>
</EquipmentDvirSignOffResponse>