2025-10-22 17:09:48 +02:00
|
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
|
|
namespace App\Http\Controllers\Forms;
|
|
|
|
|
|
|
|
|
|
|
|
use App\Http\Controllers\Controller;
|
2025-10-24 14:09:54 +02:00
|
|
|
|
use App\Http\Requests\Forms\MembershipRequest;
|
2025-10-22 17:09:48 +02:00
|
|
|
|
use App\Models\Membership;
|
2025-10-24 14:09:54 +02:00
|
|
|
|
use App\Models\Package;
|
|
|
|
|
|
use App\Services\MemberService;
|
2025-10-22 17:09:48 +02:00
|
|
|
|
use Carbon\Carbon;
|
|
|
|
|
|
use Illuminate\Http\RedirectResponse;
|
|
|
|
|
|
use Inertia\Inertia;
|
|
|
|
|
|
|
|
|
|
|
|
class MembershipFormController extends Controller
|
|
|
|
|
|
{
|
2025-10-24 14:09:54 +02:00
|
|
|
|
public function __construct(protected MemberService $memberService) {}
|
|
|
|
|
|
|
2025-10-22 17:09:48 +02:00
|
|
|
|
/**
|
|
|
|
|
|
* Show the contact form page.
|
|
|
|
|
|
*/
|
|
|
|
|
|
public function create()
|
|
|
|
|
|
{
|
2025-10-24 14:09:54 +02:00
|
|
|
|
return Inertia::render('forms/membership', [
|
|
|
|
|
|
'plans' => Package::query()
|
|
|
|
|
|
->where('is_active', true)
|
2025-10-26 00:16:25 +02:00
|
|
|
|
->select('id', 'identifier', 'name', 'price', 'description')
|
2025-10-24 14:09:54 +02:00
|
|
|
|
->get()
|
|
|
|
|
|
]);
|
2025-10-22 17:09:48 +02:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* Handle an incoming membership form request.
|
|
|
|
|
|
*
|
|
|
|
|
|
*/
|
2025-10-24 14:09:54 +02:00
|
|
|
|
public function store(MembershipRequest $request): RedirectResponse
|
2025-10-22 17:09:48 +02:00
|
|
|
|
{
|
2025-10-26 00:16:25 +02:00
|
|
|
|
dd($request->validated());
|
2025-10-24 14:09:54 +02:00
|
|
|
|
$validated = $request->validated();
|
|
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
$this->memberService->registerNewMember($validated);
|
|
|
|
|
|
} catch (\Throwable $e) {
|
|
|
|
|
|
\Log::error('Erreur lors de la création d’un membre', [
|
|
|
|
|
|
'error' => $e->getMessage(),
|
|
|
|
|
|
'trace' => $e->getTraceAsString(),
|
|
|
|
|
|
'data' => $validated,
|
|
|
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
|
|
return redirect()
|
|
|
|
|
|
->route('membership')
|
2025-10-26 00:16:25 +02:00
|
|
|
|
->with('error', Membership::getAttributeLabel('memberships.subscription.error'));
|
2025-10-24 14:09:54 +02:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return redirect()
|
|
|
|
|
|
->route('membership')
|
2025-10-26 00:16:25 +02:00
|
|
|
|
->with('success', Membership::getAttributeLabel('memberships.subscription.success'));
|
2025-10-22 17:09:48 +02:00
|
|
|
|
}
|
|
|
|
|
|
}
|