using DysonNetwork.Shared.Models; using MagicOnion; using System; using System.Threading.Tasks; namespace DysonNetwork.Shared.Services { public interface IAccountProfileService : IService { /// /// Gets an account profile by account ID. /// /// The ID of the account. /// The account profile if found, otherwise null. Task GetAccountProfileByIdAsync(Guid accountId); /// /// Updates the StellarMembership of an account. /// /// The ID of the account. /// The subscription to set as the StellarMembership. /// The updated account profile. Task UpdateStellarMembershipAsync(Guid accountId, SubscriptionReferenceObject? subscription); /// /// Gets all account profiles that have a non-null StellarMembership. /// /// A list of account profiles with StellarMembership. Task> GetAccountsWithStellarMembershipAsync(); /// /// Clears the StellarMembership for a list of account IDs. /// /// The list of account IDs for which to clear the StellarMembership. /// The number of accounts updated. Task ClearStellarMembershipsAsync(List accountIds); /// /// Updates the profile picture of an account. /// /// The ID of the account. /// The new profile picture reference object. /// The updated profile. Task UpdateProfilePictureAsync(Guid accountId, CloudFileReferenceObject? picture); /// /// Updates the profile background of an account. /// /// The ID of the account. /// The new profile background reference object. /// The updated profile. Task UpdateProfileBackgroundAsync(Guid accountId, CloudFileReferenceObject? background); } }