My App

Paket Layanan (Admin)

Panduan untuk admin dalam melihat, membuat, mengedit, mengarsip, dan menghapus paket layanan yang ditawarkan ke penulis.

Paket Layanan (Admin)

Halaman Paket Layanan di panel admin digunakan untuk mengelola paket penerbitan yang ditawarkan ke penulis. Dari sini admin bisa:

  • Melihat daftar semua paket layanan yang tersedia.
  • Mencari paket berdasarkan nama atau deskripsi.
  • Menambahkan paket layanan baru.
  • Mengedit paket layanan yang sudah ada.
  • Mengarsip (menonaktifkan) paket yang sudah tidak dipakai.
  • Menghapus paket layanan secara permanen jika diperlukan.

Halaman ini mendukung kerja sama dengan modul lain, misalnya saat penulis memilih paket terbit dari sisi portal penulis.


1. Halaman Daftar Paket Layanan

Menu Paket Layanan di sidebar admin mengarah ke halaman /dashboard/service-packages.

Di bagian atas terdapat:

  • Judul halaman: Paket Layanan.
  • Deskripsi singkat: Kelola paket layanan untuk aplikasi Anda.

Di bawahnya terdapat komponen utama berupa tabel daftar paket layanan.

1.1. Pencarian Paket

Di atas tabel terdapat baris kontrol dengan:

  • Kolom pencarian dengan ikon kaca pembesar.
  • Placeholder: Search service packages....
  • Pencarian ini bekerja pada nama paket dan deskripsi.

Admin cukup mengetik sebagian nama/teks deskripsi, sistem akan menyaring daftar setelah jeda singkat (debounce) sehingga tidak setiap ketikan langsung menembak server.

1.2. Tombol "Create New"

Di sisi kanan baris yang sama ada tombol:

  • "Create New"
    Menavigasi ke halaman /dashboard/service-packages/create untuk menambah paket baru.

2. Tabel Daftar Paket

Tabel menampilkan daftar paket layanan dalam bentuk baris-baris data. Struktur kolomnya didefinisikan di komponen internal (service-package-columns), namun secara konsep mencakup:

  • Nama Paket
    Nama yang akan ditampilkan ke penulis (misalnya: Paket Basic, Paket Premium).

  • Deskripsi Singkat
    Penjelasan singkat mengenai isi paket.

  • Durasi (hari)
    Berapa hari paket ini berlaku setelah diaktifkan.

  • Status Aktif / Tidak Aktif
    Menunjukkan apakah paket dapat dipilih/digunakan saat ini atau sudah dinonaktifkan.

  • Aksi
    Berisi tombol Edit dan Delete untuk setiap baris.

2.1. Loading & Data Kosong

  • Saat data masih dimuat, tabel akan menampilkan satu baris dengan teks "Loading...".
  • Jika setelah pencarian/filter tidak ada data yang cocok, tabel menampilkan baris dengan teks "No results.".

2.2. Pagination

Di bawah tabel terdapat kontrol pagination standar:

  • Menampilkan halaman saat ini dan jumlah halaman.
  • Admin dapat berpindah halaman dan mengubah jumlah baris per halaman.

Semua ini terhubung ke backend: ketika admin berpindah halaman atau mengubah batas tampilan, sistem akan mengambil data ulang sesuai parameter baru.


3. Membuat Paket Layanan Baru

Halaman pembuatan paket dapat diakses melalui:

  • Tombol "Create New" di halaman daftar, yang mengarah ke /dashboard/service-packages/create.

Di halaman ini admin akan melihat:

  • Judul: Create Service Package.
  • Deskripsi: Add a new service package to your application.
  • Formulir ServicePackageForm untuk mengisi detail paket.

3.1. Field yang Harus Diisi

Formulir pembuatan paket berisi beberapa field berikut:

  • Name
    Nama paket layanan. Wajib diisi, dengan panjang minimum dan maksimum tertentu.

  • Description
    Deskripsi paket. Wajib diisi, cukup panjang untuk menjelaskan isi paket.

  • Features
    Daftar fitur paket, diisi sebagai beberapa baris teks:

    • Setiap baris mewakili satu fitur.
    • Admin bisa menambah baris fitur baru (Add Feature).
    • Admin juga bisa menghapus baris fitur selama masih ada minimal satu baris.
  • Duration (Days)
    Lama masa berlaku paket dalam satuan hari. Harus berupa angka bulat minimal 1.

  • WhatsApp Link (opsional)
    Tautan WhatsApp terkait paket ini. Contoh: https://wa.me/6281234567890?text=Halo,%20saya%20tertarik%20dengan%20paket%20ini.

  • Active
    Switch untuk menentukan apakah paket aktif atau tidak aktif.

    • Aktif: paket siap digunakan di modul lain (misalnya pemesanan paket di portal penulis).
    • Tidak aktif: paket dianggap tidak tampil/terpakai untuk alur normal.

3.2. Proses Simpan

Ketika admin menekan tombol "Create Package":

  1. Sistem akan memvalidasi semua field.
  2. Fitur (features) akan digabung menjadi satu teks dengan pemisah baris.
  3. Data akan dikirim ke endpoint backend /admin/service-packages.
  4. Jika berhasil:
    • Muncul notifikasi sukses.
    • Admin otomatis diarahkan kembali ke halaman daftar paket.
  5. Jika gagal:
    • Muncul notifikasi error dengan pesan yang relevan.

4. Mengedit Paket Layanan

Untuk mengedit paket yang sudah ada, admin bisa:

  • Dari tabel daftar, klik tombol Edit di kolom aksi.
  • Ini akan membuka halaman /dashboard/service-packages/edit?id={id}.

Di halaman edit, admin akan melihat:

  • Judul: Edit: {Nama Paket}.
  • Deskripsi: Edit an existing service package.
  • Form yang sama seperti saat create, tetapi sudah terisi data paket tersebut.
  • Tombol Arsip di kanan atas untuk menonaktifkan paket.

4.1. Mengubah Detail Paket

Admin bisa mengubah:

  • Nama paket.
  • Deskripsi.
  • Daftar fitur (tambah/hapus/ubah isi baris fitur).
  • Durasi dalam hari.
  • Status aktif/tidak aktif.
  • Tautan WhatsApp.

Saat menekan "Update Package":

  1. Perubahan akan dikirim ke endpoint /admin/service-packages/{id}.
  2. Jika berhasil, admin akan mendapatkan notifikasi bahwa paket berhasil diperbarui.
  3. Admin kemudian diarahkan kembali ke halaman daftar.

4.2. Mengarsip Paket Layanan

Di halaman edit terdapat tombol "Arsip" yang fungsinya:

  • Menandai paket sebagai tidak aktif (bukan menghapus dari database).
  • Setelah dikonfirmasi melalui dialog, sistem akan mengubah status paket sehingga tidak lagi dianggap paket aktif.

Ini berguna jika paket sudah tidak ingin ditawarkan lagi, tetapi riwayatnya tetap ingin disimpan.


5. Menghapus Paket Layanan

Selain mengarsip paket, admin juga memiliki opsi Delete langsung dari halaman daftar:

  • Di kolom aksi tabel, terdapat tombol Delete.
  • Ketika diklik, akan muncul dialog konfirmasi yang menjelaskan bahwa tindakan ini tidak dapat dibatalkan.

Jika admin menekan konfirmasi:

  1. Sistem memanggil endpoint /admin/service-packages/{id} dengan metode DELETE.
  2. Jika berhasil:
    • Paket benar-benar dihapus dari sistem.
    • Daftar paket akan dimuat ulang tanpa paket tersebut.
  3. Jika gagal:
    • Muncul pesan error, dan paket tetap ada.

Catatan:

  • Gunakan Arsip jika hanya ingin menyembunyikan paket dari alur normal tetapi masih menyimpan datanya.
  • Gunakan Delete hanya jika benar-benar yakin paket tidak diperlukan lagi dan bisa dihapus permanen.

6. Hubungan Paket Layanan dengan Modul Lain

Meskipun halaman ini fokus ke pengelolaan paket itu sendiri, data paket layanan biasanya dipakai oleh modul lain, misalnya:

  • Portal Penulis (Author) – ketika penulis memilih paket penerbitan di halaman pembelian paket.
  • Detail Penulis (Admin) – untuk melihat paket apa saja yang pernah diberikan kepada penulis tertentu.

Dengan mengelola paket layanan dengan rapi (aktif/nonaktif, deskripsi jelas, fitur tertata), admin membantu memastikan pengalaman penulis saat memilih paket menjadi lebih terarah dan tidak membingungkan.