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