<?php

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;

Route::get('/', function () {
    print_r(config('desxpert.app_version'));
});

$paymentResultPage = function (Request $request, string $result) {
    $bookingId = $request->query('booking_id');
    $content = match ($result) {
        'success' => [
            'title' => 'Payment successful',
            'message' => 'Thank you. Your payment was submitted successfully and your booking is being updated.',
            'button' => 'Return to app',
        ],
        'failure' => [
            'title' => 'Payment unsuccessful',
            'message' => 'We could not complete your payment. No booking payment has been confirmed.',
            'button' => 'Return and try again',
        ],
        'dropout' => [
            'title' => 'Payment cancelled',
            'message' => 'The checkout was closed before payment was completed. You can return to the app and try again.',
            'button' => 'Return to app',
        ],
    };

    return response()
        ->view('payments.success', [
            'bookingId' => $bookingId,
            'result' => $result,
            ...$content,
            'paymentResult' => [
                'type' => 'maya_payment_return',
                'result' => $result,
                'booking_id' => $bookingId,
            ],
        ])
        ->header('Cache-Control', 'no-store, no-cache, must-revalidate, private');
};

Route::get('/payments/success', fn (Request $request) => $paymentResultPage($request, 'success'))
    ->name('payments.success');
Route::get('/payments/failure', fn (Request $request) => $paymentResultPage($request, 'failure'))
    ->name('payments.failure');
Route::get('/payments/dropout', fn (Request $request) => $paymentResultPage($request, 'dropout'))
    ->name('payments.dropout');
