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