29 lines
1.3 KiB
C#
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);
|
|
}
|