/* Options: Date: 2026-06-22 22:51:16 Version: 8.80 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://api.dev.dynamics.trendsic.com //GlobalNamespace: //MakePropertiesOptional: False //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: PmProjectDetailRequest.* //ExcludeTypes: //DefaultImports: */ export interface IReturn { createResponse(): T; } export class PmFinance { public Budget: number; public Spent: number; public EstimatedCost: number; public CrewCost: number; public EquipCost: number; public MatCost: number; public Variance: number; public HealthPct: number; public SpentPct: number; public ProgressPct: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class PmReadiness { public JobsNoCrew: number; public OpenRoles: number; public EquipmentConflicts: number; public MaterialGaps: number; public TotalGaps: number; public ReadyPct: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class PmJobCrew { public ContactID: number; public Name: string; public Rate: number; public BudgetedHours: number; public IsOpen: boolean; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class PmJobResource { public Id: number; public Name: string; public Amount: number; public Qty: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class PmJob { public JobID: number; public Name: string; public Description: string; public Status: string; public StartDate: string; public EndDate: string; public CrewCount: number; public BudgetedHours: number; public EquipmentCount: number; public MaterialCount: number; public CrewCost: number; public EquipCost: number; public MatCost: number; public Cost: number; public NoCrew: boolean; public EquipConflict: boolean; public MaterialGap: boolean; public ReadyPct: number; public Crew: PmJobCrew[] = []; public Equipment: PmJobResource[] = []; public Materials: PmJobResource[] = []; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class PmConflict { public ProjectName: string; public JobName: string; public StartDate: string; public EndDate: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class PmEquipmentRow { public EquipmentID: number; public Name: string; public EquipmentType: string; public SerialNumber: string; public UsedByJobs: string; public Available: boolean; public Conflicts: PmConflict[] = []; public MaintenanceIntervalDays?: number; public LastServiceDate: string; public NextServiceDate: string; public MaintenanceState: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class PmMaterialRow { public MaterialID: number; public Name: string; public MaterialType: string; public OnHand: number; public NeededByJobs: number; public QtyNeeded: number; public ToOrder: number; public UnitCost: number; public LineCost: number; public ProjectMaterialID: number; public StatusID: number; public Status: string; public Supplier: string; public OrderDate: string; public DeliveryDate: string; public Shortfall: boolean; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class PmCalendarBar { public JobID: number; public Name: string; public StartDate: string; public EndDate: string; public Status: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class PmCatalogItem { public Id: number; public Name: string; public Amount: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @DataContract export class ResponseStatus { // @DataMember(Order=1) public ErrorCode: string; // @DataMember(Order=2) public Message: string; // @DataMember(Order=3) public StackTrace: string; // @DataMember(Order=4) public Errors: ResponseError[] = []; // @DataMember(Order=5) public Meta: { [index:string]: string; } = {}; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class PmProjectDetail { public ProjectID: number; public ProjectUID: string; public Name: string; public Client: string; public ProjectType: string; public Status: string; public Branch: string; public StartDate: string; public EndDate: string; public Description: string; public Finance: PmFinance; public Readiness: PmReadiness; public Jobs: PmJob[] = []; public Equipment: PmEquipmentRow[] = []; public Materials: PmMaterialRow[] = []; public Calendar: PmCalendarBar[] = []; public ProjectStatuses: PmCatalogItem[] = []; public ResponseStatus: ResponseStatus; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @Route("/v1/pm/project/{Uid}", "GET,OPTIONS") export class PmProjectDetailRequest implements IReturn { public Uid: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } public getTypeName() { return 'PmProjectDetailRequest'; } public getMethod() { return 'GET'; } public createResponse() { return new PmProjectDetail(); } }