diff --git a/app/Livewire/Forms/Studio/Loyalty/CustomerForm.php b/app/Livewire/Forms/Studio/Loyalty/CustomerForm.php
index 2e42354..3b233aa 100644
--- a/app/Livewire/Forms/Studio/Loyalty/CustomerForm.php
+++ b/app/Livewire/Forms/Studio/Loyalty/CustomerForm.php
@@ -12,6 +12,8 @@ class CustomerForm extends Form
{
public ?Customer $customer = null;
+ public ?string $user_id = null;
+
public string $name = '';
public ?string $phone_number = null;
@@ -50,6 +52,7 @@ public function store()
$this->validate();
Customer::create([
+ 'user_id' => $this->user_id,
'name' => $this->name,
'phone_number' => $this->phone_number,
'gender' => $this->gender,
diff --git a/app/Livewire/Member/Overview.php b/app/Livewire/Member/Overview.php
index 582a3a4..0e7bd64 100644
--- a/app/Livewire/Member/Overview.php
+++ b/app/Livewire/Member/Overview.php
@@ -2,6 +2,11 @@
namespace App\Livewire\Member;
+use App\Livewire\Forms\Studio\Loyalty\CustomerForm;
+use App\Models\Membership;
+use App\Models\Tier;
+use App\Traits\WithToast;
+use Illuminate\Support\Facades\DB;
use Livewire\Attributes\Layout;
use Livewire\Attributes\Title;
use Livewire\Component;
@@ -10,11 +15,21 @@
#[Layout('components.layouts.member')]
class Overview extends Component
{
+ use WithToast;
+
+ public CustomerForm $form;
+
+ public bool $hasMemberData = false;
+
public bool $isVerified = false;
public function mount()
{
+ $this->hasMemberData = auth()->user()->customer()->exists();
+
$this->isVerified = auth()->user()->hasVerifiedEmail();
+
+ $this->form->user_id = request()->routeIs('member.overview') ? auth()->id() : null;
}
public function checkEmailVerification()
@@ -24,6 +39,25 @@ public function checkEmailVerification()
$this->isVerified = auth()->user()->hasVerifiedEmail();
}
+ public function save()
+ {
+ DB::transaction(function () {
+ $this->form->store();
+
+ $this->hasMemberData = true;
+
+ if (! auth()->user()->membership()->exists()) {
+ Membership::create([
+ 'user_id' => auth()->id(),
+ 'tier_id' => Tier::orderBy('min_points')->first()->id,
+ 'tier_points' => 10,
+ ]);
+ }
+ });
+
+ $this->toast('Selamat, Anda telah menjadi member sekarang.');
+ }
+
public function render()
{
return view('livewire.member.overview');
diff --git a/resources/views/livewire/member/overview.blade.php b/resources/views/livewire/member/overview.blade.php
index c5a0555..d85f08a 100644
--- a/resources/views/livewire/member/overview.blade.php
+++ b/resources/views/livewire/member/overview.blade.php
@@ -2,69 +2,100 @@
Undang teman dan dapatkan hadiah menarik!
-Undang teman dan dapatkan hadiah menarik!
+