/* Options: Date: 2026-06-13 03:52:35 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: RfpProposalRequest.* //ExcludeTypes: //DefaultImports: */ export interface IReturn { createResponse(): T; } export class ResourcedPosition { public PositionTag: string; public Hours?: number; public Headcount?: number; public SourceReference: string; public Notes: string; public IsInCatalog: boolean; public ContactID?: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class ResourcedEquipment { public EquipmentID: number; public EquipmentName: string; public MakeModel: string; public Quantity?: number; public DurationDays?: number; public SourceReference: string; public Notes: string; public IsInCatalog: boolean; public SuggestedEquipmentID: number; public SuggestedEquipmentName: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class ResourcedMaterial { public MaterialID: number; public MaterialName: string; public MakeModel: string; public Quantity?: number; public Unit: string; public SourceReference: string; public Notes: string; public IsInCatalog: boolean; public SuggestedMaterialID: number; public SuggestedMaterialName: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class TaskResourcing { public Positions: ResourcedPosition[] = []; public Equipment: ResourcedEquipment[] = []; public Materials: ResourcedMaterial[] = []; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class ProposedTask { public Seq: number; public Name: string; public Category: string; public Quantity?: number; public Unit: string; public SourceItemNumber: string; public SourceReference: string; public Notes: string; public Resourcing: TaskResourcing; public DurationDays?: number; public DependsOn: number[] = []; public EstimatedStartDate?: string; public EstimatedEndDate?: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class ProjectProposal { public RfpDocumentID: number; public ProjectName: string; public ClientName: string; public ProjectType: string; public ProjectLocation: string; public Scope: string; public ProjectDescription: string; public ContractDurationDays?: number; public BidDueDate: string; public EstimatedStartDate?: string; public EstimatedEndDate?: string; public Tasks: ProposedTask[] = []; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class CrewPlanLine { public PositionTag: string; public Needed: number; public NaiveTotal: number; public TaskAssignments: 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 RfpProposalResponse { public ResponseStatus: ResponseStatus; public RfpDocumentID: number; public Proposal: ProjectProposal; public CrewPlan: CrewPlanLine[] = []; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @Route("/v1/Rfp/{RfpDocumentUID}/Proposal", "GET,OPTIONS") export class RfpProposalRequest implements IReturn { public RfpDocumentUID: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } public getTypeName() { return 'RfpProposalRequest'; } public getMethod() { return 'GET'; } public createResponse() { return new RfpProposalResponse(); } }