<?php

namespace App\DataTables;

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

class ResellerContactdataTable extends DataTable
{

    public function dataTable($query)
    {
       return datatables()
            ->query($query)
            ->addColumn('checkbox', function ($row) {
                return '<input class="check_one" type="checkbox" name="selection[]" value="'.$row->id.'"/>';
            })
            ->addColumn('action', function ($row) {
                return '<div class="btn-group">' .
                    '<a style="text-decoration:none" class="btn btn-primary actionBtn" href="' . route('esme.addressbook.contacts.edit_contact', ['group_id'=>$row->contact_group_id,'id'=>$row->id]).'">Edit</a>' .
                    '<a style="text-decoration:none" class="btn btn-warning actionBtn" href="' . route('esme.addressbook.contacts.delete_contact', ['group_id'=>$row->contact_group_id,'id'=>$row->id]) . '"' .
                        'onclick="return confirm(\'Do you want to delete this contact?\')">Delete</a>' .
                '</div>';
            });

    }

    /**
     * Get the query object to be processed by dataTables.
     *
     * @return \Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Query\Builder|\Illuminate\Support\Collection
     */
    public function query()
    {
        $group_id = $this->request()->get('group_id',0);
        if(!empty($group_id)) {
            $query = Auth::user()->groups()->findOrFail($group_id)->contacts();
        } else {
            $query = ContactGroup::where('id',0);
        }
        return $this->applyScopes($query);
    }

    /**
     * Optional method if you want to use html builder.
     *
     * @return \Yajra\Datatables\Html\Builder
     */
    public function html()
    {
        $params = $this->getBuilderParameters();
        $params['order'] = [[1, 'desc']];
        $params['lengthMenu'] =  [[10, 30, 75, -1], [10, 30, 75, "All"]];
        return $this->builder()
                    ->addCheckbox(['title'=>'<input type="checkbox" name="select_all" id="check_all" value="1"/>'])
                    ->columns($this->getColumns())
                    ->ajax('')
                    ->addAction(['width' => '150px'])
                    ->parameters($params);
    }

    /**
     * Get columns.
     *
     * @return array
     */
    protected function getColumns()
    {
        return [
            'phone_number',
            'name'
        ];
    }

    /**
     * Get filename for export.
     *
     * @return string
     */
    protected function filename()
    {
        return 'contactdatatables_' . time();
    }
}
