<?php

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use App\Tipo_Tramite;
use Illuminate\Http\Request;
use Illuminate\Http\Response;

class TTramiteController extends Controller
{
    public function __construct()
    {
        $this->middleware('auth');
    }

    public function ReadTipoTramite()
    {

        $TipoTramite = Tipo_Tramite::orderBy('nombre', 'asc')->get();
        return (new Response($TipoTramite, 200));

    }

    public function ReadTipoTramiteActivo()
    {

        $TipoTramite = Tipo_Tramite::where('estado', '1')
            ->with('Estado')
            ->orderBy('nombre', 'asc')
            ->get();
        return (new Response($TipoTramite, 200));

    }

    public function CreateTipoTramite(Request $request)
    {
        try {

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

            $Tipo_Tramite = new Tipo_Tramite();
            $Tipo_Tramite->nombre = $datos[0]->nombre;
            $Tipo_Tramite->id_estado_cambia = $datos[0]->id_estado_cambia;
            $Tipo_Tramite->cambia_area = $datos[0]->cambia_area;
            $Tipo_Tramite->genera_respuesta = $datos[0]->genera_respuesta;
            $Tipo_Tramite->estado = $datos[0]->estado;
            $Tipo_Tramite->Notificable = $datos[0]->Notificable;

            $Tipo_Tramite->pausaTLImite = $datos[0]->pausaTLImite;
            $Tipo_Tramite->reactivaTLimite = $datos[0]->reactivaTLimite;

            if ($Tipo_Tramite->pausaTLImite || $Tipo_Tramite->reactivaTLimite) {
                $Tipo_Tramite->cambia_area = false;
                $Tipo_Tramite->genera_respuesta = false;
            }

            $Tipo_Tramite->save();

            return (new Response($Tipo_Tramite, 200));
        } catch (\Exception $e) {
            return $e->getMessage();
        }

    }

    public function UpdateTipoTramite(Request $request)
    {
        $datos = json_decode($request->datos);

        $Tipo_Tramite = Tipo_Tramite::find($datos[0]->id);
        $Tipo_Tramite->nombre = $datos[0]->nombre;
        $Tipo_Tramite->id_estado_cambia = $datos[0]->id_estado_cambia;
        $Tipo_Tramite->cambia_area = $datos[0]->cambia_area;
        $Tipo_Tramite->genera_respuesta = $datos[0]->genera_respuesta;
        $Tipo_Tramite->estado = $datos[0]->estado;
        $Tipo_Tramite->Notificable = $datos[0]->Notificable;

        $Tipo_Tramite->pausaTLImite = $datos[0]->pausaTLImite;
        $Tipo_Tramite->reactivaTLimite = $datos[0]->reactivaTLimite;

        if ($Tipo_Tramite->pausaTLImite || $Tipo_Tramite->reactivaTLimite) {
            $Tipo_Tramite->cambia_area = false;
            $Tipo_Tramite->genera_respuesta = false;
        }

        $Tipo_Tramite->save();

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

    }
}
