<?php

namespace App\Method\Decentro\Payload;


use App\Method\Decentro\Helpers\DecentroHelper;
use Illuminate\Http\Request;

class Payload implements DecentroHelper
{

    public $request;
    public $error = null;

    public function validate($wrapper = null){

        $id = $this->request->get('id');
        $pan =  $this->request->get('pan');
        return [
            "reference_id" => (string)$id,
            "document_type" => "PAN_DETAILED",
            "id_number" => $pan,
            "consent" => "Y",
            "consent_purpose" => "For bank account purpose only"
        ];
    }

    public function addPayload(Request $request){
        $this->request = $request;
    }

    public function getPayload($func){
        if(method_exists($this, $func)){
            return ['payload' => $this->$func()];
        }
        return ['payload' => []];
    }

    public function ckycSearch($wrapper = null){
        $id = $this->request->get('id');
        $pan = $this->request->get('pan');

        return [
            "reference_id"=> $id,
            "document_type"=>"PAN",
            "id_number"=> $pan,
            "consent"=> true,
            "consent_purpose"=> "For bank account purpose"
        ];
    }

    public function ckycDownload($wrapper = null){
        $id = $this->request->get('id');
        $ckycid = $this->request->get('ckycid');
        $dob = $this->request->get('dob');
        return [
            "reference_id"=> $id,
            "id_number"=> str_replace("L","",$ckycid),
            "auth_factor_type"=> 1,
            "auth_factor"=> $dob,
            "consent"=> true,
            "consent_purpose"=> "For bank account purpose"
        ];
    }

}