<?php

namespace App;

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

class modulos extends Model
{
    protected $fillable = [
        'nombre','aplicacion_id','Descripcion'
    ];

    static function ModulosLista() {
        return DB::table('modulos')
        ->join('aplicacion', 'aplicacion.id',  'modulos.aplicacion_id')
        ->leftJoin('formularios', 'formularios.modulo_id',  'modulos.id')
        ->select('modulos.*', 'aplicacion.nombre as app_name', DB::raw("count(formularios.modulo_id) as formC"))
        ->groupBy('modulos.id','modulos.nombre','modulos.aplicacion_id','modulos.Descripcion','modulos.created_at','modulos.updated_at','aplicacion.nombre','modulos.aplicacion_id')
        ->orderByRaw('id DESC')->orderBy('id', 'desc')
        ->paginate(10);
    }
    static function ModulosPorApp($app) {
        return DB::table('modulos')
        ->join('aplicacion', 'aplicacion.id',  'modulos.aplicacion_id')
        ->leftJoin('formularios', 'formularios.modulo_id',  'modulos.id')
        ->where("modulos.aplicacion_id",$app)
        ->select('modulos.*', 'aplicacion.nombre as app_name', DB::raw("count(formularios.modulo_id) as formC"))
        ->groupBy('modulos.id','modulos.nombre','modulos.aplicacion_id','modulos.Descripcion','modulos.created_at','modulos.updated_at','aplicacion.nombre','modulos.aplicacion_id')
        ->paginate(10);
    }

    public static function countForm($idModule) {
        $Allmodulos = modulos::all();
        $AllModulosDecode = json_decode($Allmodulos);
        return DB::table('formularios')->where('modulo_id', '=', $idModule)->count();
    }
}
