using UniVerse.Application.DTOs.Common;
using UniVerse.Application.DTOs.Lectures;
using UniVerse.Application.DTOs.Users;
using UniVerse.Domain.Enums;

namespace UniVerse.Application.Interfaces;

public interface IUserService
{
    Task<UserDto> GetByIdAsync(int id);
    Task<UserDto> UpdateProfileAsync(int id, UpdateUserRequest request);
    Task<UserStatsDto> GetStatsAsync(int id);
    Task<PagedResult<LectureDto>> GetEnrollmentsAsync(int id, PaginationRequest pagination);
    Task<PagedResult<UserDto>> GetAllAsync(UserFilterRequest filter);
    Task SetRolesAsync(int id, IReadOnlyCollection<UserRole> roles);
    Task SetActiveAsync(int id, bool isActive);
}
