namespace Enmarcha.Backend.Configuration;
public class AppConfiguration
{
public required string OpenTripPlannerBaseUrl { get; set; }
public required string GeoapifyApiKey { get; set; }
public string NominatimBaseUrl { get; set; } = "https://nominatim.openstreetmap.org";
public string[] OtpFeeds { get; set; } = [];
public OpenTelemetryConfiguration? OpenTelemetry { get; set; }
public VapidConfiguration? Vapid { get; set; }
}
public class OpenTelemetryConfiguration
{
public string? Endpoint { get; set; }
public string? Headers { get; set; }
}
public class VapidConfiguration
{
///
/// VAPID subject — typically "mailto:admin@yourdomain.com" or a URL.
///
public required string Subject { get; set; }
///
/// Base64url-encoded VAPID public key. Safe to expose to browsers.
///
public required string PublicKey { get; set; }
///
/// Base64url-encoded VAPID private key. Store in user secrets or environment variables only.
/// Generate a key pair with: VapidHelper.GenerateVapidKeys() from the WebPush NuGet package.
///
public required string PrivateKey { get; set; }
}