UNPKG

supa-seed

Version:

A constraint-aware, framework-agnostic database seeding framework with deep PostgreSQL business logic discovery and MakerKit integration support

95 lines 3 kB
/** * Data Volume Management System for Epic 7: Configuration Extensibility Framework * Manages realistic data volume configuration and generation patterns */ import { ExtendedSeedConfig } from '../../core/types/config-types'; export interface DataVolumeProfile { name: string; description: string; userCount: number; avgItemsPerUser: number; avgRelationshipsPerItem: number; dataQualityLevel: 'basic' | 'rich' | 'production'; environment: 'development' | 'staging' | 'production'; estimatedSeedingTime: number; storageRequirement: number; } export interface DataGenerationMetrics { totalUsers: number; totalItems: number; totalRelationships: number; publicContentCount: number; privateContentCount: number; draftContentCount: number; estimatedDatabaseSize: number; estimatedSeedingTime: number; } export interface DomainSpecificPatterns { domain: string; contentTypes: string[]; relationshipPatterns: Array<{ from: string; to: string; expectedRatio: number; description: string; }>; seasonalFactors: Array<{ period: string; multiplier: number; affects: string[]; }>; userBehaviorProfiles: Array<{ type: string; percentage: number; activityLevel: 'low' | 'medium' | 'high'; contentCreationRate: number; }>; } export declare class DataVolumeManager { private domainPatterns; constructor(); /** * Generate comprehensive data volume configuration */ generateDataVolumeConfiguration(requirements: { environment: 'development' | 'staging' | 'production'; testingScenarios: string[]; expectedLoad: 'light' | 'medium' | 'heavy'; domainType?: string; customConstraints?: { maxUsers?: number; maxSeedingTime?: number; maxDatabaseSize?: number; }; }): ExtendedSeedConfig['dataVolumes']; /** * Calculate data generation metrics */ calculateGenerationMetrics(config: ExtendedSeedConfig): DataGenerationMetrics; /** * Get recommended profile for specific use case */ getRecommendedProfile(useCase: 'ci-testing' | 'development' | 'demo' | 'load-testing' | 'production'): DataVolumeProfile; /** * Validate data volume configuration */ validateDataVolumeConfiguration(config: ExtendedSeedConfig['dataVolumes']): { valid: boolean; errors: string[]; warnings: string[]; recommendations: string[]; }; /** * Private helper methods */ private getBaseVolumesByEnvironment; private getLoadMultiplier; private generateContentRatios; private generateRelationshipDensity; private selectUserDistribution; private generateVolumeProfiles; private estimateDatabaseSize; private estimateSeedingTime; private initializeDomainPatterns; } //# sourceMappingURL=data-volume-manager.d.ts.map