Your IP : 216.73.217.77


Current Path : /home/users/unlimited/www/ultimate-ai.codeskitter.site/app/Domains/Entity/Concerns/
Upload File :
Current File : /home/users/unlimited/www/ultimate-ai.codeskitter.site/app/Domains/Entity/Concerns/HasStatus.php

<?php

declare(strict_types=1);

namespace App\Domains\Entity\Concerns;

use App\Domains\Entity\Contracts\EntityDriverInterface;
use App\Enums\StatusEnum;

trait HasStatus
{
    public function status(): ?StatusEnum
    {
        return $this->model()?->status;
    }

    public function isEnabled(): bool
    {
        if ($this instanceof EntityDriverInterface && ! $this->engineDriver()->isEnabled()) {
            return false;
        }

        return $this->status() === StatusEnum::ENABLED;
    }

    public function updateStatus(bool $status): bool
    {
        return $this->model()->update([
            'status' => $status ? StatusEnum::ENABLED : StatusEnum::DISABLED,
        ]);
    }
}