58 lines
1.2 KiB
TypeScript
58 lines
1.2 KiB
TypeScript
export interface Scope {
|
|
id: string;
|
|
name: string;
|
|
managementFee: number;
|
|
managementFeeType: 'percent' | 'amount';
|
|
deliveryFee: number;
|
|
deliveryFeeType: 'percent' | 'amount';
|
|
useManagementLogic: 'percent' | 'simple';
|
|
useDeliveryLogic: 'percent' | 'simple';
|
|
estimatorNotes?: string;
|
|
bidDescription?: string;
|
|
}
|
|
|
|
export interface SubScope {
|
|
id: string;
|
|
name: string;
|
|
scopeId: string;
|
|
}
|
|
|
|
export interface JobInfo {
|
|
number: string;
|
|
name: string;
|
|
address: string;
|
|
workOrder: string;
|
|
}
|
|
|
|
export type PricingType = 'percent' | 'amount';
|
|
|
|
export interface EstimateItem {
|
|
id: string;
|
|
description: string;
|
|
quantity: number;
|
|
unitPrice: number;
|
|
markup: number;
|
|
markupType: PricingType;
|
|
contingency: number;
|
|
contingencyType: PricingType;
|
|
scopeId?: string;
|
|
subScopeId?: string;
|
|
}
|
|
|
|
export interface TemplateItem {
|
|
id: string;
|
|
description: string;
|
|
quantity: number;
|
|
unitPrice: number;
|
|
markup: number;
|
|
markupType: PricingType;
|
|
contingency: number;
|
|
contingencyType: PricingType;
|
|
}
|
|
|
|
export interface Template {
|
|
id: string;
|
|
name: string;
|
|
items: TemplateItem[];
|
|
}
|