import type { LoadCombination, LimitState, GeometryCheck, DesignCheck, } from '../types/connection'; export function performDesignChecks( loadCombinations: LoadCombination[], limitStates: LimitState[], geometryChecks: GeometryCheck[] ): DesignCheck { // Find maximum factored load const maxPu = Math.max(...loadCombinations.map(lc => lc.pu), 0); // Find controlling (minimum) design strength const applicableLimitStates = limitStates.filter(ls => ls.applicable); const minPhiRn = applicableLimitStates.length > 0 ? Math.min(...applicableLimitStates.map(ls => ls.phiRn)) : Infinity; // Calculate connection strength ratio (demand/capacity) const connectionStrengthRatio = minPhiRn > 0 ? maxPu / minPhiRn : 0; // Design check ratio (for future use) const designCheckRatio = 0.0; // Check if all geometry constraints pass const geometricConstraintsCheck = geometryChecks.every(check => check.status === 'OK') ? 'OK' : 'NG'; // Update load combinations with pass/fail status loadCombinations.forEach(lc => { lc.passes = lc.pu <= minPhiRn; }); return { connectionStrengthRatio, designCheckRatio, geometricConstraintsCheck, }; }