<?php

namespace App\Http\Controllers;

use Illuminate\Support\Str;
use App\Models\BolsaTrabajo;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Storage;
use App\Http\Requests\BolsaTrabajoRequest;
use App\Lib\RequestQueryBuilder\AllowedFilter as F;
use App\Lib\RequestQueryBuilder\RequestQueryBuilder as QB;

class BolsaTrabajoController extends Controller
{

    public function index(Request $request)
    {
        $encuestas = QB::make($request, BolsaTrabajo::query())
            ->allowedFilters(
                F::equals('id'),
                F::contains('nombre_completo'),
                F::contains('email'),
                F::contains('telefono'),
            )
            ->allowedSorts(['id', 'nombre_completo', 'email', 'telefono', 'archivo'])
            ->query()
            ->paginate();


        return $encuestas;
    }

    public function downloadPDF($id)
    {

        $bolsaTrabajo = BolsaTrabajo::where('id', $id)->first();

        //PDF file is stored under project/public/download/info.pdf

        /*Storage::download("public/uploads/bolsa_trabajo/pdf/" . $bolsaTrabajo->archivo);*/

        $headers = [
            'Content-Description' => 'File Transfer',
            'Content-Type' => 'application/pdf',
        ];


        return response()->download(storage_path() . "/app/public/uploads/bolsa_trabajo/pdf/" . $bolsaTrabajo->archivo, 'hola.pdf', $headers);
    }

    public function store(BolsaTrabajoRequest $request)
    {
        //AGREGAMOS NUEVO PDF A LA PROMOCION
        $fileName = Str::random(9) . '.pdf';
        $directory = 'public/uploads/bolsa_trabajo/pdf/';



        if (!Storage::exists($directory)) {
            Storage::makeDirectory($directory);
        }

        Storage::putFileAs($directory, $request->archivo, $fileName);

        /*$request->archivo->move(public_path('storage/uploads/bolsa_trabajo/pdf/'), $fileName);
        $request->archivo = $fileName;*/
        BolsaTrabajo::create(
            [
                'nombre_completo' => $request->nombre_completo,
                'telefono' => $request->telefono,
                'email' => $request->email,
                'archivo' => $fileName,
            ]
        );
    }


    public function destroy(BolsaTrabajo $bolsaTrabajo)
    {

        try {
            unlink(storage_path('app/public/uploads/bolsa_trabajo/pdf/' . $bolsaTrabajo->archivo));
        } catch (\Throwable $th) {
            //throw $th;
        }


        $bolsaTrabajo->delete();

        return $bolsaTrabajo;
    }
}
