Folder.php 993 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. <?php
  2. namespace App\Models;
  3. use App\Models\Scopes\CompanyScope;
  4. use Illuminate\Database\Eloquent\Factories\HasFactory;
  5. use Illuminate\Database\Eloquent\Model;
  6. use Illuminate\Database\Eloquent\Relations\BelongsTo;
  7. use Illuminate\Database\Eloquent\Relations\HasMany;
  8. use Illuminate\Database\Eloquent\SoftDeletes;
  9. class Folder extends Model
  10. {
  11. use HasFactory, SoftDeletes;
  12. protected $guarded = ['id'];
  13. private mixed $children;
  14. protected static function booted(): void
  15. {
  16. static::addGlobalScope(new CompanyScope);
  17. }
  18. public function files()
  19. {
  20. return $this->hasMany(File::class)->orderByDesc("version");
  21. }
  22. public function namingRule(): BelongsTo
  23. {
  24. return $this->belongsTo(NamingRule::class);
  25. }
  26. public function parent(): BelongsTo
  27. {
  28. return $this->belongsTo(Folder::class, 'parent_id');
  29. }
  30. public function children(): HasMany
  31. {
  32. return $this->hasMany(Folder::class, 'parent_id');
  33. }
  34. }