<?php namespace App;



use Illuminate\Support\Facades\Config;

/**
 * Created by PhpStorm.
 * User: sunil khorwal
 * Date: 6/6/16
 * Time: 1:52 PM
 */
class CFOneFinConfig
{
    /**
     * @var bool
     */
    public $get_single_config = false;

    public function getConfig($applications){
        $config = Config::get('cf_onefin_config');

        if($config){

            $base_config = $config[2];

            if($this->get_single_config){
                $applications = ConsumerApplication::where('id', $applications);
            }


            $lender_ids = array_keys($config);
            if($lender_ids) {
                $applications = $applications->whereIn('lender_id', $lender_ids);
            }

            $categories = array_values($base_config['products']);
            if($categories) {
                $applications = $applications->whereIn('purpose', $categories);
            }

            if(in_array('advance_emi', $base_config['dp_and_advance_emi'])) {
                $applications = $applications->with(['activeOffer' => function($query){
                    $query->where('advance_type', 'emi');
                }]);
            }

            if(in_array('single', $base_config['type_of_disbursement'])) {
                $applications = $applications->whereDoesntHave('disbursementOfferDisbursed', function($query) {
                    $query->whereColumn('consumer_application.id', 'disbursement_offers_disbursed.application_id');
                });
            }
        }

        return $this->get_single_config ? ($applications->first(['id'])->id ?? false) : $applications;
    }
}