$children * @property-read int|null $children_count * @property-read Permission|null $parent * @property-read \Illuminate\Database\Eloquent\Collection $userTypePermissions * @property-read int|null $user_type_permissions_count * @method static \Kalnoy\Nestedset\Collection all($columns = ['*']) * @method static \Kalnoy\Nestedset\QueryBuilder|Permission ancestorsAndSelf($id, array $columns = []) * @method static \Kalnoy\Nestedset\QueryBuilder|Permission ancestorsOf($id, array $columns = []) * @method static \Kalnoy\Nestedset\QueryBuilder|Permission applyNestedSetScope(?string $table = null) * @method static \Kalnoy\Nestedset\QueryBuilder|Permission countErrors() * @method static \Kalnoy\Nestedset\QueryBuilder|Permission d() * @method static \Kalnoy\Nestedset\QueryBuilder|Permission defaultOrder(string $dir = 'asc') * @method static \Kalnoy\Nestedset\QueryBuilder|Permission descendantsAndSelf($id, array $columns = []) * @method static \Kalnoy\Nestedset\QueryBuilder|Permission descendantsOf($id, array $columns = [], $andSelf = false) * @method static \Kalnoy\Nestedset\QueryBuilder|Permission fixSubtree($root) * @method static \Kalnoy\Nestedset\QueryBuilder|Permission fixTree($root = null) * @method static \Kalnoy\Nestedset\Collection get($columns = ['*']) * @method static \Kalnoy\Nestedset\QueryBuilder|Permission getNodeData($id, $required = false) * @method static \Kalnoy\Nestedset\QueryBuilder|Permission getPlainNodeData($id, $required = false) * @method static \Kalnoy\Nestedset\QueryBuilder|Permission getTotalErrors() * @method static \Kalnoy\Nestedset\QueryBuilder|Permission hasChildren() * @method static \Kalnoy\Nestedset\QueryBuilder|Permission hasParent() * @method static \Kalnoy\Nestedset\QueryBuilder|Permission isBroken() * @method static \Kalnoy\Nestedset\QueryBuilder|Permission leaves(array $columns = []) * @method static \Kalnoy\Nestedset\QueryBuilder|Permission makeGap(int $cut, int $height) * @method static \Kalnoy\Nestedset\QueryBuilder|Permission moveNode($key, $position) * @method static \Kalnoy\Nestedset\QueryBuilder|Permission newModelQuery() * @method static \Kalnoy\Nestedset\QueryBuilder|Permission newQuery() * @method static \Illuminate\Database\Eloquent\Builder|Permission onlyTrashed() * @method static \Kalnoy\Nestedset\QueryBuilder|Permission orWhereAncestorOf(bool $id, bool $andSelf = false) * @method static \Kalnoy\Nestedset\QueryBuilder|Permission orWhereDescendantOf($id) * @method static \Kalnoy\Nestedset\QueryBuilder|Permission orWhereNodeBetween($values) * @method static \Kalnoy\Nestedset\QueryBuilder|Permission orWhereNotDescendantOf($id) * @method static \Kalnoy\Nestedset\QueryBuilder|Permission query() * @method static \Kalnoy\Nestedset\QueryBuilder|Permission rebuildSubtree($root, array $data, $delete = false) * @method static \Kalnoy\Nestedset\QueryBuilder|Permission rebuildTree(array $data, $delete = false, $root = null) * @method static \Kalnoy\Nestedset\QueryBuilder|Permission reversed() * @method static \Kalnoy\Nestedset\QueryBuilder|Permission root(array $columns = []) * @method static \Kalnoy\Nestedset\QueryBuilder|Permission whereAncestorOf($id, $andSelf = false, $boolean = 'and') * @method static \Kalnoy\Nestedset\QueryBuilder|Permission whereAncestorOrSelf($id) * @method static \Kalnoy\Nestedset\QueryBuilder|Permission whereBits($value) * @method static \Kalnoy\Nestedset\QueryBuilder|Permission whereCreatedAt($value) * @method static \Kalnoy\Nestedset\QueryBuilder|Permission whereDeletedAt($value) * @method static \Kalnoy\Nestedset\QueryBuilder|Permission whereDescendantOf($id, $boolean = 'and', $not = false, $andSelf = false) * @method static \Kalnoy\Nestedset\QueryBuilder|Permission whereDescendantOrSelf(string $id, string $boolean = 'and', string $not = false) * @method static \Kalnoy\Nestedset\QueryBuilder|Permission whereDescription($value) * @method static \Kalnoy\Nestedset\QueryBuilder|Permission whereId($value) * @method static \Kalnoy\Nestedset\QueryBuilder|Permission whereIsAfter($id, $boolean = 'and') * @method static \Kalnoy\Nestedset\QueryBuilder|Permission whereIsBefore($id, $boolean = 'and') * @method static \Kalnoy\Nestedset\QueryBuilder|Permission whereIsLeaf() * @method static \Kalnoy\Nestedset\QueryBuilder|Permission whereIsRoot() * @method static \Kalnoy\Nestedset\QueryBuilder|Permission whereLft($value) * @method static \Kalnoy\Nestedset\QueryBuilder|Permission whereNodeBetween($values, $boolean = 'and', $not = false, $query = null) * @method static \Kalnoy\Nestedset\QueryBuilder|Permission whereNotDescendantOf($id) * @method static \Kalnoy\Nestedset\QueryBuilder|Permission whereParentId($value) * @method static \Kalnoy\Nestedset\QueryBuilder|Permission whereRgt($value) * @method static \Kalnoy\Nestedset\QueryBuilder|Permission whereScope($value) * @method static \Kalnoy\Nestedset\QueryBuilder|Permission whereUpdatedAt($value) * @method static \Kalnoy\Nestedset\QueryBuilder|Permission withDepth(string $as = 'depth') * @method static \Illuminate\Database\Eloquent\Builder|Permission withTrashed(bool $withTrashed = true) * @method static \Kalnoy\Nestedset\QueryBuilder|Permission withoutRoot() * @method static \Illuminate\Database\Eloquent\Builder|Permission withoutTrashed() * @mixin \Eloquent */ class Permission extends Model { use HasFactory, SoftDeletes, NodeTrait; protected $guarded = ["id"]; /** * The attributes that should be cast. * * @return array */ protected function casts(): array { return [ "parent_id" => "integer", "bits" => "integer", ]; } /** * @return HasMany */ public function children(): HasMany { return $this->hasMany(Permission::class, "parent_id"); } /** * @return BelongsTo */ public function parent(): BelongsTo { return $this->belongsTo(Permission::class, "parent_id"); } /** * @return HasMany */ public function userTypePermissions(): HasMany { return $this->hasMany(UserTypePermission::class); } }