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

class Albums extends CI_Controller {

    private $sort = 'Tri'; // Variable privée pour définir l'ordre de tri par défaut

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

    // on affiche tous les albums
    public function index(){
        $albums = $this->model_music->getAlbums();
        $genres = $this->model_music->getGenres();
        $num_results = count($albums); // nombre total d'alubm recup
        $this->load->view('layout/header');
        $this->load->view('albums_list', [
            'albums' => $albums, 
            'sort' => $this->sort, 
            'num_results' => $num_results, 
            'is_search' => false,
            'genres' => $genres
        ]);
        $this->load->view('layout/footer');
    }

    // afficher les détail d'un album spécifique (les musiques de l'albums)
    public function view($id){ 
        $tracks = $this->model_music->getTracksByAlbumId($id); // recuperer les pistes d'un album par son id
        $this->load->view('layout/header');
        $this->load->view('album_info', ['tracks' => $tracks]);
        $this->load->view('layout/footer');
    }

    // trié en fonction d'un critère
    public function tri(){
        $Ctri = $this->input->get('Ctri'); // critère de trie via l'url
        $trie = $this->model_music->get_tri_Albums($Ctri); 
        $genres = $this->model_music->getGenres();
        $num_results = count($trie);
        $this->load->view('layout/header');
        $this->load->view('albums_list', [
            'albums' => $trie, 
            'sort' => $this->sort, 
            'num_results' => $num_results, 
            'is_search' => false,
            'genres' => $genres
        ]);
        $this->load->view('layout/footer');
    }

    public function search(){
        $query = $this->input->get('query');
        $genre = $this->input->get('genre');
        $albums = $this->model_music->searchAlbums($query, $genre);
        $genres = $this->model_music->getGenres();
        $num_results = count($albums);
        $this->load->view('layout/header');
        $this->load->view('albums_list', [
            'albums' => $albums, 
            'sort' => $this->sort, 
            'num_results' => $num_results, 
            'is_search' => true,
            'genres' => $genres
        ]);
        $this->load->view('layout/footer');
    }
}