// Módulo: proycol_engine::consultor pub struct Diagnostico { pub porcentaje_viabilidad: f32, pub requiere_alianza: bool, pub sugerencia_tecnica: String, } fn analizar_viabilidad(cliente_exp: i32, modelo_exp_requerida: i32, cliente_presupuesto: f64, modelo_cuantia: f64) -> Diagnostico { let mut score = 0.0; let mut requiere_union = false; let mut mensaje = String::from("El perfil del cliente es sólido. "); // Validación de Experiencia (Regla de Oro de Proycol) if cliente_exp >= modelo_exp_requerida { score += 50.0; } else { requiere_union = true; mensaje = format!( "⚠️ Duda Razonable: Falta experiencia ({} años vs {} requeridos). ", cliente_exp, modelo_exp_requerida ); } // Validación Financiera if cliente_presupuesto >= (modelo_cuantia * 0.3) { // Regla: Tener al menos el 30% de liquidez score += 50.0; } else { requiere_union = true; mensaje.push_str("Se requiere fortalecer el músculo financiero para esta cuantía."); } if requiere_union { mensaje.push_str("\n💡 SUGERENCIA PROYCOL: Establecer Unión Temporal o Consorcio con un socio del sector."); } Diagnostico { porcentaje_viabilidad: score, requiere_alianza: requiere_union, sugerencia_tecnica: mensaje, } }