TenantAtlas/apps/platform/app/Models/TenantConfigurationResource.php
Ahmed Darrazi 5ceecdeb62
Some checks failed
PR Fast Feedback / fast-feedback (pull_request) Failing after 6m40s
feat: implement canonical identity engine
2026-06-26 08:46:18 +02:00

78 lines
2.2 KiB
PHP

<?php
declare(strict_types=1);
namespace App\Models;
use App\Support\TenantConfiguration\ClaimState;
use App\Support\TenantConfiguration\CanonicalKeyKind;
use App\Support\TenantConfiguration\EvidenceState;
use App\Support\TenantConfiguration\IdentityState;
use App\Support\TenantConfiguration\SourceClass;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
class TenantConfigurationResource extends Model
{
use HasFactory;
protected $guarded = [];
/**
* @return array<string, string>
*/
protected function casts(): array
{
return [
'source_class' => SourceClass::class,
'source_metadata' => 'array',
'canonical_key_kind' => CanonicalKeyKind::class,
'source_identity' => 'array',
'secondary_identity_keys' => 'array',
'identity_diagnostics' => 'array',
'latest_evidence_state' => EvidenceState::class,
'latest_identity_state' => IdentityState::class,
'latest_claim_state' => ClaimState::class,
'identity_evaluated_at' => 'datetime',
'latest_captured_at' => 'datetime',
];
}
public function workspace(): BelongsTo
{
return $this->belongsTo(Workspace::class);
}
public function tenant(): BelongsTo
{
return $this->belongsTo(ManagedEnvironment::class, 'managed_environment_id');
}
public function managedEnvironment(): BelongsTo
{
return $this->tenant();
}
public function providerConnection(): BelongsTo
{
return $this->belongsTo(ProviderConnection::class);
}
public function resourceType(): BelongsTo
{
return $this->belongsTo(TenantConfigurationResourceType::class);
}
public function latestEvidence(): BelongsTo
{
return $this->belongsTo(TenantConfigurationResourceEvidence::class, 'latest_evidence_id');
}
public function evidence(): HasMany
{
return $this->hasMany(TenantConfigurationResourceEvidence::class, 'resource_id');
}
}