Your IP : 216.73.217.77


Current Path : /home/users/unlimited/www/admin.priyotama.com/app/Http/Controllers/Vendor/
Upload File :
Current File : /home/users/unlimited/www/admin.priyotama.com/app/Http/Controllers/Vendor/ReviewController.php

<?php

namespace App\Http\Controllers\Vendor;

use App\Models\Review;
use Illuminate\Http\Request;
use App\CentralLogics\Helpers;
use App\Exports\ReviewsExport;
use App\Http\Controllers\Controller;
use Brian2694\Toastr\Facades\Toastr;
use Maatwebsite\Excel\Facades\Excel;

class ReviewController extends Controller
{
    public function index(Request $request)
    {
        $key = explode(' ', $request['search']);
        $reviews = Review::whereHas('item', function($query) use($key){
            return $query->where('store_id', Helpers::get_store_id())->when(isset($key) , function($query) use($key){
                foreach ($key as $value) {
                    $query->Where('name', 'like', "%{$value}%");
                }
            });
        })

        ->latest()->paginate(config('default_pagination'));
        return view('vendor-views.review.index', compact('reviews'));
    }
    public function reviewsExport(Request $request)
    {
        $key = explode(' ', $request['search']);
        $reviews = Review::whereHas('item', function($query) use($key){
            return $query->where('store_id', Helpers::get_store_id())->when(isset($key) , function($query) use($key){
                foreach ($key as $value) {
                    $query->Where('name', 'like', "%{$value}%");
                }
            });
        })

        ->latest()->get();

        $data = [
            'data'=>$reviews,
            'search'=>$request->search??null,
        ];

        if ($request->export_type == 'excel') {
            return Excel::download(new ReviewsExport($data), 'ReviewsExport.xlsx');
        } else if ($request->export_type == 'csv') {
            return Excel::download(new ReviewsExport($data), 'ReviewsExport.csv');
        }
    }

    public function update_reply(Request $request, $id)
    {
        $request->validate([
            'reply' => 'required|max:65000',
        ]);

        $review = Review::findOrFail($id);
        $review->reply = $request->reply;
        $review->replied_at = now();
        $review->store_id = Helpers::get_store_id();
        $review->save();

        Toastr::success(translate('messages.review_reply_updated'));
        return to_route('vendor.reviews');
    }
}