using System;
using System.Threading.Tasks;
namespace AibisDream.SaveSystem.CloudSave
{
///
/// 云存档后端适配器接口。
///
/// P2 仅定义接口与本地 no-op 实现,未来 Steamworks.NET / TapTap TDS SDK 通过实现此接口接入。
/// 每个槽位在本地对应一组文件(snapshot.json / meta.json / thumbnail.png),
/// backend 可选择逐文件上传,或将整组文件打包后上传。
///
///
public interface ICloudSaveBackend
{
/// 平台名称,用于日志。
string PlatformName { get; }
/// 当前平台是否可用。
bool IsAvailable { get; }
/// 上传槽位文件集。
/// 槽位编号。
/// 该槽位下需要同步的文件绝对路径。
Task UploadSlotAsync(int slotIndex, string[] filePaths);
/// 下载槽位文件集到目标目录。
Task DownloadSlotAsync(int slotIndex, string targetDirectory);
/// 删除云端槽位。
Task DeleteSlotAsync(int slotIndex);
/// 获取云端该槽位的时间戳,用于冲突检测。
/// 远程保存时间;不存在返回 null。
Task GetRemoteTimestampAsync(int slotIndex);
}
}