59 lines
1.6 KiB
PHP
59 lines
1.6 KiB
PHP
<?php
|
||
|
||
namespace App\Http\Controllers\Forms;
|
||
|
||
use App\Http\Controllers\Controller;
|
||
use App\Http\Requests\Forms\MembershipRequest;
|
||
use App\Models\Membership;
|
||
use App\Models\Package;
|
||
use App\Services\MemberService;
|
||
use Carbon\Carbon;
|
||
use Illuminate\Http\RedirectResponse;
|
||
use Inertia\Inertia;
|
||
|
||
class MembershipFormController extends Controller
|
||
{
|
||
public function __construct(protected MemberService $memberService) {}
|
||
|
||
/**
|
||
* Show the contact form page.
|
||
*/
|
||
public function create()
|
||
{
|
||
return Inertia::render('forms/membership', [
|
||
'plans' => Package::query()
|
||
->where('is_active', true)
|
||
->select('id', 'identifier', 'name', 'price', 'description')
|
||
->get()
|
||
]);
|
||
}
|
||
|
||
/**
|
||
* Handle an incoming membership form request.
|
||
*
|
||
*/
|
||
public function store(MembershipRequest $request): RedirectResponse
|
||
{
|
||
dd($request->validated());
|
||
$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')
|
||
->with('error', Membership::getAttributeLabel('memberships.subscription.error'));
|
||
}
|
||
|
||
return redirect()
|
||
->route('membership')
|
||
->with('success', Membership::getAttributeLabel('memberships.subscription.success'));
|
||
}
|
||
}
|