Core UI updates for helpdesk
This commit is contained in:
+76
@@ -0,0 +1,76 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Add single-board ticket assignment and board ownership.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
if (Schema::hasTable('helpdesk_kanban_boards') && ! Schema::hasColumn('helpdesk_kanban_boards', 'owner_id')) {
|
||||
Schema::table('helpdesk_kanban_boards', static function (Blueprint $table): void {
|
||||
$table->foreignId('owner_id')
|
||||
->nullable()
|
||||
->after('description')
|
||||
->constrained('users')
|
||||
->nullOnDelete();
|
||||
|
||||
$table->index('owner_id');
|
||||
});
|
||||
}
|
||||
|
||||
if (Schema::hasTable('helpdesk_tickets') && ! Schema::hasColumn('helpdesk_tickets', 'board_id')) {
|
||||
Schema::table('helpdesk_tickets', static function (Blueprint $table): void {
|
||||
$table->foreignId('board_id')
|
||||
->nullable()
|
||||
->after('status_id')
|
||||
->constrained('helpdesk_kanban_boards')
|
||||
->nullOnDelete();
|
||||
|
||||
$table->index(['board_id', 'status_id']);
|
||||
});
|
||||
}
|
||||
|
||||
if (Schema::hasTable('helpdesk_tickets') && Schema::hasTable('helpdesk_kanban_boards') && Schema::hasColumn('helpdesk_tickets', 'board_id')) {
|
||||
$defaultBoardId = DB::table('helpdesk_kanban_boards')
|
||||
->where('is_default', true)
|
||||
->orderBy('sort_order')
|
||||
->value('id') ?: DB::table('helpdesk_kanban_boards')->orderBy('sort_order')->value('id');
|
||||
|
||||
if ($defaultBoardId !== null) {
|
||||
DB::table('helpdesk_tickets')
|
||||
->whereNull('board_id')
|
||||
->update(['board_id' => $defaultBoardId]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migration.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
if (Schema::hasTable('helpdesk_tickets') && Schema::hasColumn('helpdesk_tickets', 'board_id')) {
|
||||
Schema::table('helpdesk_tickets', static function (Blueprint $table): void {
|
||||
$table->dropForeign(['board_id']);
|
||||
$table->dropIndex(['board_id', 'status_id']);
|
||||
$table->dropColumn('board_id');
|
||||
});
|
||||
}
|
||||
|
||||
if (Schema::hasTable('helpdesk_kanban_boards') && Schema::hasColumn('helpdesk_kanban_boards', 'owner_id')) {
|
||||
Schema::table('helpdesk_kanban_boards', static function (Blueprint $table): void {
|
||||
$table->dropForeign(['owner_id']);
|
||||
$table->dropIndex(['owner_id']);
|
||||
$table->dropColumn('owner_id');
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user