| GET | /v1/schedule/workerpool |
|---|
import Foundation
import ServiceStack
public class ScheduleWorkerPoolRequest : Codable
{
public var projectID:Int
public var jobID:Int
public var scope:String
public var crewID:Int
public var includeOtherBranches:Bool
required public init(){}
}
public class WorkerScheduleResponse : Codable
{
public var items:[WorkerScheduleItem] = []
public var schedulableJobs:[SchedulableJob] = []
public var workers:[ScheduleWorker] = []
public var crews:[Crew] = []
public var budgetedCrew:[ScheduleWorker] = []
public var lastAssignment:ScheduleLastAssignment
public var autoFill:ScheduleAutoFillResult
public var datesScheduled:Int?
public var workersScheduled:Int?
public var itemsRemoved:Int?
public var responseStatus:ResponseStatus
required public init(){}
}
public class WorkerScheduleItem : Codable
{
public var workerScheduleItemID:Int
public var jobID:Int
public var projectID:Int?
public var contactID:Int
public var scheduledDate:Date?
public var sortOrder:Int
public var sourceCrewID:Int?
public var status:String
public var startedAt:Date?
public var completedAt:Date?
public var workerNotes:String
public var jobName:String
public var projectName:String
public var firstName:String
public var lastName:String
public var workerName:String
public var sourceCrewName:String
public var projectLocationID:Int?
public var projectLocationName:String
public var locationZip:String
public var locationCity:String
public var locationLatitude:Double?
public var locationLongitude:Double?
public var jobStatusName:String
public var branchId:String
public var branchName:String
public var workerHomeBranchId:String?
public var workerHomeBranchName:String
required public init(){}
}
public class SchedulableJob : Codable
{
public var jobID:Int
public var jobName:String
public var projectID:Int
public var projectName:String
public var statusID:Int?
public var statusName:String
public var projectLocationID:Int?
public var projectLocationName:String
public var locationZip:String
public var locationCity:String
public var locationLatitude:Double?
public var locationLongitude:Double?
public var expectedStartDate:Date?
public var expectedCompletionDate:Date?
public var isRecurring:Bool
public var occurrenceDates:[String] = []
required public init(){}
}
public class ScheduleWorker : Codable
{
public var contactId:Int
public var firstName:String
public var lastName:String
public var name:String
public var initials:String
public var rate:Double?
public var imageUrl:String
public var branchId:String?
public var branchName:String
required public init(){}
}
public class Crew : Codable
{
public var crewID:Int
public var crewName:String
public var crewNumber:String
public var crewManagerContactID:Int
public var crewManagerContactName:String
public var crewColor:String
public var recordCreatedDate:Date
public var active:Bool
public var createdByUID:String
public var projectID:Int
public var crewMemberCount:Int
public var projectCrewID:Int
public var projectName:String
public var branchId:String
public var branchName:String
required public init(){}
}
public class ScheduleLastAssignment : Codable
{
public var jobID:Int
public var contactIds:[Int] = []
public var sourceCrewID:Int?
required public init(){}
}
public class ScheduleAutoFillResult : Codable
{
public var jobsFilled:Int
public var jobsSkipped:Int
public var visitsScheduled:Int
required public init(){}
}
Swift ScheduleWorkerPoolRequest DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
GET /v1/schedule/workerpool HTTP/1.1 Host: api.dev.dynamics.trendsic.com Accept: text/jsv
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
Items:
[
{
WorkerScheduleItemID: 0,
JobID: 0,
ProjectID: 0,
ContactID: 0,
ScheduledDate: 0001-01-01,
SortOrder: 0,
SourceCrewID: 0,
Status: String,
StartedAt: 0001-01-01,
CompletedAt: 0001-01-01,
WorkerNotes: String,
JobName: String,
ProjectName: String,
FirstName: String,
LastName: String,
WorkerName: String,
SourceCrewName: String,
ProjectLocationID: 0,
ProjectLocationName: String,
LocationZip: String,
LocationCity: String,
LocationLatitude: 0,
LocationLongitude: 0,
JobStatusName: String,
BranchId: 00000000000000000000000000000000,
BranchName: String,
WorkerHomeBranchId: 00000000000000000000000000000000,
WorkerHomeBranchName: String
}
],
SchedulableJobs:
[
{
JobID: 0,
JobName: String,
ProjectID: 0,
ProjectName: String,
StatusID: 0,
StatusName: String,
ProjectLocationID: 0,
ProjectLocationName: String,
LocationZip: String,
LocationCity: String,
LocationLatitude: 0,
LocationLongitude: 0,
ExpectedStartDate: 0001-01-01,
ExpectedCompletionDate: 0001-01-01,
IsRecurring: False,
OccurrenceDates:
[
String
]
}
],
Workers:
[
{
ContactId: 0,
FirstName: String,
LastName: String,
Name: String,
Initials: String,
Rate: 0,
ImageUrl: String,
BranchId: 00000000000000000000000000000000,
BranchName: String
}
],
Crews:
[
{
CrewID: 0,
CrewName: String,
CrewNumber: String,
CrewManagerContactID: 0,
CrewManagerContactName: String,
CrewColor: String,
RecordCreatedDate: 0001-01-01,
Active: False,
CreatedByUID: 00000000000000000000000000000000,
ProjectID: 0,
CrewMemberCount: 0,
ProjectCrewID: 0,
ProjectName: String,
BranchId: 00000000000000000000000000000000,
BranchName: String
}
],
BudgetedCrew:
[
{
ContactId: 0,
FirstName: String,
LastName: String,
Name: String,
Initials: String,
Rate: 0,
ImageUrl: String,
BranchId: 00000000000000000000000000000000,
BranchName: String
}
],
LastAssignment:
{
JobID: 0,
ContactIds:
[
0
],
SourceCrewID: 0
},
AutoFill:
{
JobsFilled: 0,
JobsSkipped: 0,
VisitsScheduled: 0
},
DatesScheduled: 0,
WorkersScheduled: 0,
ItemsRemoved: 0,
ResponseStatus:
{
ErrorCode: String,
Message: String,
StackTrace: String,
Errors:
[
{
ErrorCode: String,
FieldName: String,
Message: String,
Meta:
{
String: String
}
}
],
Meta:
{
String: String
}
}
}