<?php

namespace App\Models;

use CodeIgniter\Model;

class PrestadorSolicitudModel extends Model
{
    protected $table         = 'rh_prestador_solicitud';
    protected $allowedFields = [
        'nombre', 'apaterno', 'amaterno', 'fechanac',
        'direccion', 'colonia', 'municipio', 'cp',
        'telefono', 'celular', 'email',
        'idescuela', 'carrera', 'grado', 'turno',
        'tipo', 'fechainicio', 'iddepartamento_actual', 'horas_servicio',
        'codigo_estudiante', 'horario',
        'status'
    ];
    // protected $returnType    = \App\Entities\PrestadorSolicitud::class;
    protected $useTimestamps = true;
    protected $createdField = 'registro_fecha';

    // protected $validationRules = [
    //     'nombre' => 'required|alpha_space',
    // ];


    protected $validationRules = [
        'nombre' => 'required',
        'apaterno' => 'required',
        'amaterno' => 'required',
        'fechanac' => 'required|',
        'direccion' => 'required|alpha_numeric_punct',
        'colonia' => 'required|alpha_numeric_punct',
        'municipio' => 'required',
        'cp' => 'required',
        'telefono' => 'required',
        'celular' => 'required',
        'email' => 'required|valid_email',
        'idescuela' => 'required',
        'carrera' => 'required',
        'grado' => 'required',
        'turno' => 'required',
        'tipo' => 'required',
        'fechainicio' => 'required',
        'horas_servicio' => 'required|integer',
    ];

    protected $validationMessages = [
        'nombre' => [
            'alpha_space' => 'Nombre contiene caracteres no permitidos.',
        ]
    ];



    function getPrestadorSolicitud($id = null)
    {
        if (!$id) {
            return $this
                ->where('status', 0)
                ->orWhere('status', 2)
                ->orderBy('status ASC, id ASC')
                ->findAll();
        }
        return $this->where('id', $id)->first();
    }

    function countSolicitudes()
    {
        return $this
            ->where('status', 0)
            ->countAllResults();
    }
}
