Files
Swarm/DysonNetwork.Pass/Features/Account/Interfaces/IRelationshipService.cs

29 lines
1.3 KiB
C#

using DysonNetwork.Common.Models;
using NodaTime;
namespace DysonNetwork.Pass.Features.Account.Interfaces;
public interface IRelationshipService
{
Task<bool> HasExistingRelationship(Guid accountId, Guid relatedId);
Task<Relationship?> GetRelationship(
Guid accountId,
Guid relatedId,
RelationshipStatus? status = null,
bool ignoreExpired = false
);
Task<Relationship> CreateRelationship(Models.Account sender, Models.Account target, RelationshipStatus status);
Task<Relationship> BlockAccount(Models.Account sender, Models.Account target);
Task<Relationship> UnblockAccount(Models.Account sender, Models.Account target);
Task<Relationship> SendFriendRequest(Models.Account sender, Models.Account target);
Task DeleteFriendRequest(Guid accountId, Guid relatedId);
Task<Relationship> AcceptFriendRelationship(
Relationship relationship,
RelationshipStatus status = RelationshipStatus.Friends
);
Task<Relationship> UpdateRelationship(Guid accountId, Guid relatedId, RelationshipStatus status);
Task<List<Guid>> ListAccountFriends(Models.Account account);
Task<List<Guid>> ListAccountBlocked(Models.Account account);
Task<bool> HasRelationshipWithStatus(Guid accountId, Guid relatedId, RelationshipStatus status = RelationshipStatus.Friends);
}