diff --git a/app/Http/Controllers/BaseController.php b/app/Http/Controllers/BaseController.php index c21cc51fce35..60f0cd3624e4 100644 --- a/app/Http/Controllers/BaseController.php +++ b/app/Http/Controllers/BaseController.php @@ -44,6 +44,7 @@ use League\Fractal\Serializer\JsonApiSerializer; /** * Class BaseController. + * @method static Illuminate\Database\Eloquent\Builder exclude($columns) */ class BaseController extends Controller { diff --git a/app/Jobs/Mail/NinjaMailerJob.php b/app/Jobs/Mail/NinjaMailerJob.php index eaab72bf4288..19fc3ae6fb28 100644 --- a/app/Jobs/Mail/NinjaMailerJob.php +++ b/app/Jobs/Mail/NinjaMailerJob.php @@ -52,7 +52,7 @@ class NinjaMailerJob implements ShouldQueue public $override; /* @var Company $company*/ - public $company; + public Company $company; private $mailer; diff --git a/app/Models/BaseModel.php b/app/Models/BaseModel.php index 7e88a5898c3c..fe19e37e8be6 100644 --- a/app/Models/BaseModel.php +++ b/app/Models/BaseModel.php @@ -40,7 +40,10 @@ use Illuminate\Support\Str; * @method static \Illuminate\Database\Eloquent\Builder|BaseModel withTrashed() * @method \App\Models\Company company() * @method int companyId() + * @method Builder|static exclude($columns) + * @method static Builder|static exclude($columns) * @mixin \Eloquent + * @mixin \Illuminate\Database\Eloquent\Builder */ class BaseModel extends Model { diff --git a/app/Models/Company.php b/app/Models/Company.php index 5164c455a480..e01bb4dfc977 100644 --- a/app/Models/Company.php +++ b/app/Models/Company.php @@ -821,6 +821,7 @@ use Laracasts\Presenter\PresentableTrait; * @property-read \Illuminate\Database\Eloquent\Collection $users * @property-read \Illuminate\Database\Eloquent\Collection $vendors * @property-read \Illuminate\Database\Eloquent\Collection $webhooks + * @method \App\Models\User|null owner() * @mixin \Eloquent */ class Company extends BaseModel @@ -1392,7 +1393,10 @@ class Company extends BaseModel return $this->hasMany(CompanyUser::class)->withTrashed(); } - public function owner() + /** + * @return \App\Models\User|null + */ + public function owner(): ?User { return $this->company_users()->withTrashed()->where('is_owner', true)->first()?->user; } diff --git a/app/Models/Traits/Excludable.php b/app/Models/Traits/Excludable.php index c6d14b14abc5..3df492f16cd2 100644 --- a/app/Models/Traits/Excludable.php +++ b/app/Models/Traits/Excludable.php @@ -11,6 +11,11 @@ namespace App\Models\Traits; +/** + * @template TModelClass of \Illuminate\Database\Eloquent\Model + * @extends \Illuminate\Database\Eloquent\Builder + * @mixin \Illuminate\Database\Eloquent\Builder + */ trait Excludable { /** @@ -20,6 +25,7 @@ trait Excludable */ private function getTableColumns() { + /** @var \Illuminate\Database\Eloquent\Builder|\App\Models\BaseModel $this */ return $this->getConnection()->getSchemaBuilder()->getColumnListing($this->getTable()); } @@ -28,11 +34,11 @@ trait Excludable * @param Builder $query * @param array $columns * - * @return Builder + * @return \Illuminate\Database\Eloquent\Builder|static */ public function scopeExclude($query, $columns): \Illuminate\Database\Eloquent\Builder { - /** @var Builder $query */ + /** @var Builder|static $query */ return $query->select(array_diff($this->getTableColumns(), (array) $columns)); } }