package com.narutohuo.xindazhou.common.storage

import com.narutohuo.xindazhou.core.storage.StorageImpl

/**
 * 存储管理器
 * 
 * 业务层封装，提供便捷的存储管理方式
 * 底层使用 base-core 的 StorageImpl 统一存储
 */
object StorageManager {
    
    // ========== 键值存储 ==========
    
    /**
     * 保存字符串
     */
    fun putString(key: String, value: String) {
        StorageImpl.putString(key, value)
    }
    
    /**
     * 获取字符串
     */
    fun getString(key: String, defaultValue: String = ""): String {
        return StorageImpl.getString(key, defaultValue)
    }
    
    /**
     * 保存整数
     */
    fun putInt(key: String, value: Int) {
        StorageImpl.putInt(key, value)
    }
    
    /**
     * 获取整数
     */
    fun getInt(key: String, defaultValue: Int = 0): Int {
        return StorageImpl.getInt(key, defaultValue)
    }
    
    /**
     * 保存长整数
     */
    fun putLong(key: String, value: Long) {
        StorageImpl.putLong(key, value)
    }
    
    /**
     * 获取长整数
     */
    fun getLong(key: String, defaultValue: Long = 0L): Long {
        return StorageImpl.getLong(key, defaultValue)
    }
    
    /**
     * 保存布尔值
     */
    fun putBoolean(key: String, value: Boolean) {
        StorageImpl.putBoolean(key, value)
    }
    
    /**
     * 获取布尔值
     */
    fun getBoolean(key: String, defaultValue: Boolean = false): Boolean {
        return StorageImpl.getBoolean(key, defaultValue)
    }
    
    /**
     * 删除指定键
     */
    fun remove(key: String) {
        StorageImpl.remove(key)
    }
    
    /**
     * 清除所有数据
     */
    fun clear() {
        StorageImpl.clear()
    }
    
    // ========== 文件存储 ==========
    
    /**
     * 保存文件
     */
    fun saveFile(path: String, data: ByteArray): Boolean {
        return StorageImpl.saveFile(path, data)
    }
    
    /**
     * 读取文件
     */
    fun readFile(path: String): ByteArray? {
        return StorageImpl.readFile(path)
    }
    
    /**
     * 删除文件
     */
    fun deleteFile(path: String): Boolean {
        return StorageImpl.deleteFile(path)
    }
}

