/** * Scope Change Model * Database model for scope change requests and tracking * * @description Defines the data structure for scope changes with full * impact analysis and PMBOK compliance tracking * * @version 1.0.0 * @since 3.2.0 */ import mongoose, { Document } from 'mongoose'; export interface IScopeImpact { scheduleImpact: { days: number; percentage: number; criticalPath: boolean; }; costImpact: { amount: number; percentage: number; budgetCategory: string; }; resourceImpact: { additionalResources: string[]; skillsRequired: string[]; availabilityImpact: boolean; }; qualityImpact: { riskToQuality: boolean; testingImpact: boolean; acceptanceCriteriaChanges: boolean; }; stakeholderImpact: { affectedStakeholders: string[]; communicationRequired: boolean; approvalRequired: boolean; }; } export interface IScopeChange extends Document { _id: string; projectId: string; changeType: 'addition' | 'reduction' | 'modification' | 'clarification'; description: string; requestedBy: string; requestDate: Date; impact: IScopeImpact; status: 'pending' | 'approved' | 'rejected' | 'implemented' | 'cancelled'; approvedBy?: string; approvalDate?: Date; implementationDate?: Date; riskLevel: 'low' | 'medium' | 'high' | 'critical'; pmbokCompliance: boolean; priority: 'low' | 'medium' | 'high' | 'urgent'; estimatedEffort?: number; actualEffort?: number; businessJustification?: string; alternativesConsidered?: string[]; rollbackPlan?: string; approvalWorkflow?: { level1Approver?: string; level1ApprovalDate?: Date; level2Approver?: string; level2ApprovalDate?: Date; finalApprover?: string; finalApprovalDate?: Date; }; implementationPlan?: { steps: string[]; assignedTo?: string; estimatedDuration?: number; dependencies?: string[]; milestones?: { name: string; targetDate: Date; completed: boolean; completedDate?: Date; }[]; }; impactScore: number; complexityScore: number; statusHistory: { status: string; changedBy: string; changedDate: Date; comments?: string; }[]; createdAt: Date; updatedAt: Date; } export declare const ScopeChange: mongoose.Model & IScopeChange & Required<{ _id: string; }> & { __v: number; }, any>; //# sourceMappingURL=ScopeChange.d.ts.map