17 lines
1.0 KiB
C#
17 lines
1.0 KiB
C#
using Knot.Contracts.Profiles.Application.DTOs;
|
|
using Knot.Shared.Kernel;
|
|
|
|
namespace Knot.Contracts.Profiles.Domain;
|
|
|
|
public interface IProfileRepository
|
|
{
|
|
Task<UserProfileDto?> GetAsync(Guid userId, CancellationToken cancellationToken = default);
|
|
Task<UserProfileDto?> GetByUsernameAsync(string username, CancellationToken cancellationToken = default);
|
|
Task<List<UserProfileDto>> GetAsync(IEnumerable<Guid> userIds, CancellationToken cancellationToken = default);
|
|
Task<List<UserProfileDto>> SearchAsync(string query, int limit = 20, CancellationToken cancellationToken = default);
|
|
Task<Result<UserProfileDto>> CreateAsync(UserProfileDto dto, CancellationToken cancellationToken = default);
|
|
Task<Result<UserProfileDto>> UpdateAsync(UserProfileDto dto, CancellationToken cancellationToken = default);
|
|
Task<Result> DeleteAsync(Guid userId, CancellationToken cancellationToken = default);
|
|
Task<Result> UpdateStatusAsync(Guid userId, bool isBanned, bool isDeleted, CancellationToken ct = default);
|
|
}
|