Files
forkmessager/backend/src/Contracts/Profiles/Domain/IProfileRepository.cs
T

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);
}