using System.Threading;
using System.Threading.Tasks;
namespace AsbCloudApp.Services;
///
/// репозиторий для личных настроек пользователя
///
public interface IUserSettingsRepository
{
///
/// код ошибки: ключ не найден
///
public const int ErrorKeyNotFound = -1;
///
/// код ошибки: ключ уже занят
///
public const int ErrorKeyIsUsed = -2;
///
/// Получить настройки по ключу для пользователя
///
///
///
///
///
Task GetOrDefaultAsync(int userId, string key, CancellationToken token);
///
/// Добавить или изменить настройки с ключем для пользователя
///
///
///
///
///
///
Task UpsertAsync(int userId, string key, System.Text.Json.JsonDocument value, CancellationToken token);
///
/// Удалить настройки с ключем для пользователя
///
///
///
///
///
Task DeleteAsync(int userId, string key, CancellationToken token);
///
/// Удалить ВСЕ настройки пользователя
///
///
///
///
Task DeleteAsync(int userId, CancellationToken token);
}