AssetGroup.php 940 B

12345678910111213141516171819202122232425262728293031323334353637
  1. <?php
  2. namespace App\Models;
  3. use App\Http\Requests\IndexHelper;
  4. use App\Models\Enums\DisplayIndexObjectType;
  5. use App\Models\Scopes\CompanyScope;
  6. use EloquentFilter\Filterable;
  7. use Illuminate\Database\Eloquent\Factories\HasFactory;
  8. use Illuminate\Database\Eloquent\Model;
  9. use Illuminate\Database\Eloquent\SoftDeletes;
  10. class AssetGroup extends Model
  11. {
  12. use HasFactory, SoftDeletes, Filterable;
  13. protected $fillable = [
  14. 'company_id',
  15. 'name',
  16. 'sequence'
  17. ];
  18. protected static function booted(): void
  19. {
  20. static::addGlobalScope(new CompanyScope);
  21. static::creating(function (AssetGroup $assetGroup){
  22. $type =DisplayIndexObjectType::ASSETGROUP;
  23. $displayIndex = IndexHelper::getObjectMaxIndex($type);
  24. $assetGroup->display_id =$displayIndex;
  25. });
  26. }
  27. public function Assets(){
  28. return $this->hasMany(Asset::class,'group_id');
  29. }
  30. }