diff --git a/app/Http/Controllers/Backend/Courses/CourseController.php b/app/Http/Controllers/Backend/Courses/CourseController.php index 460d0fd..2fcf67c 100644 --- a/app/Http/Controllers/Backend/Courses/CourseController.php +++ b/app/Http/Controllers/Backend/Courses/CourseController.php @@ -104,7 +104,8 @@ public function update(Request $request, $id) $course->price = $request->coursePrice; $course->subscription_price = $request->subscriptionPrice; $course->difficulty = $request->courseDifficulty; - $course->prerequisites = $request->prerequisites; + $course->prerequisites_en = $request->prerequisites_en; + $course->prerequisites_bn = $request->prerequisites_bn; $course->status = $request->status; $course->language = 'en'; diff --git a/database/migrations/2023_11_26_153735_create_reviews_table.php b/database/migrations/2023_11_26_153735_create_reviews_table.php index c8c0cbe..8401ccd 100644 --- a/database/migrations/2023_11_26_153735_create_reviews_table.php +++ b/database/migrations/2023_11_26_153735_create_reviews_table.php @@ -13,7 +13,15 @@ public function up(): void { Schema::create('reviews', function (Blueprint $table) { $table->id(); + $table->unsignedBigInteger('student_id')->index(); + $table->unsignedBigInteger('course_id')->index(); + $table->integer('rating'); + $table->text('comment')->nullable(); $table->timestamps(); + $table->softDeletes(); + + $table->foreign('student_id')->references('id')->on('students')->onDelete('cascade'); + $table->foreign('course_id')->references('id')->on('courses')->onDelete('cascade'); }); } diff --git a/database/migrations/2023_11_26_153754_create_payments_table.php b/database/migrations/2023_11_26_153754_create_payments_table.php index d7c31e5..bdd7a28 100644 --- a/database/migrations/2023_11_26_153754_create_payments_table.php +++ b/database/migrations/2023_11_26_153754_create_payments_table.php @@ -13,7 +13,18 @@ public function up(): void { Schema::create('payments', function (Blueprint $table) { $table->id(); + $table->unsignedBigInteger('student_id')->index(); + $table->unsignedBigInteger('course_id')->index(); + $table->decimal('amount', 10, 2)->nullable(false); + $table->timestamp('payment_date')->useCurrent(); + $table->string('payment_method'); + $table->string('transaction_id'); + $table->enum('status', ['success', 'pending', 'failed'])->default('pending'); $table->timestamps(); + $table->softDeletes(); + + $table->foreign('student_id')->references('id')->on('students')->onDelete('cascade'); + $table->foreign('course_id')->references('id')->on('courses')->onDelete('cascade'); }); } diff --git a/database/migrations/2023_11_26_153818_create_subscriptions_table.php b/database/migrations/2023_11_26_153818_create_subscriptions_table.php index eed16ea..0b87ce6 100644 --- a/database/migrations/2023_11_26_153818_create_subscriptions_table.php +++ b/database/migrations/2023_11_26_153818_create_subscriptions_table.php @@ -13,7 +13,17 @@ public function up(): void { Schema::create('subscriptions', function (Blueprint $table) { $table->id(); + $table->unsignedBigInteger('student_id')->index(); + $table->unsignedBigInteger('course_id')->index(); + $table->enum('plan', ['monthly', 'yearly'])->nullable(false); + $table->timestamp('start_date')->useCurrent(); + $table->timestamp('end_date')->nullable(); + $table->enum('status', ['active', 'canceled', 'expired'])->default('active'); $table->timestamps(); + $table->softDeletes(); + + $table->foreign('student_id')->references('id')->on('students')->onDelete('cascade'); + $table->foreign('course_id')->references('id')->on('courses')->onDelete('cascade'); }); } diff --git a/database/migrations/2023_11_26_153844_create_progress_table.php b/database/migrations/2023_11_26_153844_create_progress_table.php index 02bf3b8..e40067f 100644 --- a/database/migrations/2023_11_26_153844_create_progress_table.php +++ b/database/migrations/2023_11_26_153844_create_progress_table.php @@ -13,7 +13,18 @@ public function up(): void { Schema::create('progress', function (Blueprint $table) { $table->id(); + $table->unsignedBigInteger('student_id')->index(); + $table->unsignedBigInteger('course_id')->index(); + $table->integer('progress_percentage')->default(0); + $table->boolean('completed')->default(false); + $table->unsignedBigInteger('last_viewed_material_id')->index()->nullable(); + $table->timestamp('last_viewed_at')->nullable(); $table->timestamps(); + $table->softDeletes(); + + $table->foreign('student_id')->references('id')->on('students')->onDelete('cascade'); + $table->foreign('course_id')->references('id')->on('courses')->onDelete('cascade'); + $table->foreign('last_viewed_material_id')->references('id')->on('materials')->onDelete('cascade'); }); } diff --git a/database/migrations/2023_11_26_153902_create_discussions_table.php b/database/migrations/2023_11_26_153902_create_discussions_table.php index e1f52e6..f7f0379 100644 --- a/database/migrations/2023_11_26_153902_create_discussions_table.php +++ b/database/migrations/2023_11_26_153902_create_discussions_table.php @@ -13,7 +13,15 @@ public function up(): void { Schema::create('discussions', function (Blueprint $table) { $table->id(); + $table->unsignedBigInteger('user_id')->index(); + $table->unsignedBigInteger('course_id')->index(); + $table->string('title', 255)->nullable(false); + $table->text('content'); $table->timestamps(); + $table->softDeletes(); + + $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade'); + $table->foreign('course_id')->references('id')->on('courses')->onDelete('cascade'); }); } diff --git a/database/migrations/2023_11_26_153916_create_messages_table.php b/database/migrations/2023_11_26_153916_create_messages_table.php index c82dd59..3ff9a8c 100644 --- a/database/migrations/2023_11_26_153916_create_messages_table.php +++ b/database/migrations/2023_11_26_153916_create_messages_table.php @@ -13,7 +13,14 @@ public function up(): void { Schema::create('messages', function (Blueprint $table) { $table->id(); + $table->unsignedBigInteger('sender_id')->index(); + $table->unsignedBigInteger('receiver_id')->index(); + $table->text('content'); $table->timestamps(); + $table->softDeletes(); + + $table->foreign('sender_id')->references('id')->on('users')->onDelete('cascade'); + $table->foreign('receiver_id')->references('id')->on('users')->onDelete('cascade'); }); } diff --git a/resources/views/backend/course/index.blade.php b/resources/views/backend/course/index.blade.php index be1c823..1e4d101 100644 --- a/resources/views/backend/course/index.blade.php +++ b/resources/views/backend/course/index.blade.php @@ -64,7 +64,7 @@