Added TwoColumnUniqueUndeletedTrait trait

Signed-off-by: snipe <snipe@snipe.net>
This commit is contained in:
snipe 2024-08-16 22:45:47 +01:00
parent 6ad7100aa3
commit 1a4aebf805

View file

@ -10,6 +10,7 @@ use Illuminate\Support\Facades\Gate;
use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Storage;
use Watson\Validating\ValidatingTrait; use Watson\Validating\ValidatingTrait;
use \App\Presenters\AssetModelPresenter; use \App\Presenters\AssetModelPresenter;
use App\Http\Traits\TwoColumnUniqueUndeletedTrait;
/** /**
* Model for Asset Models. Asset Models contain higher level * Model for Asset Models. Asset Models contain higher level
@ -21,21 +22,8 @@ class AssetModel extends SnipeModel
{ {
use HasFactory; use HasFactory;
use SoftDeletes; use SoftDeletes;
protected $presenter = AssetModelPresenter::class;
use Loggable, Requestable, Presentable; use Loggable, Requestable, Presentable;
use TwoColumnUniqueUndeletedTrait;
protected $table = 'models';
protected $hidden = ['user_id', 'deleted_at'];
// Declare the rules for the model validation
protected $rules = [
'name' => 'string|required|min:1|max:255|unique:models,name',
'model_number' => 'string|max:255|nullable',
'min_amt' => 'integer|min:0|nullable',
'category_id' => 'required|integer|exists:categories,id',
'manufacturer_id' => 'integer|exists:manufacturers,id|nullable',
'eol' => 'integer:min:0|max:240|nullable',
];
/** /**
* Whether the model should inject its identifier to the unique * Whether the model should inject its identifier to the unique
@ -44,8 +32,26 @@ class AssetModel extends SnipeModel
* *
* @var bool * @var bool
*/ */
protected $injectUniqueIdentifier = true; protected $injectUniqueIdentifier = true;
use ValidatingTrait; use ValidatingTrait;
protected $table = 'models';
protected $hidden = ['user_id', 'deleted_at'];
protected $presenter = AssetModelPresenter::class;
// Declare the rules for the model validation
protected $rules = [
'name' => 'string|required|min:1|max:255|two_column_unique_undeleted:model_number',
'model_number' => 'string|max:255|nullable|two_column_unique_undeleted:name',
'min_amt' => 'integer|min:0|nullable',
'category_id' => 'required|integer|exists:categories,id',
'manufacturer_id' => 'integer|exists:manufacturers,id|nullable',
'eol' => 'integer:min:0|max:240|nullable',
];
/** /**
* The attributes that are mass assignable. * The attributes that are mass assignable.
@ -86,6 +92,9 @@ class AssetModel extends SnipeModel
'manufacturer' => ['name'], 'manufacturer' => ['name'],
]; ];
/** /**
* Establishes the model -> assets relationship * Establishes the model -> assets relationship
* *