HEX
Server: LiteSpeed
System: Linux s1049.use1.mysecurecloudhost.com 4.18.0-477.27.2.lve.el8.x86_64 #1 SMP Wed Oct 11 12:32:56 UTC 2023 x86_64
User: xedaptot (3356)
PHP: 8.3.31
Disabled: NONE
Upload Files
File: /home/xedaptot/iphim.naniguide.com/common/Auth/Jobs/ExportRolesCsv.php
<?php

namespace Common\Auth\Jobs;

use Common\Auth\Roles\Role;
use Common\Csv\BaseCsvExportJob;
use Illuminate\Bus\Queueable;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Collection;

class ExportRolesCsv extends BaseCsvExportJob
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

    /**
     * @var int
     */
    protected $requesterId;

    public function __construct(int $requesterId)
    {
        $this->requesterId = $requesterId;
    }

    public function cacheName(): string
    {
        return 'roles';
    }

    protected function generateLines()
    {
        $selectCols = [
            'id',
            'name',
            'description',
            'type',
            'internal',
            'created_at',
            'updated_at',
        ];

        Role::select($selectCols)->chunkById(100, function (Collection $chunk) {
            $chunk->each(function (Role $role) {
                $data = $role->toArray();
                $this->writeLineToCsv($data);
            });
        });
    }
}