<?php

namespace App\Http\Livewire;

use App\Models\User;
use App\Http\Livewire\Datatable;
use App\View\Datatable\Column;
use App\View\Datatable\BooleanColumn;
use App\View\Datatable\DateColumn;

class UserTable extends DataTable
{
    public function builder()
    {
        return User::query()
            ->leftJoin('communes', 'communes.id', 'users.commune_id')
            ->where('users.name', '<>', 'Super Administrateur')
            //->leftJoin('roles', 'roles.id', 'user_roles.user_id')
            //->where('user_roles.user_id', '=', 1)
        ;
    }

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

            Column::name('email')
                ->label('Email')
                ->unsortable()
                ->searchable(),

            /*Column::name('user_roles.name')
                ->label('Commune')
                ->searchable(),*/

            Column::name('communes.name')
                ->label('Commune')
                ->searchable(),

            DateColumn::name('created_at')
                ->label('Ajouté le')
                ->format('d/m/Y'),


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