QrRapido/Models/Extensions/PlanExtensions.cs
2025-07-29 19:11:47 -03:00

58 lines
2.1 KiB
C#

using System.Collections.Generic;
using System.Linq;
namespace QRRapidoApp.Models.Extensions
{
public static class PlanExtensions
{
public static string GetLocalizedName(this Plan plan, string languageCode)
{
if (plan.Name.TryGetValue(languageCode, out var name))
return name;
// Fallback to Portuguese if language not found
if (plan.Name.TryGetValue("pt-BR", out var ptName))
return ptName;
// Final fallback to first available language
return plan.Name.Values.FirstOrDefault() ?? "Plan";
}
public static string GetLocalizedDescription(this Plan plan, string languageCode)
{
if (plan.Description.TryGetValue(languageCode, out var description))
return description;
// Fallback to Portuguese if language not found
if (plan.Description.TryGetValue("pt-BR", out var ptDescription))
return ptDescription;
// Final fallback to first available language
return plan.Description.Values.FirstOrDefault() ?? "Premium plan description";
}
public static List<string> GetLocalizedFeatures(this Plan plan, string languageCode)
{
if (plan.Features.TryGetValue(languageCode, out var features))
return features;
// Fallback to Portuguese if language not found
if (plan.Features.TryGetValue("pt-BR", out var ptFeatures))
return ptFeatures;
// Final fallback to first available language
return plan.Features.Values.FirstOrDefault() ?? new List<string>();
}
public static string GetLanguageCode(string culture)
{
return culture switch
{
"pt-BR" or "pt" => "pt-BR",
"es" or "es-ES" => "es",
"en" or "en-US" => "en",
_ => "pt-BR" // Default to Portuguese
};
}
}
}