Trendsic Platform Service

<back to all web services

EquipmentDvirSignOffRequest

Requires Authentication
The following routes are available for this service:
POST,OPTIONS/v1/Equipment/{EquipmentID}/dvir/signoff
import datetime
import decimal
from marshmallow.fields import *
from servicestack import *
from typing import *
from dataclasses import dataclass, field
from dataclasses_json import dataclass_json, LetterCase, Undefined, config
from enum import Enum, IntEnum


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class DvirUnitRef:
    equipment_i_d: int = 0
    unit: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class DvirPhotoView:
    work_photo_i_d: int = 0
    defect_key: Optional[str] = None
    url: Optional[str] = None
    marked_url: Optional[str] = None
    captured_at_utc: Optional[datetime.datetime] = None
    lat: Optional[Decimal] = None
    lng: Optional[Decimal] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class DvirDefectView:
    dvir_defect_i_d: int = 0
    client_key: Optional[str] = None
    dvir_report_i_d: Optional[int] = None
    report_number: Optional[str] = None
    equipment_i_d: int = 0
    unit: Optional[str] = None
    item_key: Optional[str] = None
    label: Optional[str] = None
    form_line: Optional[str] = None
    is_custom: bool = False
    severity: Optional[str] = None
    severity_text: Optional[str] = None
    note: Optional[str] = None
    source: Optional[str] = None
    reported_by_name: Optional[str] = None
    reported_at_utc: Optional[datetime.datetime] = None
    equipment_maintenance_i_d: Optional[int] = None
    outcome: Optional[str] = None
    outcome_text: Optional[str] = None
    outcome_note: Optional[str] = None
    scheduled_for: Optional[str] = None
    signed_off_by_name: Optional[str] = None
    signed_off_at_utc: Optional[datetime.datetime] = None
    is_open: bool = False
    withdrawn: bool = False
    photo_count: int = 0
    photos: List[DvirPhotoView] = field(default_factory=list)


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class DvirVehicleView:
    equipment_i_d: int = 0
    unit: Optional[str] = None
    name: Optional[str] = None
    vehicle_type: Optional[str] = None
    is_trailer: bool = False
    vehicle_status: Optional[str] = None
    status: Optional[str] = None
    status_text: Optional[str] = None
    line: Optional[str] = None
    first_unsafe_report: Optional[str] = None
    open_count: int = 0
    local_today: Optional[str] = None
    needs_pre_trip: bool = False
    needs_review: bool = False
    review_report_ids: List[int] = field(default_factory=list)
    trailers: List[DvirUnitRef] = field(default_factory=list)
    last_odometer: Optional[int] = None
    in_use_by: Optional[str] = None
    driving_now: bool = False
    today_pre_trip_id: Optional[int] = None
    today_post_trip_id: Optional[int] = None
    open_defects: List[DvirDefectView] = field(default_factory=list)


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class DvirSignatureView:
    signature_record_i_d: int = 0
    role: Optional[str] = None
    signer_name: Optional[str] = None
    signed_at: Optional[datetime.datetime] = None
    image_url: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class DvirReportView:
    dvir_report_i_d: int = 0
    number: Optional[str] = None
    kind: Optional[str] = None
    kind_text: Optional[str] = None
    equipment_i_d: int = 0
    unit: Optional[str] = None
    trailers: List[DvirUnitRef] = field(default_factory=list)
    contact_i_d: int = 0
    driver_name: Optional[str] = None
    board: Optional[str] = None
    for_date: Optional[str] = None
    filed_at_utc: datetime.datetime = datetime.datetime(1, 1, 1)
    saved_at_utc: Optional[datetime.datetime] = None
    is_late: bool = False
    is_away: bool = False
    is_satisfactory: bool = False
    odometer: Optional[int] = None
    location_text: Optional[str] = None
    remarks: Optional[str] = None
    reviewed_by_name: Optional[str] = None
    reviewed_at_utc: Optional[datetime.datetime] = None
    chip: Optional[str] = None
    defects: List[DvirDefectView] = field(default_factory=list)
    signatures: List[DvirSignatureView] = field(default_factory=list)


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class DvirVehicleDetail(DvirVehicleView):
    plate: Optional[str] = None
    vin: Optional[str] = None
    gvwr_lbs: Optional[int] = None
    branch_name: Optional[str] = None
    inspection_due: Optional[datetime.datetime] = None
    insurance_expires: Optional[datetime.datetime] = None
    recently_fixed: List[DvirDefectView] = field(default_factory=list)
    review_reports: List[DvirReportView] = field(default_factory=list)
    history: List[DvirReportView] = field(default_factory=list)


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class EquipmentDvirSignOffResponse:
    vehicle: Optional[DvirVehicleDetail] = None
    returned: bool = False
    response_status: Optional[ResponseStatus] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class DvirSignOffItem:
    dvir_defect_i_d: int = 0
    outcome: Optional[str] = None
    note: Optional[str] = None
    scheduled_for: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class EquipmentDvirSignOffRequest:
    equipment_i_d: int = 0
    defects: List[DvirSignOffItem] = field(default_factory=list)
    mechanic_name: Optional[str] = None
    signature_png: Optional[str] = None

Python EquipmentDvirSignOffRequest DTOs

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

HTTP + 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>