using Mindforge.API.Models.Flashcards;
using Mindforge.API.Models.Requests;

namespace Mindforge.API.Services.Interfaces
{
    public interface IFlashcardService
    {
        Task<IReadOnlyList<FlashcardLibraryDetails>> GenerateFlashcardsAsync(FlashcardGenerateRequest request);
        Task<IReadOnlyList<FlashcardLibrarySummary>> GetLibrariesAsync();
        Task<FlashcardLibraryDetails?> GetLibraryByIdAsync(long libraryId);
        Task<IReadOnlyList<FlashcardCard>> BuildReviewSessionAsync(FlashcardReviewSessionRequest request);
        Task<FlashcardRagDashboard> GetRagStatusAsync();
        Task RecordReviewAnswerAsync(long cardId, bool correct);
    }
}
