<?php

namespace App\Http\Controllers;

use App\Area;
use App\Http\Controllers\Controller;
use App\Tipo_Radicado;
use App\TipoRadicadoArea;
use App\AreaTipoRadicadoPortal;
use Illuminate\Http\Request;
use Illuminate\Http\Response;

class TRadicadoController extends Controller
{

    public function __construct()
    {
        $this->middleware('auth');
    }

    public function ReadTipoRadicado()
    {

        $TipoRadicado = Tipo_Radicado::orderBy('nombre', 'asc')->get();

        foreach ($TipoRadicado as $t) {
            $t->areas = $t->Areas;
        }
        return (new Response($TipoRadicado, 200));

    }

    public function ReadTipoRadicadoArea(Request $request)
    {

        $datos = $request->filter;
        $area = Area::find($datos['filters'][0]['value']);
        $TipoRadicado = $area->TiposRadicado;
        $TipoRadicado = $TipoRadicado->filter(function ($value, $key) {
            return $value['estado'];
        });

        return (new Response($TipoRadicado, 200));

    }

    public function ReadTipoRadicadoActivo()
    {

        $TipoRadicado = Tipo_Radicado::where('estado', 1)
            ->orderBy('nombre', 'asc')->get();

        foreach ($TipoRadicado as $t) {
            $t->areas = $t->Areas;
        }

        return (new Response($TipoRadicado, 200));

    }

    public function CreateTipoRadicado(Request $request)
    {

        $datos = json_decode($request->datos);

        $Tipo_Radicado = new Tipo_Radicado();
        $Tipo_Radicado->nombre = $datos[0]->nombre;
        $Tipo_Radicado->dias_respuesta = $datos[0]->dias_respuesta;
        $Tipo_Radicado->estado = $datos[0]->estado;
        $Tipo_Radicado->esPausable = $datos[0]->esPausable;

        $Tipo_Radicado->save();

        foreach ($datos[0]->areas as $a) {
            $Tipo_Radicado->Areas()->attach($a->id);
        }

        $Tipo_Radicado->areas = $Tipo_Radicado->Areas;

        return (new Response($Tipo_Radicado, 200));

    }

    public function UpdateTipoRadicado(Request $request)
    {

        $datos = json_decode($request->datos);

        $Tipo_Radicado = Tipo_Radicado::find($datos[0]->id);
        $Tipo_Radicado->nombre = $datos[0]->nombre;
        $Tipo_Radicado->dias_respuesta = $datos[0]->dias_respuesta;
        $Tipo_Radicado->estado = $datos[0]->estado;
        $Tipo_Radicado->esPausable = $datos[0]->esPausable;

        $Tipo_Radicado->save();

        $acs = $Tipo_Radicado->areas;

        foreach ($acs as $a) {
            $Tipo_Radicado->Areas()->detach($a->id);
        }

        foreach ($datos[0]->areas as $a) {
            $Tipo_Radicado->Areas()->attach($a->id);
        }

        $Tipo_Radicado->areas = $Tipo_Radicado->Areas;

        return (new Response($Tipo_Radicado, 200));

    }

    public function ReadTipoRadicadoAreaPortal($id_tipo_radicado)
    {
        $TipoRadicado = AreaTipoRadicadoPortal::where('TipoRadicado', $id_tipo_radicado)->get();

        return (new Response($TipoRadicado, 200));
    }

    public function UpdateTipoRadicadoAreaPortal(Request $request)
    {
        $id = $request->id;
        $disponible = $request->Disponibilidad;
        //die($disponible);

        $tipo = TipoRadicadoArea::find($id);

        $tipo->disponible_portal = $disponible;


        $tipo->save();

        return(new Response($tipo, 200));
    }

}
