<?php

namespace App\Http\Livewire;

use App\Models\Commune;
use App\Models\Participation;
use App\Http\Livewire\Datatable;
use App\View\Datatable\Column;
use App\View\Datatable\NumberColumn;
use Illuminate\Support\Facades\DB;

class CommuneTable extends DataTable
{
    public $model = Commune::class;


    public function builder()
    {
        // return (auth()->user()->commune) ? Commune::where('id', auth()->user()->commune['id']) : Commune::query() ;
        return Commune::query()
            ->join('participations', 'communes.id', 'participations.commune_id')
        ;
    }

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

            Column::name('department_id')
                ->label('Département')
                ->view('components.datatable.includes.department'),

            Column::name('pf_name')
                ->label('Point Focal')
                ->searchable(),

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