ApplicationStatus::Creating->value, 'mesh_namespace' => 'default', 'ingress_enabled' => false, 'canvas_x' => 0, 'canvas_y' => 0, ]; protected static function booted(): void { static::updated(function (self $application): void { if ($application->wasChanged(['status', 'status_message', 'runtime_container_id'])) { DB::afterCommit(fn () => V5CanvasResourceUpdated::dispatch($application->team_id, $application->id)); } }); } protected function casts(): array { return [ 'status_observed_at' => 'datetime', 'ingress_enabled' => 'boolean', 'internal_port' => 'integer', 'canvas_x' => 'integer', 'canvas_y' => 'integer', ]; } public function team(): BelongsTo { return $this->belongsTo(Team::class); } public function server(): BelongsTo { return $this->belongsTo(Server::class); } public function project(): BelongsTo { return $this->belongsTo(Project::class); } public function environment(): BelongsTo { return $this->belongsTo(Environment::class); } public function creator(): BelongsTo { return $this->belongsTo(User::class, 'created_by_user_id'); } public function domains(): HasMany { return $this->hasMany(ApplicationDomain::class); } }