ProviderResourceBindingStatus::class, 'resolution_mode' => ProviderResourceResolutionMode::class, 'decided_at' => 'datetime', 'ended_at' => 'datetime', ]; public function scopeActive(Builder $query): Builder { return $query->where('binding_status', ProviderResourceBindingStatus::Active->value); } public function tenant(): BelongsTo { return $this->belongsTo(ManagedEnvironment::class, 'managed_environment_id')->withTrashed(); } public function managedEnvironment(): BelongsTo { return $this->tenant(); } public function workspace(): BelongsTo { return $this->belongsTo(Workspace::class); } public function providerConnection(): BelongsTo { return $this->belongsTo(ProviderConnection::class); } public function sourceOperationRun(): BelongsTo { return $this->belongsTo(OperationRun::class, 'source_operation_run_id'); } public function sourceBaselineSnapshot(): BelongsTo { return $this->belongsTo(BaselineSnapshot::class, 'source_baseline_snapshot_id'); } public function sourceInventoryItem(): BelongsTo { return $this->belongsTo(InventoryItem::class, 'source_inventory_item_id'); } public function sourcePolicyVersion(): BelongsTo { return $this->belongsTo(PolicyVersion::class, 'source_policy_version_id'); } public function decidedBy(): BelongsTo { return $this->belongsTo(User::class, 'decided_by_user_id'); } public function isActive(): bool { return $this->binding_status === ProviderResourceBindingStatus::Active; } }