<?php

namespace App\Http\Controllers;

use App\Setting;
use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\File;
use Illuminate\Http\Request;
use Yajny\Member\Models\Currencies;
use Yajny\Models\Country;
use Yajny\Models\Store;

class SettingController extends Controller
{
    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        //
    }

    //

    public function getSettings(){
        return Setting::all()->mapWithKeys(function ($setting) {
            if ($setting->setting_dev_class == 'lang' || $setting->is_regional)
                return [$setting->setting_key => json_decode($setting->setting_value, true)];
            else
                return [$setting->setting_key => ($setting->setting_value)];
        });
    }

    public function getTranslationsForLang(Request $request){

        $lang = $request->lang;

        return collect(File::allFiles( base_path().'/resources/lang' ))->flatMap(function ($file) use( $lang) {

         return [
             ($translation = $file->getBasename('.php')) =>  app('translator')->trans($translation, [], $lang),
         ];
     });

    }

    public function getTranslations(){

        return collect(File::allFiles( base_path().'/resources/lang' ))->flatMap(function ($file) {

         return [
             ($translation = $file->getBasename('.php')) => trans($translation),
         ];
     });

    }

    public function getConfig(){
        // TODO : Make this dynamic when admin pushes it
        return collect( config('website') );
    }

    public function countriesAndCurrencies()
    {
        return ['countires'=>Country::select('name','dial_code','code')->where('for_otp',1)->where('active',1)->get()->toArray(),
                'currencies' => Currencies::select('iso_code','symbol','display_as')->get()->toArray()
                ];
    }

	public function  extension_settings()
	{
		$allSettings = Setting::all()->mapWithKeys(function ($setting) {
            if ($setting->setting_dev_class == 'lang')
                return [$setting->setting_key => json_decode($setting->setting_value, true)];
            else
                return [$setting->setting_key => ($setting->setting_value)];
        });

		$webSettings =  collect( config('website') );



		$extSettings =  ['referral_enabled' => $allSettings['referral_enabled'],
		'referral_percent' => $allSettings['referral_percent'],
		'referral_validity'=> $allSettings['referral_validity'],
		'cnf_currencyname'=> $webSettings['cnf_currencyname'],
		'top_stores_domains'=> Store::whereIn('id',explode(',',$allSettings['hp_top_stores']))->pluck('domain_name')->toArray()  ];

		return $extSettings;

	}
}
