namespace GB5Shared.Deployment
{
///
/// Process-wide deployment tier. Bound once at startup from GB5:Environment and never
/// re-read per request — this is static process configuration, same lifetime class as
/// VaultOptions, not per-request state like LoginDTO (never register LoginDTO itself as
/// a singleton; this interface only ever hands back plain strings/enum values).
///
public interface IGB5Environment
{
/// Which tier this process is running as.
GB5Tier Tier { get; }
/// True only when is .
bool IsLive { get; }
/// "Dev" | "QC" | "Live" — matches GB5Tier's own name.
string TierCode { get; }
///
/// Applies this tier's MSERVERCONFIG.CONNECTIONNAME suffix convention. Live
/// intentionally maps to the base name UNCHANGED — every already-deployed Live
/// CONNECTIONNAME (EntitlementDb, DXPDb, ...) keeps working with no MSERVERCONFIG
/// change; only Dev/QC need new, additively-registered rows.
///
string Resolve(string baseConnectionName);
///
/// GOP's own historical free-text environment code. Live intentionally still
/// resolves to "PROD" — that's the pre-existing MGOPSOURCEBINDING/MGOPFLOWSNAPSHOT
/// column default, and changing it would orphan every row seeded before this
/// abstraction existed.
///
string GopEnvironmentCode { get; }
}
}