//
//  AudioContentPlaylistManager.swift
//  SodaLive
//
//  Created by klaus on 12/16/24.
//

import Foundation

class AudioContentPlaylistManager {
    private var currentIndex = -1
    
    let playlist: [AudioContentPlaylistContent]
    
    init(playlist: [AudioContentPlaylistContent]) {
        self.playlist = playlist
    }
    
    func moveToNext() -> AudioContentPlaylistContent? {
        if !playlist.isEmpty {
            currentIndex = currentIndex + 1 >= playlist.count ? 0 : currentIndex + 1
            return playlist[currentIndex]
        }
        
        return nil
    }
    
    func moveToPrevious() -> AudioContentPlaylistContent? {
        if !playlist.isEmpty {
            currentIndex = currentIndex - 1 < 0 ? playlist.count - 1 : currentIndex - 1
            return playlist[currentIndex]
        }
        
        return nil
    }
    
    func findByContentId(contentId: Int) -> AudioContentPlaylistContent? {
        if let index = playlist.firstIndex(where:  { $0.id == contentId }), !playlist.isEmpty {
            currentIndex = index
            return playlist[index]
        }
        
        return nil
    }
    
    func hasNextContent() -> Bool {
        return currentIndex + 1 < playlist.count
    }
}
