🌹🏠🌹？》《》？《》？<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\DB;
use Laravel\Sanctum\HasApiTokens;

class User extends Model{
    use HasApiTokens;
    protected $connection = 'sqlsrv_web_productivo';
    protected $table = 'usuarios_web';

    protected $primaryKey = 'login';
    public $incrementing = false;
    protected $keyType = 'string';
    public $timestamps = false;

    protected $fillable = [
        'login',
        'nombre',
        'clave',
        'empresa',
        'tipo',
        'sector',
        'estado',
        'mail',
        'codigo_vendedor',
        'nombre_usuario',
        'id_perfil',
        'expo_push_token',
    ];

    protected function existeUsuario($login, $clave) {
        $usuario = DB::connection($this->getConnectionName())
            ->table('usuarios_web')
            ->where('login', $login)
            ->where('clave', $clave)
            ->first();
        return $usuario;
    }
    protected function login($login, $clave) {
        $usuario = DB::connection($this->getConnectionName())
            ->table('usuarios_web')
            ->join('perfiles', 'usuarios_web.id_perfil', '=', 'perfiles.id')
            ->where('usuarios_web.login', $login)
            ->where('usuarios_web.clave', $clave)
            ->select('usuarios_web.*', 'perfiles.nombre as perfil_nombre', 'perfiles.id as perfil_id')
            ->first();
        return $usuario;
    }
    protected function actualizarExpoPushToken($login, $expo_push_token) {
        $actualizado = DB::connection($this->getConnectionName())
            ->table('usuarios_web')
            ->where('nombre', $login)
            ->update(['expo_push_token' => $expo_push_token]);
        return $actualizado;
    }
    protected function obtenerExpoPushToken($login) {
        $usuario = DB::connection($this->getConnectionName())
            ->table('usuarios_web')
            ->where('nombre', $login)
            ->first();
        if ($usuario) {
            return $usuario->expo_push_token;
        } else {
            return null;
        }
    }
    protected function obtenerTodosChoferes() {
        $choferes = DB::connection($this->getConnectionName())
            ->table('usuarios_web')
            ->where('id_perfil', 5)
            ->select('login', 'nombre')
            ->get();
        return $choferes;
    }
}