namespace AppClientBase.Services;

/// <summary>
/// EN: Settings service using MAUI Preferences API.
/// VI: Dịch vụ cài đặt sử dụng MAUI Preferences API.
/// </summary>
public class SettingsService : ISettingsService
{
    /// <summary>
    /// EN: Get a setting value.
    /// VI: Lấy giá trị cài đặt.
    /// </summary>
    public T Get<T>(string key, T defaultValue)
    {
        return Preferences.Default.Get(key, defaultValue);
    }

    /// <summary>
    /// EN: Set a setting value.
    /// VI: Đặt giá trị cài đặt.
    /// </summary>
    public void Set<T>(string key, T value)
    {
        Preferences.Default.Set(key, value);
    }

    /// <summary>
    /// EN: Check if a setting exists.
    /// VI: Kiểm tra xem cài đặt có tồn tại không.
    /// </summary>
    public bool Contains(string key)
    {
        return Preferences.Default.ContainsKey(key);
    }

    /// <summary>
    /// EN: Remove a setting.
    /// VI: Xóa một cài đặt.
    /// </summary>
    public void Remove(string key)
    {
        Preferences.Default.Remove(key);
    }

    /// <summary>
    /// EN: Clear all settings.
    /// VI: Xóa tất cả cài đặt.
    /// </summary>
    public void Clear()
    {
        Preferences.Default.Clear();
    }
}
