namespace TarninaHub.Application.Matchmaking; /// /// Deterministic, offline explanation of "why this fits". Used as the default /// and as a fallback when the LLM is unavailable or rate-limited. /// public static class RationaleBuilder { public static string Build(bool challengeMatch, bool locationMatch, double score) { var reasons = new List(); if (challengeMatch) { reasons.Add("ten sam obszar problemowy"); } if (locationMatch) { reasons.Add("zbliżona lokalizacja"); } reasons.Add(score >= 0.3 ? "wysoka zbieżność opisu potrzeby" : "zbieżność semantyczna opisu"); return "Proponowane dopasowanie: " + string.Join(", ", reasons) + "."; } }