Files
exchange-2.0/app/Classes/Modules/KeyValuePairs/Standards/Rules/CanCreateChatGPTPrompt.php
T
2025-12-27 14:44:01 +08:00

57 lines
1.4 KiB
PHP

<?php
namespace App\Classes\Modules\KeyValuePairs\Standards\Rules;
use App\Classes\General\Abstracts\AbstractRule;
use App\Classes\Modules\KeyValuePairs\Standards\Validators\CreateChatGPTPromptValidation;
use App\Classes\Modules\KeyValuePairs\DataTransferObjects\CreateChatGPTPromptDTO;
use App\Classes\ValueObjects\Constants\RoleTypes;
use Illuminate\Support\Facades\Auth;
class CanCreateChatGPTPrompt extends AbstractRule
{
/** @var CreateChatGPTPromptValidation */
private $validation;
/**
* CanCreateChatGPTPrompt constructor.
* @param CreateChatGPTPromptValidation $validation
*/
public function __construct(CreateChatGPTPromptValidation $validation)
{
$this->validation = $validation;
}
/**
* @return bool
*/
protected function authorized($object): bool
{
if (in_array(Auth::user()->type, RoleTypes::ADMIN_ROLES)) {
return true;
}
return false;
}
/**
* @param CreateChatGPTPromptDTO $object
* @return bool
* @throws \App\Classes\Exceptions\RequestValidationException
*/
protected function validators($object): bool
{
return $this->validation->validate($object);
}
/**
* @param CreateChatGPTPromptDTO $object
* @return bool
*/
protected function criteria($object): bool
{
return true;
}
}