using UnityEngine; namespace Tech3C { /// /// Configuration class for Tech3C SDK /// [CreateAssetMenu(fileName = "Tech3CConfig", menuName = "Tech3C SDK/Configuration", order = 1)] public class Tech3CConfig : ScriptableObject { [Header("Client Credentials")] [Tooltip("Client ID for Tech3C authentication")] public string clientId; [Tooltip("Client Secret for Tech3C authentication")] public string clientSecret; [Header("General Settings")] [Tooltip("Enable debug mode for detailed logging")] public bool debugMode = false; [Tooltip("Display language for the SDK")] public Language language = Language.English; [Tooltip("Environment for the SDK")] public Environment environment = Environment.Production; [Header("UI Settings")] [Tooltip("UI mode for authentication (Fullscreen or Dialog)")] public UiMode uiMode = UiMode.Fullscreen; [Tooltip("Dialog size when UI mode is Dialog")] public DialogSize dialogSize = DialogSize.Medium; [Tooltip("Screen orientation for authentication")] public OrientationMode screenOrientation = OrientationMode.Auto; [Tooltip("Disable exit button on login screen")] public bool disableExitLogin = false; [Header("Authentication Settings")] [Tooltip("Enable guest login")] public bool enableGuestLogin = false; [Tooltip("Require OTP for authentication")] public bool requireOtp = false; [Tooltip("Enable Google login")] public bool enableGoogleLogin = false; [Tooltip("Enable Facebook login")] public bool enableFacebookLogin = false; [Tooltip("Enable Apple login")] public bool enableAppleLogin = false; [Header("Maintenance Settings")] [Tooltip("Enable maintenance check")] public bool enableMaintenanceCheck = false; [Tooltip("Maintenance check URL")] public string maintenanceCheckUrl; [Tooltip("Server IP for maintenance check")] public string serverIp; [Header("Network Settings")] [Tooltip("Timeout in seconds for network requests")] public int timeoutSeconds = 30; /// /// Creates a default Tech3CConfig asset /// public static Tech3CConfig CreateDefault() { var config = CreateInstance(); config.clientId = ""; config.clientSecret = ""; config.debugMode = false; config.language = Language.English; config.environment = Environment.Production; config.uiMode = UiMode.Fullscreen; config.dialogSize = DialogSize.Medium; config.screenOrientation = OrientationMode.Auto; config.disableExitLogin = false; config.enableGuestLogin = false; config.requireOtp = false; config.enableGoogleLogin = false; config.enableFacebookLogin = false; config.enableAppleLogin = false; config.enableMaintenanceCheck = false; config.maintenanceCheckUrl = ""; config.serverIp = ""; config.timeoutSeconds = 30; return config; } /// /// Validates the configuration /// public bool IsValid() { return !string.IsNullOrEmpty(clientId) && !string.IsNullOrEmpty(clientSecret); } /// /// Gets the language code string /// public string GetLanguageCode() { return language == Language.Vietnamese ? "vi" : "en"; } } }