<?php

namespace App\DataTables;

use App\advert;
use App\User;
use Illuminate\Support\Facades\Auth;
use Yajra\DataTables\Services\DataTable;

class MyDataTable extends DataTable
{
    /**
     * Build DataTable class.
     *
     * @param mixed $query Results from query() method.
     * @return \Yajra\DataTables\DataTableAbstract
     */
    public function dataTable($query)
    {
        return datatables($query)
            ->addColumn('action', function($query){
                if($query->status == 'pending'){
                    return
                        '  
                        <a id="app"  class="btn-floating btn-sm btn-amber" data-toggle="1" title="Edit Your Ad" data-dismiss="text-success" href="/myservice/'.$query->id.'/edit">
                         <i class="fa fa-pencil"></i>
                        </a>
                        ';
                }
                else if($query->status == 0){
                    return
                        '<a id="app" class="btn-xs danger-color-dark  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-xs  view btn-rounded" data-toggle="1" title="Edit Your Ad" data-dismiss="text-success" href="/myservice/'.$query->id.'/edit">
                         <i class="fa fa-pencil"></i>
                        </a>';
                }
                else if($query->status == 1 && $query->clear == 1){
                    return
                        '<a id="app" class="btn-floating btn-sm btn-success" data-toggle="1" title="This advert has been published" data-dismiss="text-success" href="#/myservice/'.$query->id.'/edit">
                         <i class="fa fa-check"></i> <i class="fa fa-check"></i> published
                     </a>
                      &nbsp;
                        <a id="app" class="btn-xs  btn-rounded view" title="Edit Your Ad" data-toggle="1" data-dismiss="text-success" href="/myservice/'.$query->id.'/edit">
                         <i class="fa fa-pending"></i>
                    </a>';
                }
                else if($query->status == 1 && $query->clear == 0)
                {
                    return
                        '<div class="btn-group">
                        <a id="app" class="btn-floating btn-sm btn-amber" title="Edit Your Ad" data-toggle="1" data-dismiss="text-success" href="/myservice/'.$query->id.'/edit">
                         <i class="fa fa-pencil"></i>
                        </a>
                            </div>';

                }
            })->editColumn('status',function ($query){
                if($query->status == 'pending'){
                $action = '<div class="btn-group">'.
                    '<a href="#" class="badge badge-warning"> <i class="fa fa-spinner fa-pulse fa-fw"></i> Pending</a>'
                    .'</div>';
                }
                elseif ($query->status == 0)
                {
                    $action = '<div class="btn-group">'.
                        '<a href="#" class="badge badge-warning">Pending</a>'
                        .'</div>';
                }elseif ($query->status == 1 && $query->clear == 1){
                    $action = '<div class="btn-group">'.
                        '<a href="#" class="badge badge-info">Published</a>'
                        .'</div>';
                }
                elseif ($query->status == 1 && $query->clear == 0){
                    $action = '<div class="btn-group">'.
                        '<a href="#" class="badge badge-dark">   <i class="fa fa-spinner fa-pulse fa-fw"></i>Waiting</a>'
                        .'</div>';
                }
                else{
                    $action = '<div class="btn-group">'.
                        '<a href="#" class="badge badge-warning">Pending</a>'
                        .'</div>';
                }
                return $action;

            })->rawColumns(['action','status']);
    }

    /**
     * Get query source of dataTable.
     *
     * @param \App\User $model
     * @return \Illuminate\Database\Eloquent\Builder
     */
    public function query(advert $model)
    {
//        $model = advert::query()->select('*');
//        return $model;
        return $model->newQuery()->where('belong',Auth::user()->id)->select('*');
    }

    /**
     * Optional method if you want to use html builder.
     *
     * @return \Yajra\DataTables\Html\Builder
     */
    public function html()
    {
        return $this->builder()
                    ->columns($this->getColumns())
                    ->minifiedAjax()
                    ->addAction(['width' => '80px'])
                    ->parameters([
                            'dom' => 'Bfrtip',
                            'buttons' => ['csv', 'excel', 'reload'],
                            'order' => [[4, 'asc']],
                         ]);
    }

    /**
     * Get columns.
     *
     * @return array
     */
    protected function getColumns()
    {
        return [
            'cat_id'=>['title'=>'Category','width'=>'100'],
            'size'=>['title'=>'Size','width'=>'100'],
            'amt_tbp'=>['title'=>'Cost','width'=>'70'],
            'pay_code'=>['title'=>'Code'],
            'date1'=>['title'=>'Date','width'=>'100'],
            'status',
        ];
    }

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