/* Options: Date: 2026-07-08 20:17: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: RfpRefineRequest.* //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 Mode: string; public ProjectID?: number; public ChangeOrderID?: 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 RfpLocation { public Description: string; public City: string; public State: string; public Identifier: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class RfpSchedule { public BidDueDate: string; public EstimatedStartDate: string; public QuestionsDueDate: string; public ContractDurationDays?: number; public Notes: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class RfpLineItem { public ItemNumber: string; public Description: string; public Quantity?: number; public Unit: string; public Category: string; public SourceReference: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class RfpBidConstraint { public Constraint: string; public Detail: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class RfpBrief { public ProjectTitle: string; public SolicitationNumber: string; public IssuingOrganization: string; public ProjectType: string; public Summary: string; public Locations: RfpLocation[] = []; public Schedule: RfpSchedule; public LineItems: RfpLineItem[] = []; public BidConstraints: RfpBidConstraint[] = []; public SpecialRequirements: string[] = []; 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); } } export class CostRange { public Min: number; public Max: number; public Mid: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class PricedPosition { public PositionTag: string; public Hours: number; public HasInternalRate: boolean; public RateMin?: number; public RateMax?: number; public RateAvg?: number; public ContactCount: number; public Cost: CostRange; public MarketRateReference?: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class PricedEquipment { public EquipmentID: number; public EquipmentName: string; public Quantity: number; public DurationDays?: number; public RateType: string; public BilledRate?: number; public CostRate?: number; public HasRate: boolean; public IsInCatalog: boolean; public Cost: number; public CompanyCost: number; public Margin: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class PricedMaterial { public MaterialID: number; public MaterialName: string; public Quantity: number; public UnitCost?: number; public HasRate: boolean; public IsInCatalog: boolean; public Cost: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class PricedTask { public Name: string; public Category: string; public Positions: PricedPosition[] = []; public Equipment: PricedEquipment[] = []; public Materials: PricedMaterial[] = []; public Subtotal: CostRange; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class PricedProposal { public RfpDocumentID: number; public ProjectName: string; public Currency: string; public Tasks: PricedTask[] = []; public Total: CostRange; public PositionsNeedingRate: number; public EquipmentNotInCatalog: number; public MaterialsNotInCatalog: number; public PositionsNotInCatalog: number; public EquipmentMargin: 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 RfpRefineResponse { public ResponseStatus: ResponseStatus; public RfpDocumentID: number; public Layer: string; public Mode: string; public TurnCount: number; public Brief: RfpBrief; public Proposal: ProjectProposal; public Pricing: PricedProposal; public CrewPlan: CrewPlanLine[] = []; public CacheReadTokens: number; public CacheCreationTokens: number; public InputTokens: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @Route("/v1/Rfp/{RfpDocumentUID}/Refine", "POST,OPTIONS") export class RfpRefineRequest implements IReturn { public RfpDocumentUID: string; public Layer: string; public Mode: string; public Instruction: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } public getTypeName() { return 'RfpRefineRequest'; } public getMethod() { return 'POST'; } public createResponse() { return new RfpRefineResponse(); } }