<?php
namespace App\Model;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\DB;

class RolesUsuario extends Model
{
    protected $table = "role_user";
    protected $guarded = ['updated_at', 'created_at'];

    public function roles_usuario()
    {
        return RolesUsuario::join('roles', 'roles.id', '=', 'role_user.role_id')
            ->join('usuario', 'usuario.id', '=', 'role_user.user_id')
            ->select(
                'role_user.id as id',
                'role_user.role_id as role_id',
                'role_user.user_id as user_id',
                'roles.name as roles_name',
                'roles.display_name as roles_display_name',
                'roles.description as roles_description',
                DB::raw('CONCAT(usuario.apellido_paterno, " ", usuario.apellido_materno, ", ", usuario.nombres) as usuario_nombres'),
                'usuario.fecha_nacimiento as usuario_fecha_nacimiento',
                'usuario.telefono as usuario_telefono',
                'usuario.fecha_registro as usuario_fecha_registro',
                'usuario.fecha_salida as usuario_fecha_salida',
                'usuario.dni as usuario_dni',
                'usuario.username as usuario_username',
                'usuario.direccion as usuario_direccion',
                'usuario.genero as usuario_genero',
                'usuario.estado_civil as usuario_estado_civil',
                'usuario.email as usuario_email')
            ->groupBy(
                'id',
                'role_id',
                'user_id',
                'roles_name',
                'roles_display_name',
                'roles_description',
                'usuario_nombres',
                'usuario_fecha_nacimiento',
                'usuario_telefono',
                'usuario_fecha_registro',
                'usuario_fecha_salida',
                'usuario_dni',
                'usuario_username',
                'usuario_direccion',
                'usuario_genero',
                'usuario_estado_civil',
                'usuario_email');
    }
}