$rules_json * @property RuleOrigin $origin */ class AutomationRule extends Model { /** @use HasFactory */ use BelongsToSpace, HasFactory, HasUuids, SoftDeletes; protected $fillable = [ 'user_id', 'space_id', 'title', 'priority', 'origin', 'rules_json', 'action_category_id', 'action_note', 'action_note_iv', ]; /** @var list */ protected $hidden = [ 'space_id', ]; protected function casts(): array { return [ 'rules_json' => 'array', 'priority' => 'integer', 'origin' => RuleOrigin::class, ]; } /** * @param Builder $query * @return Builder */ public function scopeOrigin(Builder $query, RuleOrigin $origin): Builder { return $query->where('origin', $origin); } /** @return BelongsTo */ public function user(): BelongsTo { return $this->belongsTo(User::class); } /** @return BelongsTo */ public function category(): BelongsTo { return $this->belongsTo(Category::class, 'action_category_id'); } /** @return BelongsToMany */ public function labels(): BelongsToMany { return $this->belongsToMany(Label::class, 'automation_rule_labels') ->using(AutomationRuleLabel::class); } }