namespace AIStudio.Provider.OpenRouter;
///
/// A data model for an OpenRouter model from the API.
///
/// The model's ID.
/// The model's human-readable display name.
/// The model's provider-reported reasoning behavior.
public readonly record struct OpenRouterModel(string Id, string? Name, OpenRouterReasoning? Reasoning)
{
///
/// Converts the catalog entry into the model the rest of the app works with.
///
public Model ToModel() => new(this.Id, this.Name)
{
ReasoningBehavior = this.Reasoning switch
{
{ Mandatory: true } => ModelReasoningBehavior.ALWAYS_ON,
{ DefaultEnabled: true } => ModelReasoningBehavior.DEFAULT_ON,
not null => ModelReasoningBehavior.OPTIONAL,
_ => ModelReasoningBehavior.UNKNOWN,
},
};
}