<?php

namespace App;

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

class users extends Model
{
    protected $fillable = ['nombre', 'correo', 'clave', 'role', 'tel', 'surname', 'idCard', 'address', 'img'];

        //buscar desarrolladores que pertenecen a una aplicacion
    static function AppDev($AppID) {
        return DB::table('users')
            ->join('usuarios_app', 'usuarios_app.user_id', 'users.id')
            ->where('users.role', 'desarrollador')
            ->where('usuarios_app.app_id', $AppID)
            ->get();
    }
        //buscar desarrolladores que pertenecen a una aplicacion
    static function AppDevReque($AppID, $requerimiento) {
        return DB::select("SELECT * FROM `usuarios_app` app
            left join  requerimientos_desarrolladores rd on rd.desarrollador_id = app.user_id AND rd.requerimiento_id = $requerimiento
            join users u on  u.id = app.user_id 
            where app_id = $AppID  AND rd.desarrollador_id is null  AND u.role = 'desarrollador'");
    }
    static function AppCustomers($AppID) {
        return DB::table('users')
        ->join('usuarios_app', 'usuarios_app.user_id', 'users.id')
        ->where('users.role', 'cliente')
        ->where('usuarios_app.app_id', $AppID)
        ->get();
    }

    // Buscar dev que no pertenecen a la aplicacion
    static function NotAppUser($AppID, $role) {
        return DB::table('users')
            ->leftJoin('usuarios_app', 'usuarios_app.user_id',
            DB::raw('users.id AND usuarios_app.app_id = ' . $AppID))
            ->where('users.role', $role)
            ->where('usuarios_app.app_id',null)
            ->select('users.*')
            ->get();
    }
}
