'datetime', 'updated_at' => 'datetime' ]; /** * The attributes that should be mutated to dates. * * @var array */ protected $dates = [ 'created_at', 'updated_at' ]; /** * Get the company that owns the role permission. */ public function company(): BelongsTo { return $this->belongsTo(Company::class, 'role_permissions_bus_id'); } /** * Get the user who created the role permission. */ public function createdByUser(): BelongsTo { return $this->belongsTo(\Modules\Auth\Models\User::class, 'role_permissions_created_by'); } /** * Scope to get permissions for a specific role. * * @param \Illuminate\Database\Eloquent\Builder $query * @param string $role * @return \Illuminate\Database\Eloquent\Builder */ public function scopeForRole($query, string $role) { return $query->where('role_permissions_role', $role); } /** * Scope to get permissions for a specific company. * * @param \Illuminate\Database\Eloquent\Builder $query * @param int $companyId * @return \Illuminate\Database\Eloquent\Builder */ public function scopeForCompany($query, int $companyId) { return $query->where('role_permissions_bus_id', $companyId); } /** * Scope to get permissions with specific permission. * * @param \Illuminate\Database\Eloquent\Builder $query * @param string $permission * @return \Illuminate\Database\Eloquent\Builder */ public function scopeWithPermission($query, string $permission) { return $query->where('role_permissions_permission', $permission); } }