<?php

namespace App\Http\Controllers;

use Illuminate\Support\Facades\Cache;
use Yajny\Member\Models\Currencies;
use Yajny\Member\Models\LoyaltyProgram;

class LoyaltyProgramsController extends Controller
{
    public function landing()
    {
        $currencyCode = request('userCurrency');
        $allCurrencies = Cache::rememberForever('currencies', function () {
            return Currencies::all()->mapWithKeys(function ($currency) {
                return [$currency->iso_code => $currency];
            });
        });

        $currency = $allCurrencies[$currencyCode];
        $allPrograms = LoyaltyProgram::orderBy('rank', 'ASC')->get()
            ->map(function ($program) use ($currency) {
                $program->applyCurrencyConversion($currency, true);
                return LoyaltyProgram::mapItemsForApp($program);
            });

        $terms = json_decode(config('settingConfig.loyalty_terms_and_conditions'), true);

        return [
            'programs' => $allPrograms,
            'terms' => $terms
        ];
    }
}
