DocumentationFolder.php 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Models;
  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. class DocumentationFolder extends Model
  9. {
  10. use HasFactory;
  11. protected $fillable = [
  12. 'parent_id',
  13. 'name',
  14. 'inherits_permissions',
  15. 'created_by',
  16. ];
  17. protected function casts(): array
  18. {
  19. return [
  20. 'inherits_permissions' => 'boolean',
  21. ];
  22. }
  23. public function parent(): BelongsTo
  24. {
  25. return $this->belongsTo(self::class, 'parent_id');
  26. }
  27. public function children(): HasMany
  28. {
  29. return $this->hasMany(self::class, 'parent_id')->orderBy('name');
  30. }
  31. public function documents(): HasMany
  32. {
  33. return $this->hasMany(DocumentationDocument::class, 'folder_id')->orderBy('name');
  34. }
  35. public function permissionRules(): HasMany
  36. {
  37. return $this->hasMany(DocumentationFolderPermission::class, 'folder_id');
  38. }
  39. public function creator(): BelongsTo
  40. {
  41. return $this->belongsTo(User::class, 'created_by');
  42. }
  43. }