<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Laravel\Sanctum\HasApiTokens;

// {} Clase del modelo
class Usuario extends Authenticatable {

    use HasApiTokens, HasFactory, Notifiable;

    // ! Asignando el nombre de la conexión
    // protected $connection = 'daiteconexiones';

    // ! Asignando el nombre de la tabla
    protected $table = 'usuarios';

    // ! Asignando el nombre del campo de la clave primaria
    protected $primaryKey = 'id_usuario';

    // ! Deshabilitando el mantener inicio de sesión
    public $rememberTokenName = 'serial_autenticacion';

    // ! Deshabilitando los campos de creación y modificación (created_at, updated_at)
    public $timestamps = false;

    // ! Asignando todos los atributos que contiene la tabla en la base de datos
    protected $fillable = [
        'id_usuario',
        'login_usuario',
        'clave',
        'usuario',
        'correo',
        'id_entidad',
        'id_estado',
        'serial_autenticacion'
    ];

    // ! Asignando los atributos que deben ser ocultos
    protected $hidden = ['clave'];

    // ! Función para obtener la contraseña de la base de datos para el controlador de autenticación
    public function getAuthPassword() { return $this->clave; }

}
