Project.php 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. <?php
  2. namespace App\Models;
  3. use App\Models\Scopes\CompanyScope;
  4. use EloquentFilter\Filterable;
  5. use Illuminate\Database\Eloquent\Factories\HasFactory;
  6. use Illuminate\Database\Eloquent\Model;
  7. use Illuminate\Database\Eloquent\SoftDeletes;
  8. class Project extends Model
  9. {
  10. use HasFactory, Filterable,SoftDeletes;
  11. protected $fillable = [
  12. "name","code","const","available_days","status","begin","end","latitude","longitude","type","acl","whitelist","description"
  13. ];
  14. protected static function booted(): void
  15. {
  16. static::addGlobalScope(new CompanyScope);
  17. }
  18. public function plans(): \Illuminate\Database\Eloquent\Relations\BelongsToMany
  19. {
  20. return $this->belongsToMany(Plan::class, 'project_plan');
  21. }
  22. public function assets(): \Illuminate\Database\Eloquent\Relations\BelongsToMany
  23. {
  24. return $this->belongsToMany(Asset::class, 'project_asset');
  25. }
  26. public function requirements(): \Illuminate\Database\Eloquent\Relations\BelongsToMany
  27. {
  28. return $this->belongsToMany(Requirement::class, 'project_requirement');
  29. }
  30. public function teamMembers(): \Illuminate\Database\Eloquent\Relations\HasMany
  31. {
  32. return $this->hasMany(TeamMember::class);
  33. }
  34. }