<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Playlist extends CI_Controller {

    public function __construct(){
        parent::__construct();
        $this->load->model('model_music');
        $this->load->helper('html');
        $this->load->helper('url');
        $this->load->helper('form');
    }

    public function index(){

        $userId = $this->session->userdata('user_id');
        $playlists = $this->model_music->getPlaylistsByUser($userId);
        $this->load->view('layout/header');
        $this->load->view('playlist_list', ['playlists' => $playlists]);
        $this->load->view('layout/footer');
    }

    public function create(){
        $name = $this->input->post('name');
        $userId = $this->session->userdata('user_id');
        $this->model_music->createPlaylist($name, $userId);
        redirect('playlist');
    }

    public function delete($playlistId){
        $this->model_music->deletePlaylist($playlistId);
        redirect('playlist');
    }

    public function view($id) {
        $songs = $this->model_music->getSongsByPlaylist($id);
        $playlist = $this->model_music->getPlaylistById($id);
        
        if ($playlist) {
            $data['playlistName'] = $playlist->name; // Passez le nom de la playlist à la vue
            $data['songs'] = $songs;
            $data['playlistId'] = $id;
    
            $this->load->view('layout/header');
            $this->load->view('playlist_view', $data);
            $this->load->view('layout/footer');
        } else {
            echo "Playlist non trouvée.";
        }
    }

    public function add_song(){
        $playlistId = $this->input->post('playlistId');
        $songId = $this->input->post('songId');
        $this->model_music->addSongToPlaylist($playlistId, $songId);
        redirect('playlists/view/' . $playlistId);
    }
    

    public function remove_song(){
        $playlistId = $this->input->post('playlistId');
        $songId = $this->input->post('songId');
        $this->model_music->removeSongFromPlaylist($playlistId, $songId);
        redirect('playlist/view/' . $playlistId);
    }

    public function search_song(){
        $playlistId = $this->input->post('playlistId');
        $songName = $this->input->post('songName');
    
        // Recherche la chanson par son nom
        $song = $this->model_music->findSongByName($songName);
    
        if ($song) {
            // Si la chanson est trouvée, ajoutez-la à la playlist
            $this->model_music->addSongToPlaylist($playlistId, $song->id);
        }
    
        // Redirige l'utilisateur vers la vue de la playlist mise à jour
        redirect('playlist/view/' . $playlistId);
    }
}
?>