DONE: feedback module, use permission name for notification
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
// Create ENUM types for PostgreSQL
|
||||
DB::statement("CREATE TYPE feedback_type_enum AS ENUM ('bug', 'feature_request', 'general_feedback', 'ui_issue', 'performance_issue')");
|
||||
DB::statement("CREATE TYPE feedback_priority_enum AS ENUM ('low', 'medium', 'high', 'critical')");
|
||||
DB::statement("CREATE TYPE feedback_status_enum AS ENUM ('open', 'in_progress', 'resolved', 'closed', 'rejected')");
|
||||
|
||||
Schema::create('feedback', function (Blueprint $table) {
|
||||
$table->uuid('id')->primary();
|
||||
$table->foreignUuid('user_id')->nullable()->constrained('users')->nullOnDelete();
|
||||
$table->string('title');
|
||||
$table->text('description');
|
||||
$table->string('page_url')->nullable(); // URL where the issue occurred
|
||||
$table->json('browser_info')->nullable(); // Browser, OS, screen resolution etc.
|
||||
$table->text('steps_to_reproduce')->nullable(); // Steps to reproduce the issue
|
||||
$table->text('expected_behavior')->nullable(); // What should happen
|
||||
$table->text('actual_behavior')->nullable(); // What actually happened
|
||||
$table->text('additional_notes')->nullable(); // Any additional information
|
||||
$table->foreignUuid('assigned_to')->nullable()->constrained('users')->nullOnDelete();
|
||||
$table->text('admin_notes')->nullable(); // Internal notes for admins
|
||||
$table->timestamp('resolved_at')->nullable();
|
||||
$table->timestamps();
|
||||
$table->softDeletes();
|
||||
});
|
||||
|
||||
// Add ENUM columns
|
||||
DB::statement("ALTER TABLE feedback ADD COLUMN type feedback_type_enum NOT NULL DEFAULT 'general_feedback'");
|
||||
DB::statement("ALTER TABLE feedback ADD COLUMN priority feedback_priority_enum NOT NULL DEFAULT 'medium'");
|
||||
DB::statement("ALTER TABLE feedback ADD COLUMN status feedback_status_enum NOT NULL DEFAULT 'open'");
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::dropIfExists('feedback');
|
||||
DB::statement("DROP TYPE IF EXISTS feedback_type_enum");
|
||||
DB::statement("DROP TYPE IF EXISTS feedback_priority_enum");
|
||||
DB::statement("DROP TYPE IF EXISTS feedback_status_enum");
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,16 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Feedback\Database\Seeders;
|
||||
|
||||
use Illuminate\Database\Seeder;
|
||||
|
||||
class FeedbackDatabaseSeeder extends Seeder
|
||||
{
|
||||
/**
|
||||
* Run the database seeds.
|
||||
*/
|
||||
public function run(): void
|
||||
{
|
||||
// $this->call([]);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user