diff --git a/app/Http/Controllers/User/UserDashboardController.php b/app/Http/Controllers/User/UserDashboardController.php new file mode 100644 index 0000000..41742f2 --- /dev/null +++ b/app/Http/Controllers/User/UserDashboardController.php @@ -0,0 +1,41 @@ +with('deals', $this->deals()); + } + + protected function deals() + { + return Deal::query() + ->where('active', true) + ->select([ + 'id', + 'title', + 'description', + 'image', + 'active', + 'slug', + 'link', + 'deal_category_id', + 'user_id', + ]) + ->with([ + 'category:id,name', + 'broker' => function ($query) { + $query->select('id', 'name', 'email', 'role_type', 'role_id') + ->with('type'); + }, + ]) + ->latest() + ->paginate(); + } +} diff --git a/app/Models/Deal.php b/app/Models/Deal.php index d4b666b..b10c0b6 100644 --- a/app/Models/Deal.php +++ b/app/Models/Deal.php @@ -7,9 +7,9 @@ class Deal extends Model { - public function User(): BelongsTo + public function broker(): BelongsTo { - return $this->belongsTo(User::class); + return $this->belongsTo(User::class, 'user_id'); } public function category(): BelongsTo diff --git a/resources/views/components/dashboard/listing-card.blade.php b/resources/views/components/dashboard/broker/listing-card.blade.php similarity index 94% rename from resources/views/components/dashboard/listing-card.blade.php rename to resources/views/components/dashboard/broker/listing-card.blade.php index 6594c9e..305ed5f 100644 --- a/resources/views/components/dashboard/listing-card.blade.php +++ b/resources/views/components/dashboard/broker/listing-card.blade.php @@ -27,7 +27,7 @@ class="text-xs underline text-accent-601 mt-1">

{{$category}}

- +
My Listings

@forelse($deals as $deal) - + + + + + + + + + + + +
diff --git a/resources/views/components/dashboard/user/broker-contact.blade.php b/resources/views/components/dashboard/user/broker-contact.blade.php new file mode 100644 index 0000000..106d291 --- /dev/null +++ b/resources/views/components/dashboard/user/broker-contact.blade.php @@ -0,0 +1,10 @@ +@props(['broker']) +
+

Broker Contact

+
+

{{$broker->name}}

+

{{$broker->email}}

+

{{$broker->role->phone}}

+
+
+ diff --git a/resources/views/components/dashboard/user/listing-card.blade.php b/resources/views/components/dashboard/user/listing-card.blade.php new file mode 100644 index 0000000..00a815e --- /dev/null +++ b/resources/views/components/dashboard/user/listing-card.blade.php @@ -0,0 +1,33 @@ +@props(['deal' => '', 'broker' => '']) + +
+
+ + {{$deal->category->name}} + + +
+ +

{{$deal->title}}

+ +

{{$deal->description}}

+ + + +
+
+ + + + + + + +
+ +

View Deal

+ +
+
+
+
diff --git a/resources/views/components/dashboard/user/listing.blade.php b/resources/views/components/dashboard/user/listing.blade.php new file mode 100644 index 0000000..a2de9dd --- /dev/null +++ b/resources/views/components/dashboard/user/listing.blade.php @@ -0,0 +1,9 @@ +@props(['deals' => []]) +
+ @forelse($deals as $deal) + @ds($deal) + + @empty +

No Deals found till now !

+ @endforelse +
diff --git a/resources/views/components/dashboard/user/stat-badge.blade.php b/resources/views/components/dashboard/user/stat-badge.blade.php new file mode 100644 index 0000000..c029c2f --- /dev/null +++ b/resources/views/components/dashboard/user/stat-badge.blade.php @@ -0,0 +1,5 @@ +@props(['count' => 0]) +
+ {{$slot}} +

{{$count}}

+
diff --git a/resources/views/components/ui/input.blade.php b/resources/views/components/ui/input.blade.php index da32456..89e2f86 100644 --- a/resources/views/components/ui/input.blade.php +++ b/resources/views/components/ui/input.blade.php @@ -1,5 +1,5 @@ @props(['label' => '', 'name' => '', 'placeholder' => '', 'type' => 'text', 'description' => '', 'required' => false, 'value' => '']) -
+
merge(['class' => 'flex flex-col space-y-2'])}}> @if($label !== '')