diff --git a/app/Enums/PriceRequestStatus.php b/app/Enums/PriceRequestStatus.php
deleted file mode 100644
index 00e5b0e..0000000
--- a/app/Enums/PriceRequestStatus.php
+++ /dev/null
@@ -1,33 +0,0 @@
- 'Menunggu',
- self::APPROVED => 'Disetujui',
- self::REJECTED => 'Ditolak',
- };
- }
-
- public function color(): string
- {
- return match ($this) {
- self::PENDING => 'gray',
- self::APPROVED => 'emerald',
- self::REJECTED => 'red',
- };
- }
-}
diff --git a/app/Livewire/Datatable/Catalog/BottlesTable.php b/app/Livewire/Datatable/Catalog/BottlesTable.php
index bac228e..42ec297 100644
--- a/app/Livewire/Datatable/Catalog/BottlesTable.php
+++ b/app/Livewire/Datatable/Catalog/BottlesTable.php
@@ -3,13 +3,11 @@
namespace App\Livewire\Datatable\Catalog;
use App\Models\Bottle;
-use App\Models\PriceRequest;
use App\Traits\Datatable\WithConfiguration;
use App\Traits\Datatable\WithPrependColumn;
use App\Traits\Media\WithMediaHandler;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Facades\Blade;
-use Illuminate\Support\Str;
use Rappasoft\LaravelLivewireTables\DataTableComponent;
use Rappasoft\LaravelLivewireTables\Views\Column;
use Rappasoft\LaravelLivewireTables\Views\Columns\ArrayColumn;
@@ -25,12 +23,6 @@ class BottlesTable extends DataTableComponent
public function columns(): array
{
- $canSeePrice = PriceRequest::where('user_id', auth()->id())
- ->where('module', 'botol')
- ->approved()
- ->where('finalized_at', '>', now()->subMinute(10))
- ->exists();
-
return [
Column::make('Nama')
->label(function ($row) {
@@ -47,27 +39,6 @@ public function columns(): array
})
->html(),
- Column::make('Harga Beli', 'cost_price')
- ->label(function ($row) use ($canSeePrice) {
- if ($canSeePrice) {
- return formatCurrencyNumber($row->cost_price, 'Rp');
- }
-
- $masked = Str::mask(formatCurrencyNumber($row->cost_price, 'Rp'), '*', 2);
-
- return Blade::render('
-
-
- {{ $masked }}
-
-
- ', ['masked' => $masked]);
- })
- ->searchable()
- ->sortable()
- ->html()
- ->hideIf(! auth()->user()->hasRole(['Developer', 'Owner'])),
-
Column::make('Harga Jual', 'sale_price')
->label(fn ($row, $column) => formatCurrencyNumber($row->sale_price, 'Rp'))
->searchable()
diff --git a/app/Livewire/Datatable/Catalog/PerfumesTable.php b/app/Livewire/Datatable/Catalog/PerfumesTable.php
index 361e7cf..f15f53c 100644
--- a/app/Livewire/Datatable/Catalog/PerfumesTable.php
+++ b/app/Livewire/Datatable/Catalog/PerfumesTable.php
@@ -3,13 +3,11 @@
namespace App\Livewire\Datatable\Catalog;
use App\Models\Perfume;
-use App\Models\PriceRequest;
use App\Traits\Datatable\WithAppendColumn;
use App\Traits\Datatable\WithConfiguration;
use App\Traits\Datatable\WithPrependColumn;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Facades\Blade;
-use Illuminate\Support\Str;
use Rappasoft\LaravelLivewireTables\DataTableComponent;
use Rappasoft\LaravelLivewireTables\Views\Column;
use Rappasoft\LaravelLivewireTables\Views\Columns\ArrayColumn;
@@ -24,12 +22,6 @@ class PerfumesTable extends DataTableComponent
public function columns(): array
{
- $canSeePrice = PriceRequest::where('user_id', auth()->id())
- ->where('module', 'parfum')
- ->approved()
- ->where('finalized_at', '>', now()->subMinute(10))
- ->exists();
-
return [
Column::make('Nama')
->label(function ($row) {
@@ -57,27 +49,6 @@ public function columns(): array
->label(fn ($row, $column) => Blade::render(''.$row->concentration->label().''))
->html(),
- Column::make('Harga Beli', 'cost_price')
- ->label(function ($row) use ($canSeePrice) {
- if ($canSeePrice) {
- return formatCurrencyNumber($row->cost_price, 'Rp');
- }
-
- $masked = Str::mask(formatCurrencyNumber($row->cost_price, 'Rp'), '*', 2);
-
- return Blade::render('
-
-
- {{ $masked }}
-
-
- ', ['masked' => $masked]);
- })
- ->searchable()
- ->sortable()
- ->html()
- ->hideIf(! auth()->user()->hasRole(['Developer', 'Owner'])),
-
Column::make('Harga Jual', 'sale_price')
->label(fn ($row, $column) => formatCurrencyNumber($row->sale_price, 'Rp'))
->searchable()
diff --git a/app/Livewire/Datatable/Catalog/ProductsTable.php b/app/Livewire/Datatable/Catalog/ProductsTable.php
index ac160fa..3e349f5 100644
--- a/app/Livewire/Datatable/Catalog/ProductsTable.php
+++ b/app/Livewire/Datatable/Catalog/ProductsTable.php
@@ -2,14 +2,12 @@
namespace App\Livewire\Datatable\Catalog;
-use App\Models\PriceRequest;
use App\Models\Product;
use App\Traits\Datatable\WithAppendColumn;
use App\Traits\Datatable\WithConfiguration;
use App\Traits\Datatable\WithPrependColumn;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Facades\Blade;
-use Illuminate\Support\Str;
use Rappasoft\LaravelLivewireTables\DataTableComponent;
use Rappasoft\LaravelLivewireTables\Views\Column;
use Rappasoft\LaravelLivewireTables\Views\Columns\ArrayColumn;
@@ -24,12 +22,6 @@ class ProductsTable extends DataTableComponent
public function columns(): array
{
- $canSeePrice = PriceRequest::where('user_id', auth()->id())
- ->where('module', 'produk')
- ->approved()
- ->where('finalized_at', '>', now()->subMinute(10))
- ->exists();
-
return [
Column::make('Nama')
->label(function ($row) {
@@ -46,27 +38,6 @@ public function columns(): array
})
->html(),
- Column::make('Harga Beli', 'cost_price')
- ->label(function ($row) use ($canSeePrice) {
- if ($canSeePrice) {
- return formatCurrencyNumber($row->cost_price, 'Rp');
- }
-
- $masked = Str::mask(formatCurrencyNumber($row->cost_price, 'Rp'), '*', 2);
-
- return Blade::render('
-
-
- {{ $masked }}
-
-
- ', ['masked' => $masked]);
- })
- ->searchable()
- ->sortable()
- ->html()
- ->hideIf(! auth()->user()->hasRole(['Developer', 'Owner'])),
-
Column::make('Harga Jual', 'sale_price')
->label(fn ($row, $column) => formatCurrencyNumber($row->sale_price, 'Rp'))
->searchable()
diff --git a/app/Livewire/Datatable/Information/PriceRequestsTable.php b/app/Livewire/Datatable/Information/PriceRequestsTable.php
deleted file mode 100644
index 2394720..0000000
--- a/app/Livewire/Datatable/Information/PriceRequestsTable.php
+++ /dev/null
@@ -1,106 +0,0 @@
-searchable(),
-
- Column::make('module', 'module')
- ->format(fn ($row) => ucfirst($row))
- ->searchable(),
-
- Column::make('Status', 'status')
- ->label(fn ($row, $column) => Blade::render(''.$row->status->label().''))
- ->html(),
-
- Column::make('Tanggal')
- ->label(function ($row) {
- $startDate = formatDateLocalized($row->created_at);
- $startAgo = formatRelativeTime($row->created_at);
-
- $endDate = formatDateLocalized($row->finalized_at);
- $endAgo = formatRelativeTime($row->finalized_at);
-
- return <<
-
- Tgl Permohonan:
- {$startDate}
- ({$startAgo})
-
-
- Tgl Ditanggapi:
- {$endDate}
- ({$endAgo})
-
-
- HTML;
- })
- ->html(),
-
- Column::make('Aksi')
- ->label(function ($row) {
- $actions = '';
-
- if (auth()->user()->can('approve price request') && $row->status === PriceRequestStatus::PENDING) {
- $actions .= view('components.actions.table.confirm', [
- 'id' => $row->hash,
- 'message' => 'Pemohon yang diterima bisa melihat data harga beli.',
- 'confirmButtonText' => 'Ya, Terima',
- 'target' => 'approve',
- 'title' => 'Terima',
- 'confirmButtonColor' => 'primary',
- 'icon' => 'check-circle',
- ])->render();
- }
-
- if (auth()->user()->can('reject price request') && $row->status === PriceRequestStatus::PENDING) {
- $actions .= view('components.actions.table.confirm', [
- 'id' => $row->hash,
- 'message' => 'Jika ditolak, pomohon tidak dapat melihat data harga beli.',
- 'confirmButtonText' => 'Ya, Tolak',
- 'target' => 'reject',
- 'title' => 'Tolak',
- 'confirmButtonColor' => 'red',
- 'icon' => 'x-circle',
- ])->render();
- }
-
- return $actions;
- })
- ->html()
- ->hideIf(auth()->user()->cannot('approve price request') && auth()->user()->cannot('reject price request')),
- ];
- }
-
- public function builder(): Builder
- {
- return PriceRequest::select(
- 'price_requests.id',
- 'price_requests.user_id',
- 'module',
- 'price_requests.status',
- 'price_requests.created_at',
- 'finalized_at'
- )
- ->with(['user', 'user.employee']);
- }
-}
diff --git a/app/Livewire/Studio/Catalog/Bottle/Index.php b/app/Livewire/Studio/Catalog/Bottle/Index.php
index a682929..698a9f3 100644
--- a/app/Livewire/Studio/Catalog/Bottle/Index.php
+++ b/app/Livewire/Studio/Catalog/Bottle/Index.php
@@ -7,7 +7,6 @@
use App\Traits\Components\WithConfirmation;
use App\Traits\Components\WithToast;
use App\Traits\Notification\WithSubscribeNotification;
-use App\Traits\Pricing\WithShowPrice;
use App\Traits\Utilities\WithRequestNotification;
use Flux\Flux;
use Illuminate\Contracts\View\View;
@@ -17,7 +16,7 @@
#[Title('Botol')]
class Index extends Component
{
- use WithAuthorization, WithConfirmation, WithRequestNotification, WithShowPrice, WithSubscribeNotification, WithToast;
+ use WithAuthorization, WithConfirmation, WithRequestNotification, WithSubscribeNotification, WithToast;
public function delete(Bottle $bottle): void
{
diff --git a/app/Livewire/Studio/Catalog/Perfume/Index.php b/app/Livewire/Studio/Catalog/Perfume/Index.php
index 7ce4ae3..9944345 100644
--- a/app/Livewire/Studio/Catalog/Perfume/Index.php
+++ b/app/Livewire/Studio/Catalog/Perfume/Index.php
@@ -7,7 +7,6 @@
use App\Traits\Components\WithConfirmation;
use App\Traits\Components\WithToast;
use App\Traits\Notification\WithSubscribeNotification;
-use App\Traits\Pricing\WithShowPrice;
use App\Traits\Utilities\WithRequestNotification;
use Flux\Flux;
use Livewire\Attributes\Title;
@@ -16,7 +15,7 @@
#[Title('Parfum')]
class Index extends Component
{
- use WithAuthorization, WithConfirmation, WithRequestNotification, WithShowPrice, WithSubscribeNotification, WithToast;
+ use WithAuthorization, WithConfirmation, WithRequestNotification, WithSubscribeNotification, WithToast;
public function delete(Perfume $perfume)
{
diff --git a/app/Livewire/Studio/Catalog/Product/Index.php b/app/Livewire/Studio/Catalog/Product/Index.php
index 01761eb..7316b9c 100644
--- a/app/Livewire/Studio/Catalog/Product/Index.php
+++ b/app/Livewire/Studio/Catalog/Product/Index.php
@@ -7,7 +7,6 @@
use App\Traits\Components\WithConfirmation;
use App\Traits\Components\WithToast;
use App\Traits\Notification\WithSubscribeNotification;
-use App\Traits\Pricing\WithShowPrice;
use App\Traits\Utilities\WithRequestNotification;
use Flux\Flux;
use Illuminate\Contracts\View\View;
@@ -17,7 +16,7 @@
#[Title('Produk')]
class Index extends Component
{
- use WithAuthorization, WithConfirmation, WithRequestNotification, WithShowPrice, WithSubscribeNotification, WithToast;
+ use WithAuthorization, WithConfirmation, WithRequestNotification, WithSubscribeNotification, WithToast;
public function delete(Product $product): void
{
diff --git a/app/Livewire/Studio/Information/PriceRequest.php b/app/Livewire/Studio/Information/PriceRequest.php
deleted file mode 100644
index b859902..0000000
--- a/app/Livewire/Studio/Information/PriceRequest.php
+++ /dev/null
@@ -1,77 +0,0 @@
-canOrAbort('approve price request');
-
- $priceRequest->update([
- 'status' => PriceRequestStatus::APPROVED->value,
- 'finalized_at' => now(),
- ]);
-
- StorePushNotification::dispatch(
- PushNotification::where('user_id', $priceRequest->user_id)->get(),
- [
- 'title' => 'Permintaan Harga Disetujui ✅',
- 'body' => "Selamat! Permintaan untuk melihat harga beli {$priceRequest->module} sudah disetujui 🎉",
- ],
- );
-
- $this->dispatch('refreshDatatable');
-
- $this->toast('Permintaan harga berhasil disetujui.');
-
- Flux::modals()->close();
- }
-
- public function reject(PriceRequestModel $priceRequest): void
- {
- $this->canOrAbort('reject price request');
-
- $priceRequest->update([
- 'status' => PriceRequestStatus::REJECTED->value,
- 'finalized_at' => now(),
- ]);
-
- StorePushNotification::dispatch(
- PushNotification::where('user_id', $priceRequest->user_id)->get(),
- [
- 'title' => 'Permintaan Harga Ditolak ❌',
- 'body' => "Maaf, permintaan untuk melihat harga beli {$priceRequest->module} tidak dapat dipenuhi 🙏",
- ],
- );
-
- $this->dispatch('refreshDatatable');
-
- $this->toast('Permintaan harga berhasil ditolak.');
-
- Flux::modals()->close();
- }
-
- public function render(): View
- {
- return view('livewire.studio.information.price-requests', [
- 'pageTitle' => 'Permintaan Harga',
- ]);
- }
-}
diff --git a/app/Models/PriceRequest.php b/app/Models/PriceRequest.php
deleted file mode 100644
index 24c93b5..0000000
--- a/app/Models/PriceRequest.php
+++ /dev/null
@@ -1,49 +0,0 @@
- PriceRequestStatus::class,
- 'finalized_at' => 'datetime',
- ];
- }
-
- #[Scope]
- protected function pending(Builder $query): void
- {
- $query->where('status', PriceRequestStatus::PENDING->value);
- }
-
- #[Scope]
- protected function approved(Builder $query): void
- {
- $query->where('status', PriceRequestStatus::APPROVED->value);
- }
-
- #[Scope]
- protected function rejected(Builder $query): void
- {
- $query->where('status', PriceRequestStatus::REJECTED->value);
- }
-
- public function user(): BelongsTo
- {
- return $this->belongsTo(User::class);
- }
-}
diff --git a/app/Models/User.php b/app/Models/User.php
index a8abd9d..321478e 100644
--- a/app/Models/User.php
+++ b/app/Models/User.php
@@ -135,11 +135,6 @@ public function pointRecords(): HasMany
return $this->hasMany(PointRecord::class);
}
- public function priceRequests(): HasMany
- {
- return $this->hasMany(PriceRequest::class);
- }
-
public function purchaseItems(): HasMany
{
return $this->hasMany(PurchaseItem::class);
diff --git a/app/Providers/ViewServiceProvider.php b/app/Providers/ViewServiceProvider.php
index 2e1cd01..3a0c807 100644
--- a/app/Providers/ViewServiceProvider.php
+++ b/app/Providers/ViewServiceProvider.php
@@ -2,11 +2,8 @@
namespace App\Providers;
-use App\Enums\PriceRequestStatus;
-use App\Models\PriceRequest;
use App\Settings\ContactSettings;
use App\Settings\GeneralSettings;
-use Illuminate\Support\Facades\Schema;
use Illuminate\Support\Facades\View;
use Illuminate\Support\ServiceProvider;
@@ -14,20 +11,7 @@ class ViewServiceProvider extends ServiceProvider
{
public function boot(): void
{
- if (! Schema::hasTable('price_requests')) {
- return;
- }
-
- if (Schema::hasTable('price_requests') && Schema::hasColumn('price_requests', 'status')) {
- $priceRequestCount = PriceRequest::where(
- 'status',
- PriceRequestStatus::PENDING->value
- )->count();
- } else {
- $priceRequestCount = 0;
- }
-
- View::composer('*', function ($view) use ($priceRequestCount) {
+ View::composer('*', function ($view) {
$sidebar = [
[
'heading' => 'Dasbor',
@@ -230,14 +214,6 @@ public function boot(): void
'match' => 'studio.information.broadcast.*',
'can' => 'view broadcast',
],
- [
- 'label' => 'Permintaan Harga',
- 'icon' => 'exclamation-triangle',
- 'route' => 'studio.information.price_request.index',
- 'match' => 'studio.information.price_request.*',
- 'can' => 'view price request',
- 'badge' => $priceRequestCount,
- ],
[
'label' => 'FAQs',
'icon' => 'question-mark-circle',
diff --git a/app/Traits/Pricing/WithShowPrice.php b/app/Traits/Pricing/WithShowPrice.php
deleted file mode 100644
index 2153132..0000000
--- a/app/Traits/Pricing/WithShowPrice.php
+++ /dev/null
@@ -1,59 +0,0 @@
-id())
- ->where('module', $module)
- ->pending()
- ->exists();
-
- if ($recentRequest) {
- $this->toast('Permohonan kamu sedang di proses oleh owner, mohon tunggu dan kami akan memberi tahu Anda jika prosesnya sudah selesai.', 'Peringatan', 'warning');
- Flux::modal('show-price')->close();
-
- return;
- }
-
- $owner = User::role(['owner', 'Developer'])->with('employee')->first();
-
- if (! $owner) {
- $this->toast('Owner belum terdaftar, silakan hubungi Admin.', 'Gagal', 'danger');
- Flux::modal('show-price')->close();
-
- return;
- }
-
- $causerName = auth()->user()->employee?->full_name;
-
- DB::transaction(function () use ($module, $owner, $causerName) {
- PriceRequest::create([
- 'user_id' => auth()->id(),
- 'module' => $module,
- ]);
-
- StorePushNotification::dispatch(
- PushNotification::all(),
- [
- 'title' => 'Permintaan Persetujuan Harga Beli',
- 'body' => "Haloo {$owner->employee?->full_name}, saya {$causerName}, saya ingin mengajukan permintaan persetujuan untuk mengakses data harga beli {$module}.",
- 'route' => route('studio.information.price_request.index'),
- ],
- );
- });
-
- $this->toast('Permintaan persetujuan berhasil dikirim.');
-
- Flux::modal('show-price')->close();
- }
-}
diff --git a/database/factories/PriceRequestFactory.php b/database/factories/PriceRequestFactory.php
deleted file mode 100644
index bf9022c..0000000
--- a/database/factories/PriceRequestFactory.php
+++ /dev/null
@@ -1,51 +0,0 @@
-faker->randomElement(PriceRequestStatus::cases());
-
- return [
- 'user_id' => User::factory(),
- 'module' => $this->faker->randomElement(['product', 'perfume', 'bottle']),
- 'status' => $status,
- 'finalized_at' => $status === PriceRequestStatus::PENDING
- ? null
- : $this->faker->dateTime(),
- ];
- }
-
- public function pending(): Factory
- {
- return $this->state(fn () => [
- 'status' => PriceRequestStatus::PENDING,
- 'finalized_at' => null,
- ]);
- }
-
- public function approved(): Factory
- {
- return $this->state(fn () => [
- 'status' => PriceRequestStatus::APPROVED,
- 'finalized_at' => $this->faker->dateTime(),
- ]);
- }
-
- public function rejected(): Factory
- {
- return $this->state(fn () => [
- 'status' => PriceRequestStatus::REJECTED,
- 'finalized_at' => $this->faker->dateTime(),
- ]);
- }
-}
diff --git a/database/migrations/2025_10_29_013939_create_price_requests_table.php b/database/migrations/2025_10_29_013939_create_price_requests_table.php
deleted file mode 100644
index 7dcf19c..0000000
--- a/database/migrations/2025_10_29_013939_create_price_requests_table.php
+++ /dev/null
@@ -1,34 +0,0 @@
-id();
- $table->foreignId('user_id')->constrained()->cascadeOnDelete();
- $table->string('module', 20);
- $table->enum('status', PriceRequestStatus::values())->default(PriceRequestStatus::PENDING)->comment(PriceRequestStatus::comment());
- $table->timestamp('finalized_at')->nullable();
- $table->timestamp('created_at')->useCurrent();
- $table->timestamp('updated_at')->useCurrent()->useCurrentOnUpdate();
- $table->softDeletes();
- });
- }
-
- /**
- * Reverse the migrations.
- */
- public function down(): void
- {
- Schema::dropIfExists('price_requests');
- }
-};
diff --git a/database/seeders/RolePermissionSeeder.php b/database/seeders/RolePermissionSeeder.php
index faab3d9..c0080c9 100644
--- a/database/seeders/RolePermissionSeeder.php
+++ b/database/seeders/RolePermissionSeeder.php
@@ -128,10 +128,6 @@ public function run(): void
'update article',
'delete article',
- 'view price request',
- 'approve price request',
- 'reject price request',
-
'view faq',
'create faq',
'update faq',
@@ -147,6 +143,7 @@ public function run(): void
'delete broadcast',
'view warehouse',
+ 'show warehouse',
'create warehouse',
'update warehouse',
'delete warehouse',
diff --git a/resources/views/components/modals/confirmations/request-price.blade.php b/resources/views/components/modals/confirmations/request-price.blade.php
deleted file mode 100644
index 61e8e6c..0000000
--- a/resources/views/components/modals/confirmations/request-price.blade.php
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Konfirmasi
- Apakah Anda ingin mengajukan permintaan persetujuan kepada owner untuk
- mengakses data harga beli?
-
-
-
-
- Batal
-
-
- Ya, Ajukan
-
-
-
-
diff --git a/resources/views/livewire/studio/catalog/bottle/index.blade.php b/resources/views/livewire/studio/catalog/bottle/index.blade.php
index fa95df2..7e6d1e0 100644
--- a/resources/views/livewire/studio/catalog/bottle/index.blade.php
+++ b/resources/views/livewire/studio/catalog/bottle/index.blade.php
@@ -33,5 +33,4 @@ class="text-sm">
'buttonColor' => 'danger',
'buttonText' => 'Ya, Hapus',
])
- @include('components.modals.confirmations.request-price', ['module' => 'botol'])
diff --git a/resources/views/livewire/studio/catalog/perfume/index.blade.php b/resources/views/livewire/studio/catalog/perfume/index.blade.php
index 0823684..ea045b4 100644
--- a/resources/views/livewire/studio/catalog/perfume/index.blade.php
+++ b/resources/views/livewire/studio/catalog/perfume/index.blade.php
@@ -40,5 +40,4 @@ class="text-sm">
'buttonColor' => 'danger',
'buttonText' => 'Ya, Hapus',
])
- @include('components.modals.confirmations.request-price', ['module' => 'parfum'])
diff --git a/resources/views/livewire/studio/catalog/product/index.blade.php b/resources/views/livewire/studio/catalog/product/index.blade.php
index b02fbd5..5dcfe57 100644
--- a/resources/views/livewire/studio/catalog/product/index.blade.php
+++ b/resources/views/livewire/studio/catalog/product/index.blade.php
@@ -40,5 +40,4 @@ class="text-sm">
'buttonColor' => 'danger',
'buttonText' => 'Ya, Hapus',
])
- @include('components.modals.confirmations.request-price', ['module' => 'produk'])
diff --git a/resources/views/livewire/studio/information/price-requests.blade.php b/resources/views/livewire/studio/information/price-requests.blade.php
deleted file mode 100644
index 018436f..0000000
--- a/resources/views/livewire/studio/information/price-requests.blade.php
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
-
-
-
- @include('components.modals.confirmation', [
- 'modalName' => 'delete-confirmation',
- 'modalTitle' => 'Apakah Anda yakin?',
- 'modalMessage' => 'Data yang berelasi dengan data ini juga akan ikut terhapus.',
- 'buttonVariant' => 'primary',
- 'buttonColor' => 'danger',
- 'buttonText' => 'Ya, Hapus',
- ])
-