﻿using StarMusics.Core.Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace StarMusics.Core.Contract
{
    public interface IAlbumsService
    {
        Task<PagingList<AlbumHeader>> GetPagedAlbumsAsync(AlbumsCriteria criteria);
        Task<IList<AlbumHeader>> GetAlbumsByRankAsync(int total=18);
        Task<IList<ListItem>> GetArtistItemsAsync();
        Task<IList<ListItem>> GetGenreItemsAsync();
        Task<AlbumDetails> GetAlbumWithReviewsAsync(int albumId);
        Task<int> SaveAlbumReviewAsync(int id, string userId, ReviewDetails reviewEntry);
        Task RemoveReviewAsync(int albumId, int reviewId, string userId);
    }
}