<?php
namespace App\Exports;

use App\Models\BackendUser;
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\WithHeadings;
use Maatwebsite\Excel\Concerns\WithMapping;

class UsersExport implements FromCollection, WithHeadings, WithMapping
{
    public function collection()
    {
        $query = BackendUser::with('backendRole')
            ->orderBy('name', 'asc');
        return $query->get();
    }

    public function headings(): array
    {
        return [
            'ID',
            'Name',
            'Username',
            'Role',
            'E-mail',
            'Create Date'
        ];
    }

    public function map($user): array
    {
        return [
            $user->id,
            $user->name,
            $user->username,
            $user->backendRole->name,
            $user->email,
            $user->created_at->toDateTimeString(),
        ];
    }
}
