diff --git a/app/Models/SslCertificate.php b/app/Models/SslCertificate.php index f414e5eca..d16860b22 100644 --- a/app/Models/SslCertificate.php +++ b/app/Models/SslCertificate.php @@ -11,6 +11,7 @@ class SslCertificate extends Model 'ssl_private_key', 'resource_type', 'resource_id', + 'server_id', 'valid_until', ]; @@ -24,4 +25,9 @@ class SslCertificate extends Model { return $this->morphTo(); } + + public function server() + { + return $this->belongsTo(Server::class); + } } diff --git a/database/migrations/2025_01_27_153741_create_ssl_certificates_table.php b/database/migrations/2025_01_27_153741_create_ssl_certificates_table.php index d7b02178d..702f1f534 100644 --- a/database/migrations/2025_01_27_153741_create_ssl_certificates_table.php +++ b/database/migrations/2025_01_27_153741_create_ssl_certificates_table.php @@ -14,10 +14,12 @@ return new class extends Migration $table->text('ssl_private_key'); $table->string('resource_type')->nullable(); $table->unsignedBigInteger('resource_id')->nullable(); - $table->timestamp('valid_until')->nullable(); + $table->unsignedBigInteger('server_id')->nullable(); + $table->timestamp('valid_until'); $table->timestamps(); - $table->index(['resource_type', 'resource_id']); + $table->foreign('server_id')->references('id')->on('servers'); + $table->unique(['server_id', 'resource_id']); }); }