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

class Report_views_monthly_model extends CI_Model
{
    protected $_table='reports_views_monthly';

    public function __construct(){
        parent::__construct();
        date_default_timezone_set("Asia/Ho_Chi_Minh");
    }

    public function cmsCountAll($name = null)
    {
        $this->db->select('COUNT(*) AS totalResults');
        $this->db->from($this->_table);
        $query = $this->db->get();
        $result = $query->result_array();
        if ($result) {
            return $result[0]['totalResults'];
        } else {
            return 0;
        }
    }

    public function cmsGetPagination($record, $start, $name = null)
    {
        $this->db->select($this->_table . '.*, u1.full_name AS singer_name,
        track_user.name AS singer_name2, tracks.title AS name_song,
        GROUP_CONCAT(track_user.`name` SEPARATOR ",") AS all_name, tracks.art AS art');
        $this->db->from($this->_table);
        $this->db->join('track_user', 'track_user.track_id = reports_views_monthly.track_id', 'left');
        $this->db->join('tracks', 'tracks.id = reports_views_monthly.track_id', 'left');
        $this->db->join('users u1', 'u1.id = track_user.user_id', 'left');
        if($name != null) {  
            $data = explode('-', $name);  
            $this->db->where('month', $data[0]);
            $this->db->where('year', $data[1]);
        } else {
            
            // $this->db->select('month, year');
            // $this->db->from($this->_table);
            // $this->db->distinct($this->_table . '.month');
            // $this->db->order_by( $this->_table . '.year desc');
            // $this->db->order_by( $this->_table . '.month desc');
            // $this->db->limit(1);
            // $query = $this->db->get();
            // $data = $query->result_array();
            // $this->db->where('month', $data[0]['month']);
            // $this->db->where('year', $data[0]['year']);
        }
        $this->db->group_by('reports_views_monthly.id');
        $this->db->order_by($this->_table . '.total_point', 'desc');
        // $this->db->order_by($this->_table . '.title', 'asc');
        $this->db->limit($record);
        $query = $this->db->get();

        return $query->result_array();
    }

    public function selectSearch() {
        $this->db->select('month, year');
        $this->db->from($this->_table);
        $this->db->distinct($this->_table . '.month');
        $this->db->order_by( $this->_table . '.year desc');
        $this->db->order_by( $this->_table . '.month desc');
        $this->db->limit(3);
        $query = $this->db->get();

        return $query->result_array();
    }
}