From 9c5a75859ee204a75309e2c711cc87362ced95e5 Mon Sep 17 00:00:00 2001
From: peaklabs-dev <122374094+peaklabs-dev@users.noreply.github.com>
Date: Thu, 5 Dec 2024 22:33:10 +0100
Subject: [PATCH 01/80] Create
2024_12_05_212355_create_email_notification_settings_table.php
---
...eate_email_notification_settings_table.php | 57 +++++++++++++++++++
1 file changed, 57 insertions(+)
create mode 100644 database/migrations/2024_12_05_212355_create_email_notification_settings_table.php
diff --git a/database/migrations/2024_12_05_212355_create_email_notification_settings_table.php b/database/migrations/2024_12_05_212355_create_email_notification_settings_table.php
new file mode 100644
index 000000000..45b106827
--- /dev/null
+++ b/database/migrations/2024_12_05_212355_create_email_notification_settings_table.php
@@ -0,0 +1,57 @@
+id();
+ $table->foreignId('team_id')->constrained()->cascadeOnDelete();
+
+ // SMTP Configuration
+ $table->boolean('smtp_enabled')->default(false);
+ $table->string('smtp_from_address')->nullable();
+ $table->string('smtp_from_name')->nullable();
+ $table->string('smtp_recipients')->nullable();
+ $table->string('smtp_host')->nullable();
+ $table->integer('smtp_port')->nullable();
+ $table->string('smtp_encryption')->nullable();
+ $table->text('smtp_username')->nullable();
+ $table->text('smtp_password')->nullable();
+ $table->integer('smtp_timeout')->nullable();
+
+ $table->boolean('use_instance_email_settings')->default(false);
+
+ // Resend Configuration
+ $table->boolean('resend_enabled')->default(false);
+ $table->encryptedText('resend_api_key')->nullable();
+
+ // Notification Settings
+ $table->boolean('deployment_success_email_notification')->default(false);
+ $table->boolean('deployment_failure_email_notification')->default(true);
+ $table->boolean('backup_success_email_notification')->default(false);
+ $table->boolean('backup_failure_email_notification')->default(true);
+ $table->boolean('scheduled_task_success_email_notification')->default(false);
+ $table->boolean('scheduled_task_failure_email_notification')->default(true);
+ $table->boolean('status_change_email_notification')->default(false);
+ $table->boolean('server_disk_usage_email_notification')->default(true);
+
+ $table->unique(['team_id']);
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ */
+ public function down(): void
+ {
+ Schema::dropIfExists('email_notification_settings');
+ }
+};
From 67b9bebd044c2e43eba28ac73508eee91ab7a6e1 Mon Sep 17 00:00:00 2001
From: peaklabs-dev <122374094+peaklabs-dev@users.noreply.github.com>
Date: Thu, 5 Dec 2024 22:33:16 +0100
Subject: [PATCH 02/80] Create
2024_12_05_212416_create_discord_notification_settings_table.php
---
...te_discord_notification_settings_table.php | 42 +++++++++++++++++++
1 file changed, 42 insertions(+)
create mode 100644 database/migrations/2024_12_05_212416_create_discord_notification_settings_table.php
diff --git a/database/migrations/2024_12_05_212416_create_discord_notification_settings_table.php b/database/migrations/2024_12_05_212416_create_discord_notification_settings_table.php
new file mode 100644
index 000000000..5c6ebbd2c
--- /dev/null
+++ b/database/migrations/2024_12_05_212416_create_discord_notification_settings_table.php
@@ -0,0 +1,42 @@
+id();
+ $table->foreignId('team_id')->constrained()->cascadeOnDelete();
+
+ $table->boolean('discord_enabled')->default(false);
+ $table->string('discord_webhook_url')->nullable();
+
+ // Notification Settings
+ $table->boolean('deployment_success_discord_notification')->default(false);
+ $table->boolean('deployment_failure_discord_notification')->default(true);
+ $table->boolean('backup_success_discord_notification')->default(false);
+ $table->boolean('backup_failure_discord_notification')->default(true);
+ $table->boolean('scheduled_task_success_discord_notification')->default(false);
+ $table->boolean('scheduled_task_failure_discord_notification')->default(true);
+ $table->boolean('status_change_discord_notification')->default(false);
+ $table->boolean('server_disk_usage_discord_notification')->default(true);
+
+ $table->unique(['team_id']);
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ */
+ public function down(): void
+ {
+ Schema::dropIfExists('discord_notification_settings');
+ }
+};
From 832239bbc76fd93feb64da29cf56369471958102 Mon Sep 17 00:00:00 2001
From: peaklabs-dev <122374094+peaklabs-dev@users.noreply.github.com>
Date: Thu, 5 Dec 2024 22:33:19 +0100
Subject: [PATCH 03/80] Create
2024_12_05_212440_create_telegram_notification_settings_table.php
---
...e_telegram_notification_settings_table.php | 54 +++++++++++++++++++
1 file changed, 54 insertions(+)
create mode 100644 database/migrations/2024_12_05_212440_create_telegram_notification_settings_table.php
diff --git a/database/migrations/2024_12_05_212440_create_telegram_notification_settings_table.php b/database/migrations/2024_12_05_212440_create_telegram_notification_settings_table.php
new file mode 100644
index 000000000..3a2e8d8a6
--- /dev/null
+++ b/database/migrations/2024_12_05_212440_create_telegram_notification_settings_table.php
@@ -0,0 +1,54 @@
+id();
+ $table->foreignId('team_id')->constrained()->cascadeOnDelete();
+
+ // Telegram Configuration
+ $table->boolean('telegram_enabled')->default(false);
+ $table->text('telegram_token')->nullable();
+ $table->text('telegram_chat_id')->nullable();
+
+ // Notification Settings
+ $table->boolean('deployment_success_telegram_notification')->default(false);
+ $table->boolean('deployment_failure_telegram_notification')->default(true);
+ $table->boolean('backup_success_telegram_notification')->default(false);
+ $table->boolean('backup_failure_telegram_notification')->default(true);
+ $table->boolean('scheduled_task_success_telegram_notification')->default(false);
+ $table->boolean('scheduled_task_failure_telegram_notification')->default(true);
+ $table->boolean('status_change_telegram_notification')->default(false);
+ $table->boolean('server_disk_usage_telegram_notification')->default(true);
+
+ // Thread IDs for Different Notifications
+ $table->text('telegram_notifications_deployment_success_thread_id')->nullable();
+ $table->text('telegram_notifications_deployment_failure_thread_id')->nullable();
+ $table->text('telegram_notifications_backup_success_thread_id')->nullable();
+ $table->text('telegram_notifications_backup_failure_thread_id')->nullable();
+ $table->text('telegram_notifications_scheduled_task_success_thread_id')->nullable();
+ $table->text('telegram_notifications_scheduled_task_failure_thread_id')->nullable();
+ $table->text('telegram_notifications_status_change_thread_id')->nullable();
+ $table->text('telegram_notifications_server_disk_usage_thread_id')->nullable();
+
+ $table->unique(['team_id']);
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ */
+ public function down(): void
+ {
+ Schema::dropIfExists('telegram_notification_settings');
+ }
+};
From 33b91e09e52020a3102d3f4ab19a1651b6369a0e Mon Sep 17 00:00:00 2001
From: peaklabs-dev <122374094+peaklabs-dev@users.noreply.github.com>
Date: Thu, 5 Dec 2024 22:33:45 +0100
Subject: [PATCH 04/80] feat: migrate old email notification settings from the
teams table
---
...notification_settings_from_teams_table.php | 115 ++++++++++++++++++
1 file changed, 115 insertions(+)
create mode 100644 database/migrations/2024_12_05_212546_migrate_email_notification_settings_from_teams_table.php
diff --git a/database/migrations/2024_12_05_212546_migrate_email_notification_settings_from_teams_table.php b/database/migrations/2024_12_05_212546_migrate_email_notification_settings_from_teams_table.php
new file mode 100644
index 000000000..243a72b21
--- /dev/null
+++ b/database/migrations/2024_12_05_212546_migrate_email_notification_settings_from_teams_table.php
@@ -0,0 +1,115 @@
+emailNotificationSettings()->updateOrCreate(
+ ['team_id' => $team->id],
+ [
+ 'smtp_enabled' => $team->smtp_enabled ?? false,
+ 'smtp_from_address' => $team->smtp_from_address,
+ 'smtp_from_name' => $team->smtp_from_name,
+ 'smtp_recipients' => $team->smtp_recipients,
+ 'smtp_host' => $team->smtp_host,
+ 'smtp_port' => $team->smtp_port,
+ 'smtp_encryption' => $team->smtp_encryption,
+ 'smtp_username' => $team->smtp_username,
+ 'smtp_password' => $team->smtp_password,
+ 'smtp_timeout' => $team->smtp_timeout,
+
+ 'use_instance_email_settings' => $team->use_instance_email_settings ?? false,
+
+ 'resend_enabled' => $team->resend_enabled ?? false,
+ 'resend_api_key' => $team->resend_api_key,
+
+ 'deployment_success_email_notification' => $team->smtp_notifications_deployments ?? false,
+ 'deployment_failure_email_notification' => $team->smtp_notifications_deployments ?? true,
+ 'backup_success_email_notification' => $team->smtp_notifications_database_backups ?? false,
+ 'backup_failure_email_notification' => $team->smtp_notifications_database_backups ?? true,
+ 'scheduled_task_success_email_notification' => $team->smtp_notifications_scheduled_tasks ?? false,
+ 'scheduled_task_failure_email_notification' => $team->smtp_notifications_scheduled_tasks ?? true,
+ 'status_change_email_notification' => $team->smtp_notifications_status_changes ?? false,
+ 'server_disk_usage_email_notification' => true,
+ ]
+ );
+ }
+
+ Schema::table('teams', function (Blueprint $table) {
+ $table->dropColumn([
+ 'smtp_enabled',
+ 'smtp_from_address',
+ 'smtp_from_name',
+ 'smtp_recipients',
+ 'smtp_host',
+ 'smtp_port',
+ 'smtp_encryption',
+ 'smtp_username',
+ 'smtp_password',
+ 'smtp_timeout',
+ 'use_instance_email_settings',
+ 'resend_enabled',
+ 'resend_api_key',
+ 'smtp_notifications_deployments',
+ 'smtp_notifications_database_backups',
+ 'smtp_notifications_scheduled_tasks',
+ 'smtp_notifications_status_changes',
+ ]);
+ });
+ }
+
+ public function down(): void
+ {
+ Schema::table('teams', function (Blueprint $table) {
+ $table->boolean('smtp_enabled')->default(false);
+ $table->string('smtp_from_address')->nullable();
+ $table->string('smtp_from_name')->nullable();
+ $table->string('smtp_recipients')->nullable();
+ $table->string('smtp_host')->nullable();
+ $table->integer('smtp_port')->nullable();
+ $table->string('smtp_encryption')->nullable();
+ $table->text('smtp_username')->nullable();
+ $table->text('smtp_password')->nullable();
+ $table->integer('smtp_timeout')->nullable();
+ $table->boolean('use_instance_email_settings')->default(false);
+ $table->boolean('resend_enabled')->default(false);
+ $table->text('resend_api_key')->nullable();
+ $table->boolean('smtp_notifications_deployments')->default(false);
+ $table->boolean('smtp_notifications_database_backups')->default(true);
+ $table->boolean('smtp_notifications_scheduled_tasks')->default(false);
+ $table->boolean('smtp_notifications_status_changes')->default(false);
+ });
+
+ $teams = Team::with('emailNotificationSettings')->get();
+ foreach ($teams as $team) {
+ if ($settings = $team->emailNotificationSettings) {
+ $team->update([
+ 'smtp_enabled' => $settings->smtp_enabled,
+ 'smtp_from_address' => $settings->smtp_from_address,
+ 'smtp_from_name' => $settings->smtp_from_name,
+ 'smtp_recipients' => $settings->smtp_recipients,
+ 'smtp_host' => $settings->smtp_host,
+ 'smtp_port' => $settings->smtp_port,
+ 'smtp_encryption' => $settings->smtp_encryption,
+ 'smtp_username' => $settings->smtp_username,
+ 'smtp_password' => $settings->smtp_password,
+ 'smtp_timeout' => $settings->smtp_timeout,
+ 'use_instance_email_settings' => $settings->use_instance_email_settings,
+ 'resend_enabled' => $settings->resend_enabled,
+ 'resend_api_key' => $settings->resend_api_key,
+ 'smtp_notifications_deployments' => $settings->deployment_success_email_notification,
+ 'smtp_notifications_database_backups' => $settings->backup_success_email_notification,
+ 'smtp_notifications_scheduled_tasks' => $settings->scheduled_task_success_email_notification,
+ 'smtp_notifications_status_changes' => $settings->status_change_email_notification,
+ ]);
+ }
+ }
+ }
+};
From fd2d9479335390873bd7c7441f82d7891d5b2c51 Mon Sep 17 00:00:00 2001
From: peaklabs-dev <122374094+peaklabs-dev@users.noreply.github.com>
Date: Thu, 5 Dec 2024 22:33:57 +0100
Subject: [PATCH 05/80] feat: migrate old discord notification settings from
the teams table
---
...notification_settings_from_teams_table.php | 81 +++++++++++++++++++
1 file changed, 81 insertions(+)
create mode 100644 database/migrations/2024_12_05_212631_migrate_discord_notification_settings_from_teams_table.php
diff --git a/database/migrations/2024_12_05_212631_migrate_discord_notification_settings_from_teams_table.php b/database/migrations/2024_12_05_212631_migrate_discord_notification_settings_from_teams_table.php
new file mode 100644
index 000000000..8a2b79c54
--- /dev/null
+++ b/database/migrations/2024_12_05_212631_migrate_discord_notification_settings_from_teams_table.php
@@ -0,0 +1,81 @@
+discordNotificationSettings()->updateOrCreate(
+ ['team_id' => $team->id],
+ [
+ 'discord_enabled' => $team->discord_enabled ?? false,
+ 'discord_webhook_url' => $team->discord_webhook_url,
+
+ 'deployment_success_discord_notification' => $team->discord_notifications_deployments ?? false,
+ 'deployment_failure_discord_notification' => $team->discord_notifications_deployments ?? true,
+ 'backup_success_discord_notification' => $team->discord_notifications_database_backups ?? false,
+ 'backup_failure_discord_notification' => $team->discord_notifications_database_backups ?? true,
+ 'scheduled_task_success_discord_notification' => $team->discord_notifications_scheduled_tasks ?? false,
+ 'scheduled_task_failure_discord_notification' => $team->discord_notifications_scheduled_tasks ?? true,
+ 'status_change_discord_notification' => $team->discord_notifications_status_changes ?? false,
+ 'server_disk_usage_discord_notification' => $team->discord_notifications_server_disk_usage ?? true,
+ ]
+ );
+ }
+
+ Schema::table('teams', function (Blueprint $table) {
+ $table->dropColumn([
+ 'discord_enabled',
+ 'discord_webhook_url',
+ 'discord_notifications_test',
+ 'discord_notifications_deployments',
+ 'discord_notifications_status_changes',
+ 'discord_notifications_database_backups',
+ 'discord_notifications_scheduled_tasks',
+ 'discord_notifications_server_disk_usage',
+ ]);
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ */
+ public function down(): void
+ {
+ Schema::table('teams', function (Blueprint $table) {
+ $table->boolean('discord_enabled')->default(false);
+ $table->string('discord_webhook_url')->nullable();
+ $table->boolean('discord_notifications_test')->default(true);
+ $table->boolean('discord_notifications_deployments')->default(true);
+ $table->boolean('discord_notifications_status_changes')->default(true);
+ $table->boolean('discord_notifications_database_backups')->default(true);
+ $table->boolean('discord_notifications_scheduled_tasks')->default(true);
+ $table->boolean('discord_notifications_server_disk_usage')->default(true);
+ });
+
+ $teams = Team::with('discordNotificationSettings')->get();
+ foreach ($teams as $team) {
+ if ($settings = $team->discordNotificationSettings) {
+ $team->update([
+ 'discord_enabled' => $settings->discord_enabled,
+ 'discord_webhook_url' => $settings->discord_webhook_url,
+ 'discord_notifications_test' => true,
+ 'discord_notifications_deployments' => $settings->deployment_success_discord_notification,
+ 'discord_notifications_status_changes' => $settings->status_change_discord_notification,
+ 'discord_notifications_database_backups' => $settings->backup_success_discord_notification,
+ 'discord_notifications_scheduled_tasks' => $settings->scheduled_task_success_discord_notification,
+ 'discord_notifications_server_disk_usage' => $settings->server_disk_usage_discord_notification,
+ ]);
+ }
+ }
+ }
+};
From fb49c4daf451a60016140120a3a1aad4a5a6e7aa Mon Sep 17 00:00:00 2001
From: peaklabs-dev <122374094+peaklabs-dev@users.noreply.github.com>
Date: Thu, 5 Dec 2024 22:34:08 +0100
Subject: [PATCH 06/80] feat: migrate old telegram notification settings from
the teams table
---
...notification_settings_from_teams_table.php | 106 ++++++++++++++++++
1 file changed, 106 insertions(+)
create mode 100644 database/migrations/2024_12_05_212705_migrate_telegram_notification_settings_from_teams_table.php
diff --git a/database/migrations/2024_12_05_212705_migrate_telegram_notification_settings_from_teams_table.php b/database/migrations/2024_12_05_212705_migrate_telegram_notification_settings_from_teams_table.php
new file mode 100644
index 000000000..416c14439
--- /dev/null
+++ b/database/migrations/2024_12_05_212705_migrate_telegram_notification_settings_from_teams_table.php
@@ -0,0 +1,106 @@
+telegramNotificationSettings()->updateOrCreate(
+ ['team_id' => $team->id],
+ [
+ 'telegram_enabled' => $team->telegram_enabled ?? false,
+ 'telegram_token' => $team->telegram_token,
+ 'telegram_chat_id' => $team->telegram_chat_id,
+
+ 'deployment_success_telegram_notification' => $team->telegram_notifications_deployments ?? false,
+ 'deployment_failure_telegram_notification' => $team->telegram_notifications_deployments ?? true,
+ 'backup_success_telegram_notification' => $team->telegram_notifications_database_backups ?? false,
+ 'backup_failure_telegram_notification' => $team->telegram_notifications_database_backups ?? true,
+ 'scheduled_task_success_telegram_notification' => $team->telegram_notifications_scheduled_tasks ?? false,
+ 'scheduled_task_failure_telegram_notification' => $team->telegram_notifications_scheduled_tasks ?? true,
+ 'status_change_telegram_notification' => $team->telegram_notifications_status_changes ?? false,
+ 'server_disk_usage_telegram_notification' => $team->telegram_notifications_server_disk_usage ?? true,
+
+ 'telegram_notifications_deployment_success_thread_id' => $team->telegram_notifications_deployments_message_thread_id,
+ 'telegram_notifications_deployment_failure_thread_id' => $team->telegram_notifications_deployments_message_thread_id,
+ 'telegram_notifications_backup_success_thread_id' => $team->telegram_notifications_database_backups_message_thread_id,
+ 'telegram_notifications_backup_failure_thread_id' => $team->telegram_notifications_database_backups_message_thread_id,
+ 'telegram_notifications_scheduled_task_success_thread_id' => $team->telegram_notifications_scheduled_tasks_thread_id,
+ 'telegram_notifications_scheduled_task_failure_thread_id' => $team->telegram_notifications_scheduled_tasks_thread_id,
+ 'telegram_notifications_status_change_thread_id' => $team->telegram_notifications_status_changes_message_thread_id,
+ ]
+ );
+ }
+
+ // Drop the old columns
+ Schema::table('teams', function (Blueprint $table) {
+ $table->dropColumn([
+ 'telegram_enabled',
+ 'telegram_token',
+ 'telegram_chat_id',
+ 'telegram_notifications_test',
+ 'telegram_notifications_deployments',
+ 'telegram_notifications_status_changes',
+ 'telegram_notifications_database_backups',
+ 'telegram_notifications_scheduled_tasks',
+ 'telegram_notifications_server_disk_usage',
+ 'telegram_notifications_test_message_thread_id',
+ 'telegram_notifications_deployments_message_thread_id',
+ 'telegram_notifications_status_changes_message_thread_id',
+ 'telegram_notifications_database_backups_message_thread_id',
+ 'telegram_notifications_scheduled_tasks_thread_id',
+ ]);
+ });
+ }
+
+ public function down(): void
+ {
+ // Add back the old columns
+ Schema::table('teams', function (Blueprint $table) {
+ $table->boolean('telegram_enabled')->default(false);
+ $table->text('telegram_token')->nullable();
+ $table->text('telegram_chat_id')->nullable();
+ $table->boolean('telegram_notifications_test')->default(true);
+ $table->boolean('telegram_notifications_deployments')->default(true);
+ $table->boolean('telegram_notifications_status_changes')->default(true);
+ $table->boolean('telegram_notifications_database_backups')->default(true);
+ $table->boolean('telegram_notifications_scheduled_tasks')->default(true);
+ $table->boolean('telegram_notifications_server_disk_usage')->default(true);
+ $table->text('telegram_notifications_test_message_thread_id')->nullable();
+ $table->text('telegram_notifications_deployments_message_thread_id')->nullable();
+ $table->text('telegram_notifications_status_changes_message_thread_id')->nullable();
+ $table->text('telegram_notifications_database_backups_message_thread_id')->nullable();
+ $table->text('telegram_notifications_scheduled_tasks_thread_id')->nullable();
+ });
+
+ // Migrate data back from the new table to the old columns
+ $teams = Team::with('telegramNotificationSettings')->get();
+ foreach ($teams as $team) {
+ if ($settings = $team->telegramNotificationSettings) {
+ $team->update([
+ 'telegram_enabled' => $settings->telegram_enabled,
+ 'telegram_token' => $settings->telegram_token,
+ 'telegram_chat_id' => $settings->telegram_chat_id,
+ 'telegram_notifications_test' => true,
+ 'telegram_notifications_deployments' => $settings->deployment_success_telegram_notification,
+ 'telegram_notifications_status_changes' => $settings->status_change_telegram_notification,
+ 'telegram_notifications_database_backups' => $settings->backup_success_telegram_notification,
+ 'telegram_notifications_scheduled_tasks' => $settings->scheduled_task_success_telegram_notification,
+ 'telegram_notifications_server_disk_usage' => $settings->server_disk_usage_telegram_notification,
+ 'telegram_notifications_deployments_message_thread_id' => $settings->telegram_notifications_deployment_success_thread_id,
+ 'telegram_notifications_status_changes_message_thread_id' => $settings->telegram_notifications_status_change_thread_id,
+ 'telegram_notifications_database_backups_message_thread_id' => $settings->telegram_notifications_backup_success_thread_id,
+ 'telegram_notifications_scheduled_tasks_thread_id' => $settings->telegram_notifications_scheduled_task_success_thread_id,
+ ]);
+ }
+ }
+ }
+};
From 251d4cfb53921b6bb2a3906db139301cf90b3769 Mon Sep 17 00:00:00 2001
From: peaklabs-dev <122374094+peaklabs-dev@users.noreply.github.com>
Date: Thu, 5 Dec 2024 23:01:10 +0100
Subject: [PATCH 07/80] chore: remove comments and improve DB column naming
---
...eate_email_notification_settings_table.php | 19 +++----
...te_discord_notification_settings_table.php | 17 +++----
...e_telegram_notification_settings_table.php | 35 ++++++-------
...notification_settings_from_teams_table.php | 25 +++++-----
...notification_settings_from_teams_table.php | 27 +++++-----
...notification_settings_from_teams_table.php | 49 +++++++++----------
6 files changed, 82 insertions(+), 90 deletions(-)
diff --git a/database/migrations/2024_12_05_212355_create_email_notification_settings_table.php b/database/migrations/2024_12_05_212355_create_email_notification_settings_table.php
index 45b106827..783e1f9e1 100644
--- a/database/migrations/2024_12_05_212355_create_email_notification_settings_table.php
+++ b/database/migrations/2024_12_05_212355_create_email_notification_settings_table.php
@@ -15,7 +15,6 @@ return new class extends Migration
$table->id();
$table->foreignId('team_id')->constrained()->cascadeOnDelete();
- // SMTP Configuration
$table->boolean('smtp_enabled')->default(false);
$table->string('smtp_from_address')->nullable();
$table->string('smtp_from_name')->nullable();
@@ -29,19 +28,17 @@ return new class extends Migration
$table->boolean('use_instance_email_settings')->default(false);
- // Resend Configuration
$table->boolean('resend_enabled')->default(false);
$table->encryptedText('resend_api_key')->nullable();
- // Notification Settings
- $table->boolean('deployment_success_email_notification')->default(false);
- $table->boolean('deployment_failure_email_notification')->default(true);
- $table->boolean('backup_success_email_notification')->default(false);
- $table->boolean('backup_failure_email_notification')->default(true);
- $table->boolean('scheduled_task_success_email_notification')->default(false);
- $table->boolean('scheduled_task_failure_email_notification')->default(true);
- $table->boolean('status_change_email_notification')->default(false);
- $table->boolean('server_disk_usage_email_notification')->default(true);
+ $table->boolean('deployment_success_email_notifications')->default(false);
+ $table->boolean('deployment_failure_email_notifications')->default(true);
+ $table->boolean('backup_success_email_notifications')->default(false);
+ $table->boolean('backup_failure_email_notifications')->default(true);
+ $table->boolean('scheduled_task_success_email_notifications')->default(false);
+ $table->boolean('scheduled_task_failure_email_notifications')->default(true);
+ $table->boolean('status_change_email_notifications')->default(false);
+ $table->boolean('server_disk_usage_email_notifications')->default(true);
$table->unique(['team_id']);
});
diff --git a/database/migrations/2024_12_05_212416_create_discord_notification_settings_table.php b/database/migrations/2024_12_05_212416_create_discord_notification_settings_table.php
index 5c6ebbd2c..6989444bb 100644
--- a/database/migrations/2024_12_05_212416_create_discord_notification_settings_table.php
+++ b/database/migrations/2024_12_05_212416_create_discord_notification_settings_table.php
@@ -18,15 +18,14 @@ return new class extends Migration
$table->boolean('discord_enabled')->default(false);
$table->string('discord_webhook_url')->nullable();
- // Notification Settings
- $table->boolean('deployment_success_discord_notification')->default(false);
- $table->boolean('deployment_failure_discord_notification')->default(true);
- $table->boolean('backup_success_discord_notification')->default(false);
- $table->boolean('backup_failure_discord_notification')->default(true);
- $table->boolean('scheduled_task_success_discord_notification')->default(false);
- $table->boolean('scheduled_task_failure_discord_notification')->default(true);
- $table->boolean('status_change_discord_notification')->default(false);
- $table->boolean('server_disk_usage_discord_notification')->default(true);
+ $table->boolean('deployment_success_discord_notifications')->default(false);
+ $table->boolean('deployment_failure_discord_notifications')->default(true);
+ $table->boolean('backup_success_discord_notifications')->default(false);
+ $table->boolean('backup_failure_discord_notifications')->default(true);
+ $table->boolean('scheduled_task_success_discord_notifications')->default(false);
+ $table->boolean('scheduled_task_failure_discord_notifications')->default(true);
+ $table->boolean('status_change_discord_notifications')->default(false);
+ $table->boolean('server_disk_usage_discord_notifications')->default(true);
$table->unique(['team_id']);
});
diff --git a/database/migrations/2024_12_05_212440_create_telegram_notification_settings_table.php b/database/migrations/2024_12_05_212440_create_telegram_notification_settings_table.php
index 3a2e8d8a6..a85794636 100644
--- a/database/migrations/2024_12_05_212440_create_telegram_notification_settings_table.php
+++ b/database/migrations/2024_12_05_212440_create_telegram_notification_settings_table.php
@@ -15,30 +15,27 @@ return new class extends Migration
$table->id();
$table->foreignId('team_id')->constrained()->cascadeOnDelete();
- // Telegram Configuration
$table->boolean('telegram_enabled')->default(false);
$table->text('telegram_token')->nullable();
$table->text('telegram_chat_id')->nullable();
- // Notification Settings
- $table->boolean('deployment_success_telegram_notification')->default(false);
- $table->boolean('deployment_failure_telegram_notification')->default(true);
- $table->boolean('backup_success_telegram_notification')->default(false);
- $table->boolean('backup_failure_telegram_notification')->default(true);
- $table->boolean('scheduled_task_success_telegram_notification')->default(false);
- $table->boolean('scheduled_task_failure_telegram_notification')->default(true);
- $table->boolean('status_change_telegram_notification')->default(false);
- $table->boolean('server_disk_usage_telegram_notification')->default(true);
+ $table->boolean('deployment_success_telegram_notifications')->default(false);
+ $table->boolean('deployment_failure_telegram_notifications')->default(true);
+ $table->boolean('backup_success_telegram_notifications')->default(false);
+ $table->boolean('backup_failure_telegram_notifications')->default(true);
+ $table->boolean('scheduled_task_success_telegram_notifications')->default(false);
+ $table->boolean('scheduled_task_failure_telegram_notifications')->default(true);
+ $table->boolean('status_change_telegram_notifications')->default(false);
+ $table->boolean('server_disk_usage_telegram_notifications')->default(true);
- // Thread IDs for Different Notifications
- $table->text('telegram_notifications_deployment_success_thread_id')->nullable();
- $table->text('telegram_notifications_deployment_failure_thread_id')->nullable();
- $table->text('telegram_notifications_backup_success_thread_id')->nullable();
- $table->text('telegram_notifications_backup_failure_thread_id')->nullable();
- $table->text('telegram_notifications_scheduled_task_success_thread_id')->nullable();
- $table->text('telegram_notifications_scheduled_task_failure_thread_id')->nullable();
- $table->text('telegram_notifications_status_change_thread_id')->nullable();
- $table->text('telegram_notifications_server_disk_usage_thread_id')->nullable();
+ $table->text('telegram_notifications_deployment_success_topic_id')->nullable();
+ $table->text('telegram_notifications_deployment_failure_topic_id')->nullable();
+ $table->text('telegram_notifications_backup_success_topic_id')->nullable();
+ $table->text('telegram_notifications_backup_failure_topic_id')->nullable();
+ $table->text('telegram_notifications_scheduled_task_success_topic_id')->nullable();
+ $table->text('telegram_notifications_scheduled_task_failure_topic_id')->nullable();
+ $table->text('telegram_notifications_status_change_topic_id')->nullable();
+ $table->text('telegram_notifications_server_disk_usage_topic_id')->nullable();
$table->unique(['team_id']);
});
diff --git a/database/migrations/2024_12_05_212546_migrate_email_notification_settings_from_teams_table.php b/database/migrations/2024_12_05_212546_migrate_email_notification_settings_from_teams_table.php
index 243a72b21..b8ba245b9 100644
--- a/database/migrations/2024_12_05_212546_migrate_email_notification_settings_from_teams_table.php
+++ b/database/migrations/2024_12_05_212546_migrate_email_notification_settings_from_teams_table.php
@@ -30,14 +30,14 @@ return new class extends Migration
'resend_enabled' => $team->resend_enabled ?? false,
'resend_api_key' => $team->resend_api_key,
- 'deployment_success_email_notification' => $team->smtp_notifications_deployments ?? false,
- 'deployment_failure_email_notification' => $team->smtp_notifications_deployments ?? true,
- 'backup_success_email_notification' => $team->smtp_notifications_database_backups ?? false,
- 'backup_failure_email_notification' => $team->smtp_notifications_database_backups ?? true,
- 'scheduled_task_success_email_notification' => $team->smtp_notifications_scheduled_tasks ?? false,
- 'scheduled_task_failure_email_notification' => $team->smtp_notifications_scheduled_tasks ?? true,
- 'status_change_email_notification' => $team->smtp_notifications_status_changes ?? false,
- 'server_disk_usage_email_notification' => true,
+ 'deployment_success_email_notifications' => $team->smtp_notifications_deployments ?? false,
+ 'deployment_failure_email_notifications' => $team->smtp_notifications_deployments ?? true,
+ 'backup_success_email_notifications' => $team->smtp_notifications_database_backups ?? false,
+ 'backup_failure_email_notifications' => $team->smtp_notifications_database_backups ?? true,
+ 'scheduled_task_success_email_notifications' => $team->smtp_notifications_scheduled_tasks ?? false,
+ 'scheduled_task_failure_email_notifications' => $team->smtp_notifications_scheduled_tasks ?? true,
+ 'status_change_email_notifications' => $team->smtp_notifications_status_changes ?? false,
+ 'server_disk_usage_email_notifications' => true,
]
);
}
@@ -104,10 +104,11 @@ return new class extends Migration
'use_instance_email_settings' => $settings->use_instance_email_settings,
'resend_enabled' => $settings->resend_enabled,
'resend_api_key' => $settings->resend_api_key,
- 'smtp_notifications_deployments' => $settings->deployment_success_email_notification,
- 'smtp_notifications_database_backups' => $settings->backup_success_email_notification,
- 'smtp_notifications_scheduled_tasks' => $settings->scheduled_task_success_email_notification,
- 'smtp_notifications_status_changes' => $settings->status_change_email_notification,
+ 'smtp_notifications_deployments' => $settings->deployment_success_email_notifications || $settings->deployment_failure_email_notifications,
+ 'smtp_notifications_database_backups' => $settings->backup_success_email_notifications || $settings->backup_failure_email_notifications,
+ 'smtp_notifications_scheduled_tasks' => $settings->scheduled_task_success_email_notifications || $settings->scheduled_task_failure_email_notifications,
+ 'smtp_notifications_status_changes' => $settings->status_change_email_notifications,
+ 'smtp_notifications_server_disk_usage' => $settings->server_disk_usage_email_notifications,
]);
}
}
diff --git a/database/migrations/2024_12_05_212631_migrate_discord_notification_settings_from_teams_table.php b/database/migrations/2024_12_05_212631_migrate_discord_notification_settings_from_teams_table.php
index 8a2b79c54..efb89b09a 100644
--- a/database/migrations/2024_12_05_212631_migrate_discord_notification_settings_from_teams_table.php
+++ b/database/migrations/2024_12_05_212631_migrate_discord_notification_settings_from_teams_table.php
@@ -20,14 +20,14 @@ return new class extends Migration
'discord_enabled' => $team->discord_enabled ?? false,
'discord_webhook_url' => $team->discord_webhook_url,
- 'deployment_success_discord_notification' => $team->discord_notifications_deployments ?? false,
- 'deployment_failure_discord_notification' => $team->discord_notifications_deployments ?? true,
- 'backup_success_discord_notification' => $team->discord_notifications_database_backups ?? false,
- 'backup_failure_discord_notification' => $team->discord_notifications_database_backups ?? true,
- 'scheduled_task_success_discord_notification' => $team->discord_notifications_scheduled_tasks ?? false,
- 'scheduled_task_failure_discord_notification' => $team->discord_notifications_scheduled_tasks ?? true,
- 'status_change_discord_notification' => $team->discord_notifications_status_changes ?? false,
- 'server_disk_usage_discord_notification' => $team->discord_notifications_server_disk_usage ?? true,
+ 'deployment_success_discord_notifications' => $team->discord_notifications_deployments ?? false,
+ 'deployment_failure_discord_notifications' => $team->discord_notifications_deployments ?? true,
+ 'backup_success_discord_notifications' => $team->discord_notifications_database_backups ?? false,
+ 'backup_failure_discord_notifications' => $team->discord_notifications_database_backups ?? true,
+ 'scheduled_task_success_discord_notifications' => $team->discord_notifications_scheduled_tasks ?? false,
+ 'scheduled_task_failure_discord_notifications' => $team->discord_notifications_scheduled_tasks ?? true,
+ 'status_change_discord_notifications' => $team->discord_notifications_status_changes ?? false,
+ 'server_disk_usage_discord_notifications' => $team->discord_notifications_server_disk_usage ?? true,
]
);
}
@@ -68,12 +68,11 @@ return new class extends Migration
$team->update([
'discord_enabled' => $settings->discord_enabled,
'discord_webhook_url' => $settings->discord_webhook_url,
- 'discord_notifications_test' => true,
- 'discord_notifications_deployments' => $settings->deployment_success_discord_notification,
- 'discord_notifications_status_changes' => $settings->status_change_discord_notification,
- 'discord_notifications_database_backups' => $settings->backup_success_discord_notification,
- 'discord_notifications_scheduled_tasks' => $settings->scheduled_task_success_discord_notification,
- 'discord_notifications_server_disk_usage' => $settings->server_disk_usage_discord_notification,
+ 'discord_notifications_deployments' => $settings->deployment_success_discord_notifications || $settings->deployment_failure_discord_notifications,
+ 'discord_notifications_status_changes' => $settings->status_change_discord_notifications,
+ 'discord_notifications_database_backups' => $settings->backup_success_discord_notifications || $settings->backup_failure_discord_notifications,
+ 'discord_notifications_scheduled_tasks' => $settings->scheduled_task_success_discord_notifications || $settings->scheduled_task_failure_discord_notifications,
+ 'discord_notifications_server_disk_usage' => $settings->server_disk_usage_discord_notifications,
]);
}
}
diff --git a/database/migrations/2024_12_05_212705_migrate_telegram_notification_settings_from_teams_table.php b/database/migrations/2024_12_05_212705_migrate_telegram_notification_settings_from_teams_table.php
index 416c14439..6796a18cb 100644
--- a/database/migrations/2024_12_05_212705_migrate_telegram_notification_settings_from_teams_table.php
+++ b/database/migrations/2024_12_05_212705_migrate_telegram_notification_settings_from_teams_table.php
@@ -20,22 +20,22 @@ return new class extends Migration
'telegram_token' => $team->telegram_token,
'telegram_chat_id' => $team->telegram_chat_id,
- 'deployment_success_telegram_notification' => $team->telegram_notifications_deployments ?? false,
- 'deployment_failure_telegram_notification' => $team->telegram_notifications_deployments ?? true,
- 'backup_success_telegram_notification' => $team->telegram_notifications_database_backups ?? false,
- 'backup_failure_telegram_notification' => $team->telegram_notifications_database_backups ?? true,
- 'scheduled_task_success_telegram_notification' => $team->telegram_notifications_scheduled_tasks ?? false,
- 'scheduled_task_failure_telegram_notification' => $team->telegram_notifications_scheduled_tasks ?? true,
- 'status_change_telegram_notification' => $team->telegram_notifications_status_changes ?? false,
- 'server_disk_usage_telegram_notification' => $team->telegram_notifications_server_disk_usage ?? true,
+ 'deployment_success_telegram_notifications' => $team->telegram_notifications_deployments ?? false,
+ 'deployment_failure_telegram_notifications' => $team->telegram_notifications_deployments ?? true,
+ 'backup_success_telegram_notifications' => $team->telegram_notifications_database_backups ?? false,
+ 'backup_failure_telegram_notifications' => $team->telegram_notifications_database_backups ?? true,
+ 'scheduled_task_success_telegram_notifications' => $team->telegram_notifications_scheduled_tasks ?? false,
+ 'scheduled_task_failure_telegram_notifications' => $team->telegram_notifications_scheduled_tasks ?? true,
+ 'status_change_telegram_notifications' => $team->telegram_notifications_status_changes ?? false,
+ 'server_disk_usage_telegram_notifications' => $team->telegram_notifications_server_disk_usage ?? true,
- 'telegram_notifications_deployment_success_thread_id' => $team->telegram_notifications_deployments_message_thread_id,
- 'telegram_notifications_deployment_failure_thread_id' => $team->telegram_notifications_deployments_message_thread_id,
- 'telegram_notifications_backup_success_thread_id' => $team->telegram_notifications_database_backups_message_thread_id,
- 'telegram_notifications_backup_failure_thread_id' => $team->telegram_notifications_database_backups_message_thread_id,
- 'telegram_notifications_scheduled_task_success_thread_id' => $team->telegram_notifications_scheduled_tasks_thread_id,
- 'telegram_notifications_scheduled_task_failure_thread_id' => $team->telegram_notifications_scheduled_tasks_thread_id,
- 'telegram_notifications_status_change_thread_id' => $team->telegram_notifications_status_changes_message_thread_id,
+ 'telegram_notifications_deployment_success_topic_id' => $team->telegram_notifications_deployments_message_thread_id,
+ 'telegram_notifications_deployment_failure_topic_id' => $team->telegram_notifications_deployments_message_thread_id,
+ 'telegram_notifications_backup_success_topic_id' => $team->telegram_notifications_database_backups_message_thread_id,
+ 'telegram_notifications_backup_failure_topic_id' => $team->telegram_notifications_database_backups_message_thread_id,
+ 'telegram_notifications_scheduled_task_success_topic_id' => $team->telegram_notifications_scheduled_tasks_thread_id,
+ 'telegram_notifications_scheduled_task_failure_topic_id' => $team->telegram_notifications_scheduled_tasks_thread_id,
+ 'telegram_notifications_status_change_topic_id' => $team->telegram_notifications_status_changes_message_thread_id,
]
);
}
@@ -89,16 +89,15 @@ return new class extends Migration
'telegram_enabled' => $settings->telegram_enabled,
'telegram_token' => $settings->telegram_token,
'telegram_chat_id' => $settings->telegram_chat_id,
- 'telegram_notifications_test' => true,
- 'telegram_notifications_deployments' => $settings->deployment_success_telegram_notification,
- 'telegram_notifications_status_changes' => $settings->status_change_telegram_notification,
- 'telegram_notifications_database_backups' => $settings->backup_success_telegram_notification,
- 'telegram_notifications_scheduled_tasks' => $settings->scheduled_task_success_telegram_notification,
- 'telegram_notifications_server_disk_usage' => $settings->server_disk_usage_telegram_notification,
- 'telegram_notifications_deployments_message_thread_id' => $settings->telegram_notifications_deployment_success_thread_id,
- 'telegram_notifications_status_changes_message_thread_id' => $settings->telegram_notifications_status_change_thread_id,
- 'telegram_notifications_database_backups_message_thread_id' => $settings->telegram_notifications_backup_success_thread_id,
- 'telegram_notifications_scheduled_tasks_thread_id' => $settings->telegram_notifications_scheduled_task_success_thread_id,
+ 'telegram_notifications_deployments' => $settings->deployment_success_telegram_notifications || $settings->deployment_failure_telegram_notifications,
+ 'telegram_notifications_status_changes' => $settings->status_change_telegram_notifications,
+ 'telegram_notifications_database_backups' => $settings->backup_success_telegram_notifications || $settings->backup_failure_telegram_notifications,
+ 'telegram_notifications_scheduled_tasks' => $settings->scheduled_task_success_telegram_notifications || $settings->scheduled_task_failure_telegram_notifications,
+ 'telegram_notifications_server_disk_usage' => $settings->server_disk_usage_telegram_notifications,
+ 'telegram_notifications_deployments_message_thread_id' => $settings->telegram_notifications_deployment_success_topic_id,
+ 'telegram_notifications_status_changes_message_thread_id' => $settings->telegram_notifications_status_change_topic_id,
+ 'telegram_notifications_database_backups_message_thread_id' => $settings->telegram_notifications_backup_success_topic_id,
+ 'telegram_notifications_scheduled_tasks_thread_id' => $settings->telegram_notifications_scheduled_task_success_topic_id,
]);
}
}
From 92992a884477af7fddd323c03e14b0203362ed00 Mon Sep 17 00:00:00 2001
From: peaklabs-dev <122374094+peaklabs-dev@users.noreply.github.com>
Date: Thu, 5 Dec 2024 23:03:39 +0100
Subject: [PATCH 08/80] fix: DB migration error
---
...24_12_05_212355_create_email_notification_settings_table.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/database/migrations/2024_12_05_212355_create_email_notification_settings_table.php b/database/migrations/2024_12_05_212355_create_email_notification_settings_table.php
index 783e1f9e1..525168ec0 100644
--- a/database/migrations/2024_12_05_212355_create_email_notification_settings_table.php
+++ b/database/migrations/2024_12_05_212355_create_email_notification_settings_table.php
@@ -29,7 +29,7 @@ return new class extends Migration
$table->boolean('use_instance_email_settings')->default(false);
$table->boolean('resend_enabled')->default(false);
- $table->encryptedText('resend_api_key')->nullable();
+ $table->text('resend_api_key')->nullable();
$table->boolean('deployment_success_email_notifications')->default(false);
$table->boolean('deployment_failure_email_notifications')->default(true);
From fbd8b96b66275df167dbac328fc2d734fa523207 Mon Sep 17 00:00:00 2001
From: peaklabs-dev <122374094+peaklabs-dev@users.noreply.github.com>
Date: Thu, 5 Dec 2024 23:06:42 +0100
Subject: [PATCH 09/80] fix: drop all unused smtp columns
---
...546_migrate_email_notification_settings_from_teams_table.php | 2 ++
1 file changed, 2 insertions(+)
diff --git a/database/migrations/2024_12_05_212546_migrate_email_notification_settings_from_teams_table.php b/database/migrations/2024_12_05_212546_migrate_email_notification_settings_from_teams_table.php
index b8ba245b9..737c0bab6 100644
--- a/database/migrations/2024_12_05_212546_migrate_email_notification_settings_from_teams_table.php
+++ b/database/migrations/2024_12_05_212546_migrate_email_notification_settings_from_teams_table.php
@@ -57,10 +57,12 @@ return new class extends Migration
'use_instance_email_settings',
'resend_enabled',
'resend_api_key',
+ 'smtp_notifications_test',
'smtp_notifications_deployments',
'smtp_notifications_database_backups',
'smtp_notifications_scheduled_tasks',
'smtp_notifications_status_changes',
+ 'smtp_notifications_server_disk_usage',
]);
});
}
From 4ff317001dad6944eb02e60abaa8893be36995de Mon Sep 17 00:00:00 2001
From: peaklabs-dev <122374094+peaklabs-dev@users.noreply.github.com>
Date: Fri, 6 Dec 2024 15:19:31 +0100
Subject: [PATCH 10/80] fix: backward compatibility
- Add migrations that move email, discord and telegram notifications to the new settings tables for each notification
- drop now unused columns form the teams table
---
...notification_settings_from_teams_table.php | 103 +++++++++---------
...notification_settings_from_teams_table.php | 58 +++++-----
...notification_settings_from_teams_table.php | 86 +++++++--------
3 files changed, 117 insertions(+), 130 deletions(-)
diff --git a/database/migrations/2024_12_05_212546_migrate_email_notification_settings_from_teams_table.php b/database/migrations/2024_12_05_212546_migrate_email_notification_settings_from_teams_table.php
index 737c0bab6..d835ec2ed 100644
--- a/database/migrations/2024_12_05_212546_migrate_email_notification_settings_from_teams_table.php
+++ b/database/migrations/2024_12_05_212546_migrate_email_notification_settings_from_teams_table.php
@@ -1,45 +1,41 @@
get();
+
foreach ($teams as $team) {
- $team->emailNotificationSettings()->updateOrCreate(
- ['team_id' => $team->id],
- [
- 'smtp_enabled' => $team->smtp_enabled ?? false,
- 'smtp_from_address' => $team->smtp_from_address,
- 'smtp_from_name' => $team->smtp_from_name,
- 'smtp_recipients' => $team->smtp_recipients,
- 'smtp_host' => $team->smtp_host,
- 'smtp_port' => $team->smtp_port,
- 'smtp_encryption' => $team->smtp_encryption,
- 'smtp_username' => $team->smtp_username,
- 'smtp_password' => $team->smtp_password,
- 'smtp_timeout' => $team->smtp_timeout,
-
- 'use_instance_email_settings' => $team->use_instance_email_settings ?? false,
-
- 'resend_enabled' => $team->resend_enabled ?? false,
- 'resend_api_key' => $team->resend_api_key,
-
- 'deployment_success_email_notifications' => $team->smtp_notifications_deployments ?? false,
- 'deployment_failure_email_notifications' => $team->smtp_notifications_deployments ?? true,
- 'backup_success_email_notifications' => $team->smtp_notifications_database_backups ?? false,
- 'backup_failure_email_notifications' => $team->smtp_notifications_database_backups ?? true,
- 'scheduled_task_success_email_notifications' => $team->smtp_notifications_scheduled_tasks ?? false,
- 'scheduled_task_failure_email_notifications' => $team->smtp_notifications_scheduled_tasks ?? true,
- 'status_change_email_notifications' => $team->smtp_notifications_status_changes ?? false,
- 'server_disk_usage_email_notifications' => true,
- ]
- );
+ DB::table('email_notification_settings')->insert([
+ 'team_id' => $team->id,
+ 'smtp_enabled' => $team->smtp_enabled ?? false,
+ 'smtp_from_address' => $team->smtp_from_address,
+ 'smtp_from_name' => $team->smtp_from_name,
+ 'smtp_recipients' => $team->smtp_recipients,
+ 'smtp_host' => $team->smtp_host,
+ 'smtp_port' => $team->smtp_port,
+ 'smtp_encryption' => $team->smtp_encryption,
+ 'smtp_username' => $team->smtp_username,
+ 'smtp_password' => $team->smtp_password,
+ 'smtp_timeout' => $team->smtp_timeout,
+ 'use_instance_email_settings' => $team->use_instance_email_settings ?? false,
+ 'resend_enabled' => $team->resend_enabled ?? false,
+ 'resend_api_key' => $team->resend_api_key,
+ 'deployment_success_email_notifications' => $team->smtp_notifications_deployments ?? false,
+ 'deployment_failure_email_notifications' => $team->smtp_notifications_deployments ?? false,
+ 'backup_success_email_notifications' => $team->smtp_notifications_database_backups ?? false,
+ 'backup_failure_email_notifications' => $team->smtp_notifications_database_backups ?? false,
+ 'scheduled_task_success_email_notifications' => $team->smtp_notifications_scheduled_tasks ?? false,
+ 'scheduled_task_failure_email_notifications' => $team->smtp_notifications_scheduled_tasks ?? false,
+ 'status_change_email_notifications' => $team->smtp_notifications_status_changes ?? false,
+ 'server_disk_usage_email_notifications' => true,
+ ]);
}
Schema::table('teams', function (Blueprint $table) {
@@ -89,30 +85,29 @@ return new class extends Migration
$table->boolean('smtp_notifications_status_changes')->default(false);
});
- $teams = Team::with('emailNotificationSettings')->get();
- foreach ($teams as $team) {
- if ($settings = $team->emailNotificationSettings) {
- $team->update([
- 'smtp_enabled' => $settings->smtp_enabled,
- 'smtp_from_address' => $settings->smtp_from_address,
- 'smtp_from_name' => $settings->smtp_from_name,
- 'smtp_recipients' => $settings->smtp_recipients,
- 'smtp_host' => $settings->smtp_host,
- 'smtp_port' => $settings->smtp_port,
- 'smtp_encryption' => $settings->smtp_encryption,
- 'smtp_username' => $settings->smtp_username,
- 'smtp_password' => $settings->smtp_password,
- 'smtp_timeout' => $settings->smtp_timeout,
- 'use_instance_email_settings' => $settings->use_instance_email_settings,
- 'resend_enabled' => $settings->resend_enabled,
- 'resend_api_key' => $settings->resend_api_key,
- 'smtp_notifications_deployments' => $settings->deployment_success_email_notifications || $settings->deployment_failure_email_notifications,
- 'smtp_notifications_database_backups' => $settings->backup_success_email_notifications || $settings->backup_failure_email_notifications,
- 'smtp_notifications_scheduled_tasks' => $settings->scheduled_task_success_email_notifications || $settings->scheduled_task_failure_email_notifications,
- 'smtp_notifications_status_changes' => $settings->status_change_email_notifications,
- 'smtp_notifications_server_disk_usage' => $settings->server_disk_usage_email_notifications,
+ $settings = DB::table('email_notification_settings')->get();
+ foreach ($settings as $setting) {
+ DB::table('teams')
+ ->where('id', $setting->team_id)
+ ->update([
+ 'smtp_enabled' => $setting->smtp_enabled,
+ 'smtp_from_address' => $setting->smtp_from_address,
+ 'smtp_from_name' => $setting->smtp_from_name,
+ 'smtp_recipients' => $setting->smtp_recipients,
+ 'smtp_host' => $setting->smtp_host,
+ 'smtp_port' => $setting->smtp_port,
+ 'smtp_encryption' => $setting->smtp_encryption,
+ 'smtp_username' => $setting->smtp_username,
+ 'smtp_password' => $setting->smtp_password,
+ 'smtp_timeout' => $setting->smtp_timeout,
+ 'use_instance_email_settings' => $setting->use_instance_email_settings,
+ 'resend_enabled' => $setting->resend_enabled,
+ 'resend_api_key' => $setting->resend_api_key,
+ 'smtp_notifications_deployments' => $setting->deployment_success_email_notifications || $setting->deployment_failure_email_notifications,
+ 'smtp_notifications_database_backups' => $setting->backup_success_email_notifications || $setting->backup_failure_email_notifications,
+ 'smtp_notifications_scheduled_tasks' => $setting->scheduled_task_success_email_notifications || $setting->scheduled_task_failure_email_notifications,
+ 'smtp_notifications_status_changes' => $setting->status_change_email_notifications,
]);
- }
}
}
};
diff --git a/database/migrations/2024_12_05_212631_migrate_discord_notification_settings_from_teams_table.php b/database/migrations/2024_12_05_212631_migrate_discord_notification_settings_from_teams_table.php
index efb89b09a..72d56ac08 100644
--- a/database/migrations/2024_12_05_212631_migrate_discord_notification_settings_from_teams_table.php
+++ b/database/migrations/2024_12_05_212631_migrate_discord_notification_settings_from_teams_table.php
@@ -1,8 +1,8 @@
discordNotificationSettings()->updateOrCreate(
- ['team_id' => $team->id],
- [
- 'discord_enabled' => $team->discord_enabled ?? false,
- 'discord_webhook_url' => $team->discord_webhook_url,
+ $teams = DB::table('teams')->get();
- 'deployment_success_discord_notifications' => $team->discord_notifications_deployments ?? false,
- 'deployment_failure_discord_notifications' => $team->discord_notifications_deployments ?? true,
- 'backup_success_discord_notifications' => $team->discord_notifications_database_backups ?? false,
- 'backup_failure_discord_notifications' => $team->discord_notifications_database_backups ?? true,
- 'scheduled_task_success_discord_notifications' => $team->discord_notifications_scheduled_tasks ?? false,
- 'scheduled_task_failure_discord_notifications' => $team->discord_notifications_scheduled_tasks ?? true,
- 'status_change_discord_notifications' => $team->discord_notifications_status_changes ?? false,
- 'server_disk_usage_discord_notifications' => $team->discord_notifications_server_disk_usage ?? true,
- ]
- );
+ foreach ($teams as $team) {
+ DB::table('discord_notification_settings')->insert([
+ 'team_id' => $team->id,
+ 'discord_enabled' => $team->discord_enabled ?? false,
+ 'discord_webhook_url' => $team->discord_webhook_url,
+ 'deployment_success_discord_notifications' => $team->discord_notifications_deployments ?? false,
+ 'deployment_failure_discord_notifications' => $team->discord_notifications_deployments ?? false,
+ 'backup_success_discord_notifications' => $team->discord_notifications_database_backups ?? false,
+ 'backup_failure_discord_notifications' => $team->discord_notifications_database_backups ?? false,
+ 'scheduled_task_success_discord_notifications' => $team->discord_notifications_scheduled_tasks ?? false,
+ 'scheduled_task_failure_discord_notifications' => $team->discord_notifications_scheduled_tasks ?? false,
+ 'status_change_discord_notifications' => $team->discord_notifications_status_changes ?? false,
+ 'server_disk_usage_discord_notifications' => $team->discord_notifications_server_disk_usage ?? true,
+ ]);
}
Schema::table('teams', function (Blueprint $table) {
@@ -62,19 +60,19 @@ return new class extends Migration
$table->boolean('discord_notifications_server_disk_usage')->default(true);
});
- $teams = Team::with('discordNotificationSettings')->get();
- foreach ($teams as $team) {
- if ($settings = $team->discordNotificationSettings) {
- $team->update([
- 'discord_enabled' => $settings->discord_enabled,
- 'discord_webhook_url' => $settings->discord_webhook_url,
- 'discord_notifications_deployments' => $settings->deployment_success_discord_notifications || $settings->deployment_failure_discord_notifications,
- 'discord_notifications_status_changes' => $settings->status_change_discord_notifications,
- 'discord_notifications_database_backups' => $settings->backup_success_discord_notifications || $settings->backup_failure_discord_notifications,
- 'discord_notifications_scheduled_tasks' => $settings->scheduled_task_success_discord_notifications || $settings->scheduled_task_failure_discord_notifications,
- 'discord_notifications_server_disk_usage' => $settings->server_disk_usage_discord_notifications,
+ $settings = DB::table('discord_notification_settings')->get();
+ foreach ($settings as $setting) {
+ DB::table('teams')
+ ->where('id', $setting->team_id)
+ ->update([
+ 'discord_enabled' => $setting->discord_enabled,
+ 'discord_webhook_url' => $setting->discord_webhook_url,
+ 'discord_notifications_deployments' => $setting->deployment_success_discord_notifications || $setting->deployment_failure_discord_notifications,
+ 'discord_notifications_status_changes' => $setting->status_change_discord_notifications,
+ 'discord_notifications_database_backups' => $setting->backup_success_discord_notifications || $setting->backup_failure_discord_notifications,
+ 'discord_notifications_scheduled_tasks' => $setting->scheduled_task_success_discord_notifications || $setting->scheduled_task_failure_discord_notifications,
+ 'discord_notifications_server_disk_usage' => $setting->server_disk_usage_discord_notifications,
]);
- }
}
}
};
diff --git a/database/migrations/2024_12_05_212705_migrate_telegram_notification_settings_from_teams_table.php b/database/migrations/2024_12_05_212705_migrate_telegram_notification_settings_from_teams_table.php
index 6796a18cb..82e928649 100644
--- a/database/migrations/2024_12_05_212705_migrate_telegram_notification_settings_from_teams_table.php
+++ b/database/migrations/2024_12_05_212705_migrate_telegram_notification_settings_from_teams_table.php
@@ -1,46 +1,42 @@
get();
foreach ($teams as $team) {
+ DB::table('telegram_notification_settings')->insert([
+ 'team_id' => $team->id,
+ 'telegram_enabled' => $team->telegram_enabled ?? false,
+ 'telegram_token' => $team->telegram_token,
+ 'telegram_chat_id' => $team->telegram_chat_id,
- $team->telegramNotificationSettings()->updateOrCreate(
- ['team_id' => $team->id],
- [
- 'telegram_enabled' => $team->telegram_enabled ?? false,
- 'telegram_token' => $team->telegram_token,
- 'telegram_chat_id' => $team->telegram_chat_id,
+ 'deployment_success_telegram_notifications' => $team->telegram_notifications_deployments ?? false,
+ 'deployment_failure_telegram_notifications' => $team->telegram_notifications_deployments ?? false,
+ 'backup_success_telegram_notifications' => $team->telegram_notifications_database_backups ?? false,
+ 'backup_failure_telegram_notifications' => $team->telegram_notifications_database_backups ?? false,
+ 'scheduled_task_success_telegram_notifications' => $team->telegram_notifications_scheduled_tasks ?? false,
+ 'scheduled_task_failure_telegram_notifications' => $team->telegram_notifications_scheduled_tasks ?? false,
+ 'status_change_telegram_notifications' => $team->telegram_notifications_status_changes ?? false,
+ 'server_disk_usage_telegram_notifications' => $team->telegram_notifications_server_disk_usage ?? true,
- 'deployment_success_telegram_notifications' => $team->telegram_notifications_deployments ?? false,
- 'deployment_failure_telegram_notifications' => $team->telegram_notifications_deployments ?? true,
- 'backup_success_telegram_notifications' => $team->telegram_notifications_database_backups ?? false,
- 'backup_failure_telegram_notifications' => $team->telegram_notifications_database_backups ?? true,
- 'scheduled_task_success_telegram_notifications' => $team->telegram_notifications_scheduled_tasks ?? false,
- 'scheduled_task_failure_telegram_notifications' => $team->telegram_notifications_scheduled_tasks ?? true,
- 'status_change_telegram_notifications' => $team->telegram_notifications_status_changes ?? false,
- 'server_disk_usage_telegram_notifications' => $team->telegram_notifications_server_disk_usage ?? true,
-
- 'telegram_notifications_deployment_success_topic_id' => $team->telegram_notifications_deployments_message_thread_id,
- 'telegram_notifications_deployment_failure_topic_id' => $team->telegram_notifications_deployments_message_thread_id,
- 'telegram_notifications_backup_success_topic_id' => $team->telegram_notifications_database_backups_message_thread_id,
- 'telegram_notifications_backup_failure_topic_id' => $team->telegram_notifications_database_backups_message_thread_id,
- 'telegram_notifications_scheduled_task_success_topic_id' => $team->telegram_notifications_scheduled_tasks_thread_id,
- 'telegram_notifications_scheduled_task_failure_topic_id' => $team->telegram_notifications_scheduled_tasks_thread_id,
- 'telegram_notifications_status_change_topic_id' => $team->telegram_notifications_status_changes_message_thread_id,
- ]
- );
+ 'telegram_notifications_deployment_success_topic_id' => $team->telegram_notifications_deployments_message_thread_id,
+ 'telegram_notifications_deployment_failure_topic_id' => $team->telegram_notifications_deployments_message_thread_id,
+ 'telegram_notifications_backup_success_topic_id' => $team->telegram_notifications_database_backups_message_thread_id,
+ 'telegram_notifications_backup_failure_topic_id' => $team->telegram_notifications_database_backups_message_thread_id,
+ 'telegram_notifications_scheduled_task_success_topic_id' => $team->telegram_notifications_scheduled_tasks_thread_id,
+ 'telegram_notifications_scheduled_task_failure_topic_id' => $team->telegram_notifications_scheduled_tasks_thread_id,
+ 'telegram_notifications_status_change_topic_id' => $team->telegram_notifications_status_changes_message_thread_id,
+ ]);
}
- // Drop the old columns
Schema::table('teams', function (Blueprint $table) {
$table->dropColumn([
'telegram_enabled',
@@ -63,7 +59,6 @@ return new class extends Migration
public function down(): void
{
- // Add back the old columns
Schema::table('teams', function (Blueprint $table) {
$table->boolean('telegram_enabled')->default(false);
$table->text('telegram_token')->nullable();
@@ -81,25 +76,24 @@ return new class extends Migration
$table->text('telegram_notifications_scheduled_tasks_thread_id')->nullable();
});
- // Migrate data back from the new table to the old columns
- $teams = Team::with('telegramNotificationSettings')->get();
- foreach ($teams as $team) {
- if ($settings = $team->telegramNotificationSettings) {
- $team->update([
- 'telegram_enabled' => $settings->telegram_enabled,
- 'telegram_token' => $settings->telegram_token,
- 'telegram_chat_id' => $settings->telegram_chat_id,
- 'telegram_notifications_deployments' => $settings->deployment_success_telegram_notifications || $settings->deployment_failure_telegram_notifications,
- 'telegram_notifications_status_changes' => $settings->status_change_telegram_notifications,
- 'telegram_notifications_database_backups' => $settings->backup_success_telegram_notifications || $settings->backup_failure_telegram_notifications,
- 'telegram_notifications_scheduled_tasks' => $settings->scheduled_task_success_telegram_notifications || $settings->scheduled_task_failure_telegram_notifications,
- 'telegram_notifications_server_disk_usage' => $settings->server_disk_usage_telegram_notifications,
- 'telegram_notifications_deployments_message_thread_id' => $settings->telegram_notifications_deployment_success_topic_id,
- 'telegram_notifications_status_changes_message_thread_id' => $settings->telegram_notifications_status_change_topic_id,
- 'telegram_notifications_database_backups_message_thread_id' => $settings->telegram_notifications_backup_success_topic_id,
- 'telegram_notifications_scheduled_tasks_thread_id' => $settings->telegram_notifications_scheduled_task_success_topic_id,
+ $settings = DB::table('telegram_notification_settings')->get();
+ foreach ($settings as $setting) {
+ DB::table('teams')
+ ->where('id', $setting->team_id)
+ ->update([
+ 'telegram_enabled' => $setting->telegram_enabled,
+ 'telegram_token' => $setting->telegram_token,
+ 'telegram_chat_id' => $setting->telegram_chat_id,
+ 'telegram_notifications_deployments' => $setting->deployment_success_telegram_notifications || $setting->deployment_failure_telegram_notifications,
+ 'telegram_notifications_status_changes' => $setting->status_change_telegram_notifications,
+ 'telegram_notifications_database_backups' => $setting->backup_success_telegram_notifications || $setting->backup_failure_telegram_notifications,
+ 'telegram_notifications_scheduled_tasks' => $setting->scheduled_task_success_telegram_notifications || $setting->scheduled_task_failure_telegram_notifications,
+ 'telegram_notifications_server_disk_usage' => $setting->server_disk_usage_telegram_notifications,
+ 'telegram_notifications_deployments_message_thread_id' => $setting->telegram_notifications_deployment_success_topic_id,
+ 'telegram_notifications_status_changes_message_thread_id' => $setting->telegram_notifications_status_change_topic_id,
+ 'telegram_notifications_database_backups_message_thread_id' => $setting->telegram_notifications_backup_success_topic_id,
+ 'telegram_notifications_scheduled_tasks_thread_id' => $setting->telegram_notifications_scheduled_task_success_topic_id,
]);
- }
}
}
};
From cc894defc5939915cc7c6dec47d5f68284b1acd4 Mon Sep 17 00:00:00 2001
From: peaklabs-dev <122374094+peaklabs-dev@users.noreply.github.com>
Date: Fri, 6 Dec 2024 15:25:37 +0100
Subject: [PATCH 11/80] feat: add slack notifications to a new table
---
...add_slack_notifications_to_teams_table.php | 38 -----------------
...eate_slack_notification_settings_table.php | 41 +++++++++++++++++++
2 files changed, 41 insertions(+), 38 deletions(-)
delete mode 100644 database/migrations/2024_11_12_213200_add_slack_notifications_to_teams_table.php
create mode 100644 database/migrations/2024_12_06_142014_create_slack_notification_settings_table.php
diff --git a/database/migrations/2024_11_12_213200_add_slack_notifications_to_teams_table.php b/database/migrations/2024_11_12_213200_add_slack_notifications_to_teams_table.php
deleted file mode 100644
index a6457269a..000000000
--- a/database/migrations/2024_11_12_213200_add_slack_notifications_to_teams_table.php
+++ /dev/null
@@ -1,38 +0,0 @@
-boolean('slack_enabled')->default(false);
- $table->string('slack_webhook_url')->nullable();
- $table->boolean('slack_notifications_test')->default(true);
- $table->boolean('slack_notifications_deployments')->default(true);
- $table->boolean('slack_notifications_status_changes')->default(true);
- $table->boolean('slack_notifications_database_backups')->default(true);
- $table->boolean('slack_notifications_scheduled_tasks')->default(true);
- $table->boolean('slack_notifications_server_disk_usage')->default(true);
- });
- }
-
- public function down(): void
- {
- Schema::table('teams', function (Blueprint $table) {
- $table->dropColumn([
- 'slack_enabled',
- 'slack_webhook_url',
- 'slack_notifications_test',
- 'slack_notifications_deployments',
- 'slack_notifications_status_changes',
- 'slack_notifications_database_backups',
- 'slack_notifications_scheduled_tasks',
- 'slack_notifications_server_disk_usage',
- ]);
- });
- }
-};
diff --git a/database/migrations/2024_12_06_142014_create_slack_notification_settings_table.php b/database/migrations/2024_12_06_142014_create_slack_notification_settings_table.php
new file mode 100644
index 000000000..6eb988619
--- /dev/null
+++ b/database/migrations/2024_12_06_142014_create_slack_notification_settings_table.php
@@ -0,0 +1,41 @@
+id();
+ $table->foreignId('team_id')->constrained()->cascadeOnDelete();
+
+ $table->boolean('slack_enabled')->default(false);
+ $table->string('slack_webhook_url')->nullable();
+
+ $table->boolean('deployment_success_slack_notifications')->default(false);
+ $table->boolean('deployment_failure_slack_notifications')->default(true);
+ $table->boolean('backup_success_slack_notifications')->default(false);
+ $table->boolean('backup_failure_slack_notifications')->default(true);
+ $table->boolean('scheduled_task_success_slack_notifications')->default(false);
+ $table->boolean('scheduled_task_failure_slack_notifications')->default(true);
+ $table->boolean('status_change_slack_notifications')->default(false);
+ $table->boolean('server_disk_usage_slack_notifications')->default(true);
+
+ $table->unique(['team_id']);
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ */
+ public function down(): void
+ {
+ Schema::dropIfExists('slack_notification_settings');
+ }
+};
From 19064beb2a30513d9c0be67f4935f6cb18e85e62 Mon Sep 17 00:00:00 2001
From: peaklabs-dev <122374094+peaklabs-dev@users.noreply.github.com>
Date: Fri, 6 Dec 2024 15:50:20 +0100
Subject: [PATCH 12/80] chore: remove unused seeder
---
database/seeders/TestTeamSeeder.php | 42 -----------------------------
1 file changed, 42 deletions(-)
delete mode 100644 database/seeders/TestTeamSeeder.php
diff --git a/database/seeders/TestTeamSeeder.php b/database/seeders/TestTeamSeeder.php
deleted file mode 100644
index 940c45cc5..000000000
--- a/database/seeders/TestTeamSeeder.php
+++ /dev/null
@@ -1,42 +0,0 @@
-create([
- 'name' => '1 personal, 1 other team, owner, no other members',
- 'email' => '1@example.com',
- ]);
- $team = Team::create([
- 'name' => '1@example.com',
- 'personal_team' => false,
- 'show_boarding' => true,
- ]);
- $user->teams()->attach($team, ['role' => 'owner']);
-
- // User has 2 teams, 1 personal, 1 other where it is the owner and 1 other member is in the team
- $user = User::factory()->create([
- 'name' => 'owner: 1 personal, 1 other team, owner, 1 other member',
- 'email' => '2@example.com',
- ]);
- $team = Team::create([
- 'name' => '2@example.com',
- 'personal_team' => false,
- 'show_boarding' => true,
- ]);
- $user->teams()->attach($team, ['role' => 'owner']);
- $user = User::factory()->create([
- 'name' => 'member: 1 personal, 1 other team, owner, 1 other member',
- 'email' => '3@example.com',
- ]);
- $team->members()->attach($user, ['role' => 'member']);
- }
-}
From d9248508b48cc0966f9b7714ee0aac351b36c3ba Mon Sep 17 00:00:00 2001
From: peaklabs-dev <122374094+peaklabs-dev@users.noreply.github.com>
Date: Mon, 9 Dec 2024 12:00:54 +0100
Subject: [PATCH 13/80] chore: remove unused waitlist stuff
---
app/Console/Commands/WaitlistInvite.php | 114 ------------------
app/Http/Controllers/Webhook/Waitlist.php | 63 ----------
app/Jobs/SendConfirmationForWaitlistJob.php | 37 ------
app/Livewire/Waitlist/Index.php | 70 -----------
app/Models/Waitlist.php | 12 --
bootstrap/helpers/subscriptions.php | 1 -
config/constants.php | 5 -
...2024_12_09_105711_drop_waitlists_table.php | 31 +++++
.../emails/waitlist-confirmation.blade.php | 7 --
.../views/livewire/waitlist/index.blade.php | 37 ------
routes/webhooks.php | 4 -
11 files changed, 31 insertions(+), 350 deletions(-)
delete mode 100644 app/Console/Commands/WaitlistInvite.php
delete mode 100644 app/Http/Controllers/Webhook/Waitlist.php
delete mode 100755 app/Jobs/SendConfirmationForWaitlistJob.php
delete mode 100644 app/Livewire/Waitlist/Index.php
delete mode 100644 app/Models/Waitlist.php
create mode 100644 database/migrations/2024_12_09_105711_drop_waitlists_table.php
delete mode 100644 resources/views/emails/waitlist-confirmation.blade.php
delete mode 100644 resources/views/livewire/waitlist/index.blade.php
diff --git a/app/Console/Commands/WaitlistInvite.php b/app/Console/Commands/WaitlistInvite.php
deleted file mode 100644
index 2e330068c..000000000
--- a/app/Console/Commands/WaitlistInvite.php
+++ /dev/null
@@ -1,114 +0,0 @@
-option('people');
- for ($i = 0; $i < $people; $i++) {
- $this->main();
- }
- }
-
- private function main()
- {
- if ($this->argument('email')) {
- if ($this->option('only-email')) {
- $this->next_patient = User::whereEmail($this->argument('email'))->first();
- $this->password = Str::password();
- $this->next_patient->update([
- 'password' => Hash::make($this->password),
- 'force_password_reset' => true,
- ]);
- } else {
- $this->next_patient = Waitlist::where('email', $this->argument('email'))->first();
- }
- if (! $this->next_patient) {
- $this->error("{$this->argument('email')} not found in the waitlist.");
-
- return;
- }
- } else {
- $this->next_patient = Waitlist::orderBy('created_at', 'asc')->where('verified', true)->first();
- }
- if ($this->next_patient) {
- if ($this->option('only-email')) {
- $this->send_email();
-
- return;
- }
- $this->register_user();
- $this->remove_from_waitlist();
- $this->send_email();
- } else {
- $this->info('No verified user found in the waitlist. 👀');
- }
- }
-
- private function register_user()
- {
- $already_registered = User::whereEmail($this->next_patient->email)->first();
- if (! $already_registered) {
- $this->password = Str::password();
- User::create([
- 'name' => str($this->next_patient->email)->before('@'),
- 'email' => $this->next_patient->email,
- 'password' => Hash::make($this->password),
- 'force_password_reset' => true,
- ]);
- $this->info("User registered ({$this->next_patient->email}) successfully. 🎉");
- } else {
- throw new \Exception('User already registered');
- }
- }
-
- private function remove_from_waitlist()
- {
- $this->next_patient->delete();
- $this->info('User removed from waitlist successfully.');
- }
-
- private function send_email()
- {
- $token = Crypt::encryptString("{$this->next_patient->email}@@@$this->password");
- $loginLink = route('auth.link', ['token' => $token]);
- $mail = new MailMessage;
- $mail->view('emails.waitlist-invitation', [
- 'loginLink' => $loginLink,
- ]);
- $mail->subject('Congratulations! You are invited to join Coolify Cloud.');
- send_user_an_email($mail, $this->next_patient->email);
- $this->info('Email sent successfully. 📧');
- }
-}
diff --git a/app/Http/Controllers/Webhook/Waitlist.php b/app/Http/Controllers/Webhook/Waitlist.php
deleted file mode 100644
index dec8ca72d..000000000
--- a/app/Http/Controllers/Webhook/Waitlist.php
+++ /dev/null
@@ -1,63 +0,0 @@
-get('email');
- $confirmation_code = request()->get('confirmation_code');
- try {
- $found = ModelsWaitlist::where('uuid', $confirmation_code)->where('email', $email)->first();
- if ($found) {
- if (! $found->verified) {
- if ($found->created_at > now()->subMinutes(config('constants.waitlist.expiration'))) {
- $found->verified = true;
- $found->save();
- send_internal_notification('Waitlist confirmed: '.$email);
-
- return 'Thank you for confirming your email address. We will notify you when you are next in line.';
- } else {
- $found->delete();
- send_internal_notification('Waitlist expired: '.$email);
-
- return 'Your confirmation code has expired. Please sign up again.';
- }
- }
- }
-
- return redirect()->route('dashboard');
- } catch (Exception $e) {
- send_internal_notification('Waitlist confirmation failed: '.$e->getMessage());
-
- return redirect()->route('dashboard');
- }
- }
-
- public function cancel(Request $request)
- {
- $email = request()->get('email');
- $confirmation_code = request()->get('confirmation_code');
- try {
- $found = ModelsWaitlist::where('uuid', $confirmation_code)->where('email', $email)->first();
- if ($found && ! $found->verified) {
- $found->delete();
- send_internal_notification('Waitlist cancelled: '.$email);
-
- return 'Your email address has been removed from the waitlist.';
- }
-
- return redirect()->route('dashboard');
- } catch (Exception $e) {
- send_internal_notification('Waitlist cancellation failed: '.$e->getMessage());
-
- return redirect()->route('dashboard');
- }
- }
-}
diff --git a/app/Jobs/SendConfirmationForWaitlistJob.php b/app/Jobs/SendConfirmationForWaitlistJob.php
deleted file mode 100755
index 7af8205fc..000000000
--- a/app/Jobs/SendConfirmationForWaitlistJob.php
+++ /dev/null
@@ -1,37 +0,0 @@
-email.'&confirmation_code='.$this->uuid;
- $cancel_url = base_url().'/webhooks/waitlist/cancel?email='.$this->email.'&confirmation_code='.$this->uuid;
- $mail->view('emails.waitlist-confirmation',
- [
- 'confirmation_url' => $confirmation_url,
- 'cancel_url' => $cancel_url,
- ]);
- $mail->subject('You are on the waitlist!');
- send_user_an_email($mail, $this->email);
- } catch (\Throwable $e) {
- send_internal_notification("SendConfirmationForWaitlistJob failed for {$this->email} with error: ".$e->getMessage());
- throw $e;
- }
- }
-}
diff --git a/app/Livewire/Waitlist/Index.php b/app/Livewire/Waitlist/Index.php
deleted file mode 100644
index 0524b495c..000000000
--- a/app/Livewire/Waitlist/Index.php
+++ /dev/null
@@ -1,70 +0,0 @@
- 'required|email',
- ];
-
- public function render()
- {
- return view('livewire.waitlist.index')->layout('layouts.simple');
- }
-
- public function mount()
- {
- if (config('constants.waitlist.enabled') == false) {
- return redirect()->route('register');
- }
- $this->waitingInLine = Waitlist::whereVerified(true)->count();
- $this->users = User::count();
- if (isDev()) {
- $this->email = 'waitlist@example.com';
- }
- }
-
- public function submit()
- {
- $this->validate();
- try {
- $already_registered = User::whereEmail($this->email)->first();
- if ($already_registered) {
- throw new \Exception('You are already on the waitlist or registered.
Please check your email to verify your email address or contact support.');
- }
- $found = Waitlist::where('email', $this->email)->first();
- if ($found) {
- if (! $found->verified) {
- $this->dispatch('error', 'You are already on the waitlist.
Please check your email to verify your email address.');
-
- return;
- }
- $this->dispatch('error', 'You are already on the waitlist.
You will be notified when your turn comes.
Thank you.');
-
- return;
- }
- $waitlist = Waitlist::create([
- 'email' => Str::lower($this->email),
- 'type' => 'registration',
- ]);
-
- $this->dispatch('success', 'Check your email to verify your email address.');
- dispatch(new SendConfirmationForWaitlistJob($this->email, $waitlist->uuid));
- } catch (\Throwable $e) {
- return handleError($e, $this);
- }
- }
-}
diff --git a/app/Models/Waitlist.php b/app/Models/Waitlist.php
deleted file mode 100644
index 28e5f01fd..000000000
--- a/app/Models/Waitlist.php
+++ /dev/null
@@ -1,12 +0,0 @@
- [
- 'enabled' => env('WAITLIST', false),
- 'expiration' => 10,
- ],
-
'sentry' => [
'sentry_dsn' => env('SENTRY_DSN'),
],
diff --git a/database/migrations/2024_12_09_105711_drop_waitlists_table.php b/database/migrations/2024_12_09_105711_drop_waitlists_table.php
new file mode 100644
index 000000000..0e319369d
--- /dev/null
+++ b/database/migrations/2024_12_09_105711_drop_waitlists_table.php
@@ -0,0 +1,31 @@
+id();
+ $table->string('uuid');
+ $table->string('type');
+ $table->string('email')->unique();
+ $table->boolean('verified')->default(false);
+ $table->timestamps();
+ });
+ }
+};
diff --git a/resources/views/emails/waitlist-confirmation.blade.php b/resources/views/emails/waitlist-confirmation.blade.php
deleted file mode 100644
index afd22916a..000000000
--- a/resources/views/emails/waitlist-confirmation.blade.php
+++ /dev/null
@@ -1,7 +0,0 @@
-