Trendsic Platform Service

<back to all web services

ScheduleJobsRequest

Requires Authentication
The following routes are available for this service:
GET/v1/schedule/jobs
import Foundation
import ServiceStack

public class ScheduleJobsRequest : Codable
{
    public var projectID:Int
    public var fromDate:String
    public var toDate:String
    public var showAll:Bool
    public var showCompleted: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 ScheduleJobsRequest 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/schedule/jobs 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
		}
	}
}