using Radium.DataExporter.Models.Common.Enums;

namespace Radium.DataExporter.Client.Platforms;

public abstract class PlatformManager
{
    private static PlatformManager? _instance;
    public static PlatformManager Instance =>
        _instance ?? throw new InvalidOperationException("PlatformManager not yet initialized?!");

    public PlatformManager() => _instance = this;

    public abstract PlatformType Platform { get; }
    public string PlatformId { get; protected set; } = string.Empty;
    public abstract string GetPlatformAuthenticationParamaters();
    public abstract void Initialize();
}