feat(wip member dashboard)
All checks were successful
Deploy Roxane to Preprod / deploy (push) Successful in 26h10m31s

This commit is contained in:
2026-04-08 15:17:05 +02:00
parent 341032162a
commit aea22e72af
16 changed files with 711 additions and 51 deletions

View File

@@ -0,0 +1,23 @@
<?php
namespace App\Http\Resources;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
class MemberResource extends JsonResource
{
/**
* @return array<string, mixed>
*/
public function toArray(Request $request): array
{
return [
'firstname' => $this->firstname,
'lastname' => $this->lastname,
'email' => $this->email,
'retzien_email' => $this->retzien_email,
'membership' => new MembershipResource($this->whenLoaded('lastActiveMembership')),
];
}
}

View File

@@ -0,0 +1,25 @@
<?php
namespace App\Http\Resources;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
class MembershipResource extends JsonResource
{
/**
* @return array<string, mixed>
*/
public function toArray(Request $request): array
{
return [
'status' => $this->status,
'payment_status' => $this->payment_status,
'start_date' => $this->start_date,
'end_date' => $this->end_date,
'amount' => $this->amount,
'package' => new PackageResource($this->whenLoaded('package')),
'services' => ServiceResource::collection($this->whenLoaded('services')),
];
}
}

View File

@@ -0,0 +1,22 @@
<?php
namespace App\Http\Resources;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
class PackageResource extends JsonResource
{
/**
* @return array<string, mixed>
*/
public function toArray(Request $request): array
{
return [
'identifier' => $this->identifier,
'name' => $this->name,
'description' => $this->description,
'price' => $this->price,
];
}
}

View File

@@ -0,0 +1,24 @@
<?php
namespace App\Http\Resources;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
class ServiceResource extends JsonResource
{
/**
* @return array<string, mixed>
*/
public function toArray(Request $request): array
{
return [
'identifier' => $this->identifier,
'name' => $this->name,
'description' => $this->description,
'url' => $this->url,
'icon' => $this->icon,
'is_active' => (bool) $this->whenPivotLoaded('services_memberships', fn () => $this->pivot->is_active),
];
}
}