<?php /** @noinspection PhpUndefinedClassInspection */

namespace App\Http\Controllers\Admin;

use App\DataTables\Reseller\FilterDataTable;
use App\DataTables\SmsPricePerBalanceDataTable;
use App\DataTables\SocialPricingDataTable;
use App\Filters;
use App\MediaPrice;
use App\SmsPriceRange;
use Exception;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;

class SpricingController extends Controller
{

    public function index(Request $request,SocialPricingDataTable $pricing)
    {

        if($request->isMethod('post'))
        {

            $this->validate($request,[
                'business_type'=>'required',
                'cost'=>'required',
            ]);

            $exist= MediaPrice::query()->where('business_type',$request->input('business_type'))->first();
            if(!empty($exist))
                $exist->update($request->all());
            else
                MediaPrice::query()->create($request->all());


             return redirect()->back()->with('success','Pricing successfully set for '.strtoupper($request->input('business_type')));

        }

        return $pricing->render('admin.pricing.index');
    }

    /**
     * Show the form for creating a new resource.
     *
     * @param Request $request
     * @return Response
     */
    public function create(Request $request)
    {
        if($request->isMethod('POST'))
        {
            $this->validate($request,[
                'keyword' => 'required|unique:filters',
            ]);
            $data = $request->all();
            $data['owner'] = Auth::user()->username;

            try {
                DB::beginTransaction();
                    $filter = Filters::query()->create($data);
                DB::commit();
                return redirect()->route('admin.filtering.index')->with('success',"{$data['keyword']} successfully added");
            } catch (Exception $e) {
                return redirect()->back()->withErrors($e->getMessage());
            }
        }

        return view('admin.filtering.create');
    }


    public function sms_price_index(Request $request,SmsPricePerBalanceDataTable $price)
    {

        if($request->isMethod('POST')):

           $this->validate($request,[
                'min'=>'required',
                'max'=>'required',
                'unit_price'=>'required',
            ]);

            SmsPriceRange::query()->create($request->all());
            return redirect()->back()->with('success','Price Range Successfully Set');

            endif;


        return $price->render('admin.pricing.sms_index');
    }

    public function sms_price_edit(Request $request,$id)
    {
        $var = SmsPriceRange::query()->find($id);

        if($request->isMethod('post')):

            $this->validate($request,[
                'min'=>'required',
                'max'=>'required',
                'unit_price'=>'required',
            ]);

            $var->update($request->all());

            return redirect()->route('admin.sms.price.setup.index')->with('success','Price range successfully updated');


        endif;


        return view('admin.pricing.sms_edit',compact('var'));
    }


    public function edit($id)
    {
        //
    }

    public function update(Request $request, $id)
    {
        //
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return Response
     */
    public function destroy($id)
    {
        //
    }
}
