/*
 * @Descripttion: Pinia 持久化存储适配器 - 使用 tool.data 封装的 localStorage
 * @version: 1.0
 */

import tool from '@/utils/tool'

/**
 * 自定义存储适配器
 * 使用 tool.data 的 set/get/remove 方法，支持加密和过期时间
 */
export const customStorage = {
	/**
	 * 获取数据
	 * @param {string} key - 存储键
	 * @returns {any} - 存储的数据
	 */
	getItem: (key) => {
		return tool.data.get(key)
	},

	/**
	 * 设置数据
	 * @param {string} key - 存储键
	 * @param {any} value - 要存储的值
	 */
	setItem: (key, value) => {
		tool.data.set(key, value)
	},

	/**
	 * 删除数据
	 * @param {string} key - 存储键
	 */
	removeItem: (key) => {
		tool.data.remove(key)
	},
}

/**
 * 默认持久化配置
 */
export const defaultPersistConfig = {
	storage: customStorage,
	// 可以在这里添加其他全局配置，如过期时间等
	// serializer: {
	//   serialize: (state) => JSON.stringify(state),
	//   deserialize: (value) => JSON.parse(value)
	// }
}
