diff --git a/database/migrations/2025_07_10_015510_add_multi_account_to_request_type_enum_to_print_stetement_logs_table.php b/database/migrations/2025_07_10_015510_add_multi_account_to_request_type_enum_to_print_stetement_logs_table.php index b2df4d5..0af03c9 100644 --- a/database/migrations/2025_07_10_015510_add_multi_account_to_request_type_enum_to_print_stetement_logs_table.php +++ b/database/migrations/2025_07_10_015510_add_multi_account_to_request_type_enum_to_print_stetement_logs_table.php @@ -1,30 +1,76 @@ enum('request_type', ['multi_account'])->change(); - }); + DB::beginTransaction(); + + try { + // Hapus constraint enum yang lama jika ada + DB::statement("ALTER TABLE print_statement_logs DROP CONSTRAINT IF EXISTS print_statement_logs_request_type_check"); + + // Ubah kolom menjadi varchar + Schema::table('print_statement_logs', function (Blueprint $table) { + $table->string('request_type', 50)->change(); + }); + + // Tambahkan constraint check baru dengan multi_account + DB::statement(" + ALTER TABLE print_statement_logs + ADD CONSTRAINT print_statement_logs_request_type_check + CHECK (request_type IN ('single_account', 'branch', 'all_branches', 'multi_account')) + "); + + DB::commit(); + Log::info('Migration berhasil: request_type sekarang mendukung multi_account'); + + } catch (\Exception $e) { + DB::rollback(); + Log::error('Migration gagal: ' . $e->getMessage()); + throw $e; + } } - /** - * Reverse the migrations. + * Membalikkan migrasi + * + * @return void */ public function down(): void { - Schema::table('print_stetement_logs', function (Blueprint $table) { - $table->enum('request_type', ['single_account', 'branch', 'all_branch'])->change(); - }); + DB::beginTransaction(); + + try { + // Hapus constraint yang baru + DB::statement("ALTER TABLE print_statement_logs DROP CONSTRAINT IF EXISTS print_statement_logs_request_type_check"); + + // Kembalikan constraint lama tanpa multi_account + DB::statement(" + ALTER TABLE print_statement_logs + ADD CONSTRAINT print_statement_logs_request_type_check + CHECK (request_type IN ('single_account', 'branch', 'all_branches')) + "); + + DB::commit(); + Log::info('Migration rollback berhasil: multi_account dihapus dari request_type'); + + } catch (\Exception $e) { + DB::rollback(); + Log::error('Migration rollback gagal: ' . $e->getMessage()); + throw $e; + } } };