namespace AIStudio.Assistants.SWOTAnalysis; /// /// The texts of the quadrant grid: the name of each quadrant and both ends of both axes. /// /// The name of the strengths. /// The name of the weaknesses. /// The name of the opportunities. /// The name of the threats. /// The internal end of the vertical axis. /// The external end of the vertical axis. /// The positive end of the horizontal axis. /// The negative end of the horizontal axis. public sealed record SwotQuadrantLabels( string Strengths, string Weaknesses, string Opportunities, string Threats, string Internal, string External, string Positive, string Negative) { public string NameOf(SwotAnalysisCategory category) => category switch { SwotAnalysisCategory.STRENGTHS => this.Strengths, SwotAnalysisCategory.WEAKNESSES => this.Weaknesses, SwotAnalysisCategory.OPPORTUNITIES => this.Opportunities, SwotAnalysisCategory.THREATS => this.Threats, _ => string.Empty, }; /// /// Where a quadrant lies on both axes, e.g., "internal · positive". /// /// /// A grid with two columns shows the axes by the position of its quadrants, a single column does /// not; this line keeps the position readable in both. /// public string AxesOf(SwotAnalysisCategory category) => category switch { SwotAnalysisCategory.STRENGTHS => $"{this.Internal} · {this.Positive}", SwotAnalysisCategory.WEAKNESSES => $"{this.Internal} · {this.Negative}", SwotAnalysisCategory.OPPORTUNITIES => $"{this.External} · {this.Positive}", SwotAnalysisCategory.THREATS => $"{this.External} · {this.Negative}", _ => string.Empty, }; }