Implement Keystone environment deployments

This commit is contained in:
2026-05-13 16:11:23 +01:00
parent 65d3142d03
commit aa680b25fd
175 changed files with 10258 additions and 740 deletions

View File

@@ -3,20 +3,24 @@
namespace App\Models;
use App\Enums\RepositoryType;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\HasManyThrough;
use Illuminate\Database\Eloquent\Relations\MorphMany;
class Application extends Model
{
use HasFactory;
protected $guarded = [];
protected function casts(): array
{
return [
'repository_type' => RepositoryType::class,
'deploy_key_private' => 'encrypted',
'deploy_key_installed_at' => 'datetime',
];
}
@@ -25,18 +29,13 @@ class Application extends Model
return $this->belongsTo(Organisation::class);
}
public function instances(): HasMany
public function environments(): HasMany
{
return $this->hasMany(Instance::class);
return $this->hasMany(Environment::class);
}
public function servers(): HasManyThrough
public function operations(): MorphMany
{
return $this->hasManyThrough(Server::class, Instance::class);
}
public function deployments(): MorphMany
{
return $this->morphMany(Deployment::class, 'target');
return $this->morphMany(Operation::class, 'target');
}
}