//
// Licensed under the MIT License. See LICENSE file in the project root for full license information.
//
namespace MUnique.OpenMU.Persistence;
using MUnique.OpenMU.Interfaces;
///
/// A context which is used by the .
///
public interface IFriendServerContext : IContext
{
///
/// Creates a new friend view item.
///
/// Name of the character.
/// Name of the friend.
/// The created friend view item.
ValueTask CreateNewFriendAsync(string characterName, string friendName);
///
/// Gets the friend view item by friend.
///
/// Name of the character holding the friend view item in its friendlist.
/// Name of the friend.
/// The friend view item of the friend.
ValueTask GetFriendByNamesAsync(string characterName, string friendName);
///
/// Gets the friends of a character.
///
/// Id of the character.
/// The friends of the character.
ValueTask> GetFriendsAsync(Guid characterId);
///
/// Gets the friend names of a character.
///
/// Id of the character.
/// The friend names of the character.
ValueTask> GetFriendNamesAsync(Guid characterId);
///
/// Deletes the friend with name from the friendlist of .
///
/// Name of the character holding the friend view item in its friendlist.
/// Name of the friend.
ValueTask DeleteAsync(string characterName, string friendName);
///
/// Gets the names from characters which requested a friendship to the character with the specified id and are not answered yet.
///
/// Id of the character.
/// The open friend requester names.
ValueTask> GetOpenFriendRequesterNamesAsync(Guid characterId);
}