<?php
namespace App\Models;
use CodeIgniter\Model;

class AsistenciaModel extends Model
{
    protected $table      = 'asistencia';
    protected $primaryKey = 'IdAsistencias';

    protected $useAutoIncrement = true;

    protected $returnType     = 'array';
    protected $useSoftDeletes = false;

    protected $allowedFields = [ 'IdAsistencias' ,'IdUsuario' , 'id_horario', 'FechaHoraRegistro' , 'TipoRegistro', 'Motivo'];

    protected $useTimestamps = false;
    protected $createdField  = 'created_at';
    protected $updatedField  = 'updated_at';
    protected $deletedField  = 'deleted_at';

    protected $validationRules    = [];
    protected $validationMessages = [];
    protected $skipValidation     = false;
    
    // public function listaGeneralHorariosServerSide($get, $adicionales)
    // {
        
    //     /*
    //     * ----------------------------
    //     * VALORES ESTÁTICOS A UTILIZAR
    //     * ----------------------------
    //     */
    //     // $this->globales = new Globales();
    //     $fields = array(
    //         0 => 'horarios.id_horario',
    //         1 => 'horarios.horario',
    //         2 => 'horarios.codigo',
    //         3 => 'horarios.UsuarioRegistra',
    //         4 => 'horarios.FechaRegistra',
    //         5 => 'horarios.Estado');
    //     /*
    //     * ----------------------------
    //     * ARMADO DE VALORES QUERY
    //     * ----------------------------
    //     */
    //     $this->select('horarios.id_horario, horarios.horario, horarios.codigo, horarios.UsuarioRegistra, horarios.FechaRegistra, horarios.Estado, horarios.EliminacionLogica, CONCAT(tblusuario.Nombres," ",tblusuario.Apellidos) AS nombresCompletos');
    //     $this->join('tblusuario', 'tblusuario.IdUsuario = horarios.UsuarioRegistra', 'left');
    //     /*
    //     * ----------------------------
    //     * ARMADO DE CONDICIONES QUERY
    //     * ----------------------------
    //     */
    //     if ($get['search']['value'] != "") 
    //     {
    //         $this->groupStart(); // Inicia un grupo de condiciones
    //         foreach ($get['columns'] as $k => $column) 
    //         {
    //             if(array_key_exists($k, $fields))
    //             {
    //                 $this->orLike($fields[$k], $get['search']['value']);
    //             }
    //         }
    //         $this->groupEnd(); // Finaliza el grupo de condiciones
    //     }
        
    //     $this->where('horarios.EliminacionLogica',1);
    //     /*
    //     * ----------------------------
    //     * ORDENAMIENTO DE QUERY
    //     * ----------------------------
    //     */
    //     foreach ($get['order'] as $order) {
    //         if(array_key_exists($order['column'], $fields))
    //         {
    //             $this->orderBy($fields[$order['column']], $order['dir']);
    //         }
    //     }
    //     /*
    //     * ----------------------------
    //     * LIMITAR CANTIDAD DE RESULTADOS DE QUERY
    //     * ----------------------------
    //     */
    //     $this->limit($get['length'], $get['start']);
    //     /*
    //     * ----------------------------
    //     * EJECUTAR CONSULTA Y DEVOLVER VALORES
    //     * ----------------------------
    //     */
    //     // $this->get();
    //     // return $this->getLastQuery();
    //     $result = $this->get()->getResultArray(); 
        
    //     // Retornar datos y totales
    //     return   $result;  

    // }
    
    // public function listarHorariosXPlanificacion($idUsuarioPlanificacion)
    // { 
    //     $this->distinct(); // Asegura que los resultados no se repitan
    //     $this->select('horarios.id_horario, horarios.horario, horarios.codigo,horarios.HoraInicio,horarios.HoraFin,horario_grupotrabajo.IDGrupoTrabajo');
    //     $this->join('horario_grupotrabajo', 'horario_grupotrabajo.id_horario = horarios.id_horario');
    //     $this->join('planificacion', 'planificacion.IDGrupoTrabajo = horario_grupotrabajo.IDGrupoTrabajo');
    //     $this->where('planificacion.IdUsuario', $idUsuarioPlanificacion);
        
    //     $datos = $this->findAll(); // Ejecuta la consulta y obtiene los resultados
    //     return $datos; // Retorna los datos únicos
    // }

}