Sindbad~EG File Manager

Current Path : /var/www/html/xfacil.desafio.com.py/app/Http/Livewire/
Upload File :
Current File : /var/www/html/xfacil.desafio.com.py/app/Http/Livewire/Sugerencias.php

<?php

namespace App\Http\Livewire;

use Livewire\Component;
use Livewire\WithPagination;
use App\Models\Sugerencia;
use App\Models\User;
use App\Notifications\NuevaNotificacion;
use Auth;

class Sugerencias extends Component{

    use WithPagination;

    protected $paginationTheme = 'bootstrap';

    protected $queryString = ['search' => ['except' => '']];

    public $search='';

    public $sugerencia_id,$titulo,$sugerencia;

    public $updateMode = 0;

    public function render(){

        $sugerencias = Sugerencia::where('titulo','LIKE','%'.$this->search.'%')->paginate(20);

        return view('livewire.sugerencias.index',["sugerencias"=>$sugerencias]);
    }

    private function resetInputFields(){
        $this->sugerencia_id = '';
        $this->titulo = '';
        $this->emit('sugerencia', '');
    }

    public function store(){

        $validatedDate = $this->validate([
            'titulo' => 'required',
            'sugerencia' => 'required'
        ],
        [
            'titulo.required' => 'El campo Titulo es requerido',
            'sugerencia.required' => 'El campo sugerencia es requerido',
        ]);

        $post = Sugerencia::create([
            'titulo' => $this->titulo,
            'sugerencia' => $this->sugerencia,
        ]);

        User::all()
            ->each(function(User $user) use ($post){
                $user->notify(new NuevaNotificacion([
                    'url' => '/e-learning/sugerencias?search='.$post->titulo,
                    'titulo' => $post->titulo,
                    'descripcion' => 'Nueva sugerencia agregada',
                ]));
            });

        $this->emit('alert', ['type' => 'success', 'message' => 'Sugerencia agregada correctamente!']);

        $this->resetInputFields();

    }

    public function edit($id){

        $this->updateMode = 2;
        $sugerencia= Sugerencia::find($id);
        $this->sugerencia_id = $id;
        $this->titulo = $sugerencia->titulo;     
        $this->emit('sugerencia', $sugerencia->sugerencia); 
    }

    public function crear(){

        $this->updateMode = 1;
        $this->resetInputFields();

    }

    public function cancel(){

        $this->updateMode = 0;
        $this->resetInputFields();

    }

    public function update(){

        $validatedDate = $this->validate([
            'titulo' => 'required',
            'sugerencia' => 'required'
        ],
        [
            'titulo.required' => 'El campo Titulo es requerido',
            'sugerencia.required' => 'El campo sugerencia es requerido',
        ]);

        if ($this->sugerencia_id) {
            $sugerencia= Sugerencia::find($this->sugerencia_id);
            $sugerencia->update([
                'titulo' => $this->titulo,
                'sugerencia' => $this->sugerencia,
            ]);
            $this->updateMode = 0;
            $this->emit('alert', ['type' => 'info', 'message' => 'Sugerencia actualizada correctamente!']);
            $this->resetInputFields();

        }
    }

    public function delete($id){
        if($id){

            $sugerencia= Sugerencia::find($id);

            $sugerencia->delete();

            $this->emit('alert', ['type' => 'error', 'message' => 'Sugerencia eliminada correctamente!']);
        }
    }
}

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists