diff --git a/backend/app/Http/Controllers/FiturController.php b/backend/app/Http/Controllers/FiturController.php
index e69164b..cf47f3a 100644
--- a/backend/app/Http/Controllers/FiturController.php
+++ b/backend/app/Http/Controllers/FiturController.php
@@ -21,11 +21,13 @@ class FiturController extends Controller
$request->validate([
'deskripsi' => 'required|string|max:255',
'harga' => 'required|numeric|min:0',
+ 'kategori_fitur_id' => 'required|exists:kategori_fitur,id',
]);
Fitur::create([
'deskripsi' => $request->deskripsi,
'harga' => $request->harga,
+ 'kategori_fitur_id' => $request->kategori_fitur_id,
]);
return redirect()->route('admin.fitur.index')->with('success', 'Fitur berhasil ditambahkan');
diff --git a/backend/app/Http/Controllers/KategoriFiturController.php b/backend/app/Http/Controllers/KategoriFiturController.php
new file mode 100644
index 0000000..ad00fe5
--- /dev/null
+++ b/backend/app/Http/Controllers/KategoriFiturController.php
@@ -0,0 +1,54 @@
+validate([
+ 'deskripsi' => 'required|string|max:255',
+ ]);
+
+ KategoriFitur::create($request->all());
+
+ return redirect()->route('admin.kategori_fitur.index')->with('success', 'Kategori Fitur berhasil ditambahkan');
+ }
+
+ public function edit(KategoriFitur $kategori_fitur)
+ {
+ return view('admin.kategori_fitur.edit', compact('kategori_fitur'));
+ }
+
+ public function update(Request $request, KategoriFitur $kategori_fitur)
+ {
+ $request->validate([
+ 'deskripsi' => 'required|string|max:255',
+ ]);
+
+ $kategori_fitur->update($request->all());
+
+ return redirect()->route('admin.kategori_fitur.index')->with('success', 'Kategori Fitur berhasil diperbarui');
+ }
+
+ public function destroy(KategoriFitur $kategori_fitur)
+ {
+ $kategori_fitur->delete();
+
+ return redirect()->route('admin.kategori_fitur.index')->with('success', 'Kategori Fitur berhasil dihapus');
+ }
+}
diff --git a/backend/app/Models/Fitur.php b/backend/app/Models/Fitur.php
index 083086b..d473d97 100644
--- a/backend/app/Models/Fitur.php
+++ b/backend/app/Models/Fitur.php
@@ -2,13 +2,18 @@
namespace App\Models;
+use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
- class Fitur extends Model
-{
- protected $fillable = ['deskripsi', 'harga'];
- public function templates()
- {
- return $this->belongsToMany(Template::class, 'fitur_template');
- }
-}
\ No newline at end of file
+class Fitur extends Model
+{
+ use HasFactory;
+
+ protected $table = 'fiturs';
+
+ protected $fillable = [
+ 'deskripsi',
+ 'harga',
+ 'kategori_fitur_id',
+ ];
+}
diff --git a/backend/app/Models/KategoriFitur.php b/backend/app/Models/KategoriFitur.php
new file mode 100644
index 0000000..b66d7b6
--- /dev/null
+++ b/backend/app/Models/KategoriFitur.php
@@ -0,0 +1,17 @@
+id();
+ $table->string('deskripsi');
+ $table->timestamps();
+ });
+ }
+
+ public function down(): void
+ {
+ Schema::dropIfExists('kategori_fitur');
+ }
+};
diff --git a/backend/database/migrations/2025_09_17_080254_add_kategori_fitur_id_to_fitur_table.php b/backend/database/migrations/2025_09_17_080254_add_kategori_fitur_id_to_fitur_table.php
new file mode 100644
index 0000000..5aaed47
--- /dev/null
+++ b/backend/database/migrations/2025_09_17_080254_add_kategori_fitur_id_to_fitur_table.php
@@ -0,0 +1,25 @@
+unsignedBigInteger('kategori_fitur_id')->nullable()->after('id');
+ $table->foreign('kategori_fitur_id')->references('id')->on('kategori_fitur')->onDelete('cascade');
+ });
+}
+
+public function down()
+{
+ Schema::table('fiturs', function (Blueprint $table) {
+ $table->dropForeign(['kategori_fitur_id']);
+ $table->dropColumn('kategori_fitur_id');
+ });
+}
+
+};
diff --git a/backend/resources/views/admin/fitur/index.blade.php b/backend/resources/views/admin/fitur/index.blade.php
index a420b4a..9751910 100644
--- a/backend/resources/views/admin/fitur/index.blade.php
+++ b/backend/resources/views/admin/fitur/index.blade.php
@@ -42,8 +42,9 @@
@@ -53,6 +54,9 @@
Nomor
- Fitur
- Harga
+ Kategori Fitur
+ Fitur
+ Harga
Aksi
| ID | +Deskripsi | +Aksi | +
|---|---|---|
| {{ $item->id }} | +{{ $item->deskripsi }} | ++ Edit + + | +