using System; using Microsoft.Extensions.Options; namespace GB5Shared.Deployment { public sealed class GB5Environment : IGB5Environment { private readonly GB5EnvironmentOptions _options; public GB5Environment(IOptions options) { _options = options.Value; } public GB5Tier Tier => _options.Environment; public bool IsLive => Tier == GB5Tier.Live; public string TierCode => Tier.ToString(); public string Resolve(string baseConnectionName) => Tier == GB5Tier.Live ? baseConnectionName : $"{baseConnectionName}-{TierCode}"; public string GopEnvironmentCode => Tier switch { GB5Tier.Dev => "DEV", GB5Tier.QC => "QC", GB5Tier.Live => "PROD", _ => throw new NotSupportedException($"Unmapped GB5Tier '{Tier}'.") }; } }