<?php

namespace App\Http\Livewire;

use App\Models\Target;
use App\Http\Livewire\Datatable;
use App\View\Datatable\Column;
use App\View\Datatable\NumberColumn;

class TargetTable extends DataTable
{
    public function builder()
    {
        return Target::query()
            ->leftJoin('goals', 'goals.id', 'targets.goal_id')
        ;
    }

    public function columns()
    {
        return [
            Column::name('code')
                ->label('Code')
                ->searchable(),

            Column::name('name')
                ->label('Nom')
                ->searchable(),

            NumberColumn::name('goals.code')
                ->label('Odd')
                ->searchable()
                //->sortBy('NUM(goals.code)')
                ,               

            Column::callback(['id'], function ($id) {
                return view('components.table-actions', ['id' => $id, 'permissions' => ['targets.edit']]);
            })->unsortable()
        ];
    }
}