# depicter/trunk/app/src/Database/Repository/QueueJobRepository.php

Depicter — Popup &amp; Slider Builder, version trunk. 71 lines.

- Page: https://pluginprobe.com/plugins/depicter/trunk/code/app/src/Database/Repository/QueueJobRepository.php
- Raw: https://pluginprobe.com/plugins/depicter/trunk/raw/app/src/Database/Repository/QueueJobRepository.php
- Modified: 2025-12-27T08:49:18+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/depicter/trunk/code/app/src/Database/Repository/QueueJobRepository.php#L10-L20`.

```php
<?php

namespace Depicter\Database\Repository;

use Depicter\Database\Entity\QueueJob;
use Depicter\Utility\Sanitize;

class QueueJobRepository
{

    private QueueJob $job;

    public function __construct(){
        $this->job = QueueJob::new();
    }

    /**
     * Access to an instance of Lead entity
     *
     * @return QueueJob
     */
    public function job(): QueueJob{
        return QueueJob::new();
    }

    public function create( $queue, $payload ) {
        return $this->job()->create([
            'queue' => $queue,
            'payload' => $payload,
            'attempts' => 0,
        ]);
    }

    public function update( $id, array $fields = [] ) {
        if ( empty( $fields ) ) {
            return false;
        }

        $job =  $this->job()->findById( $id );

        if ( $job && $job->count() ){
            return $job->first()->update($fields);
        }

        return false;
    }

    public function delete( $id ): bool
    {
        $succeed = false;

        if( is_array( $id ) ){
            $ids = $id;
        } elseif( false !== strpos( $id, ',' ) ){
            $ids = explode(',', $id );
        } else {
            $ids = [$id];
        }

        foreach( $ids as $id ){
            $id = Sanitize::int( $id );
            if( $job = $this->job()->findById( $id ) ){
                $job->delete();
                $succeed = true;
            }
        }
        return $succeed;
    }

}

```
