<?php

namespace App\DataTables;
use App\advert;
use Illuminate\Support\Facades\Auth;
use Yajra\DataTables\Services\DataTable;
use Yajra\DataTables\QueryDataTable;
class MyDataTablse extends DataTable
{
    /**user_data
     * Build DataTable class.
     *
     * @param mixed $query Results from query() method.
     * @return \Yajra\DataTables\DataTableAbstract
     */
    public function dataTable($query)
    {
        $dataTable = new QueryDataTable($query);

        return $dataTable->addColumn('action', function($query){
            if($query->status == 'pending'){
                return
                    ' <a id="app" class="btn-sm btn-amber btn-rounded view" data-toggle="1" title="Your advert is pending approval" data-dismiss="text-success" href="/myservice/'.$query->id.'/edit">
                         <i class="fa fa-spinner fa-pulse fa-fw"></i> Pending
                        </a>
                        &nbsp;
                        <a id="app" style="z-index: 10;" class="btn-sm btn-rounded btn-dark view" data-toggle="1" title="Edit Your Ad" data-dismiss="text-success" href="/myservice/'.$query->id.'/edit">
                         <i class="fa fa-edit"></i>
                        </a>
                        ';
            }
            else if($query->status == '0'){
                return
                    '<a id="app" class="btn-sm danger-color-dark btn-rounded view" style="color:white" title="Your advert is rejected, review and try again" data-toggle="1" data-dismiss="text-success" href="/myservice/'.$query->id.'/edit">
                 <i class="fa fa-times"></i> <b>Rejected</b>
                        </a>
                        &nbsp;
                        <a id="app" class="btn-sm btn-dark view btn-rounded" data-toggle="1" title="Edit Your Ad" data-dismiss="text-success" href="/myservice/'.$query->id.'/edit">
                         <i class="fa fa-edit"></i>
                        </a>';
            }
            else if($query->status == '1' && $query->clear == '1'){
                return
                    '<a id="app" class="btn-sm btn-dark-green btn-rounded view" data-toggle="1" title="This advert has been published" data-dismiss="text-success" href="/myservice/'.$query->id.'/edit">
                         <i class="fa fa-check"></i> published
                     </a>
                      &nbsp;
                        <a id="app" class="btn-sm btn-dark btn-rounded view" title="Edit Your Ad" data-toggle="1" data-dismiss="text-success" href="/myservice/'.$query->id.'/edit">
                         <i class="fa fa-edit"></i>
                    </a>';
            }
            else if($query->status == '1' && $query->clear == '0')
            {
                return
                    '<a id="app" class="btn-sm btn-elegant btn-rounded view" title="We are waiting for your payment" data-toggle="1" data-dismiss="text-success" href="/myservice/'.$query->id.'/edit">
                         <i class="fa fa-money"></i> Waiting 
                     </a>
                      &nbsp;
                        <a id="app" class="btn-sm btn-dark btn-rounded view" title="Edit Your Ad" data-toggle="1" data-dismiss="text-success" href="/myservice/'.$query->id.'/edit">
                         <i class="fa fa-edit"></i>
                        </a>';
            }
        });
    }

    /**
     * Get query source of dataTable.
     *

     * @return \Illuminate\Database\Eloquent\Builder
     */
    public function query()
    {
        $model = advert::query()->select('*');
//            ->join('pub_sizes','adverts.size','pub_sizes.id')
//            ->join('categories','adverts.cat_id','categories.cat_id')
//            ->where('adverts.belong',auth::user()->id)
//            ->select('adverts.*','pub_sizes.p_size','pub_sizes.location','pub_sizes.cost','categories.cat_name');
        return $model;
    }

    /**
     * Optional method if you want to use html builder.
     *
//     * @return \DataTables\Html\Builder
     */
    public function html()
    {
        return $this->builder()
            ->columns($this->getColumns())
            ->minifiedAjax()
            ->addAction(['width' => '80px'])
            ->parameters($this->getBuilderParameters());
    }

    /**
     * Get columns.
     *
     * @return array
     */
    protected function getColumns()
    {
        return [
            'id',
            'cat_name',
            'p_size',
            'location',
            'cost',
            'pay_code',
            'date1',
            'status',
            'created_at',
            'updated_at'
        ];
    }

    /**
     * Get filename for export.
     *
     * @return string
     */
    protected function filename()
    {
        return 'My_data' . date('YmdHis');
    }
}
