<?php

namespace App;

use Carbon\Carbon;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;

class MandateLogs extends Model
{

    protected $table = 'mandate_logs';

    protected $fillable = ['consumer_application_id','mandate_id','umrn','status','mode', 'action','collection','frequency','monthly_frequency','mandate_amount','rejection_message','mandate_cancel_response','created_by','applicant_id','expiry_date','until_cancelled'];


    public function lockPrevious($mandate, $mandate_id, Request $request){

        $data = $mandate->toArray();
        $status = false;
        unset($data['_token']);
        $requestData = $request->all();
        if (!isset($requestData['until_cancelled'])){
            $requestData['until_cancelled'] = 0;
        }else{
            $requestData['until_cancelled'] = 1;
        }
        foreach ($requestData as $key=>$item){
            if (isset($data[$key]) && $data[$key] != $item){
                $status = true;
            }
        }
        if ($status) {
            unset($data['id']);
            $this->fill($data);
            $this->mandate_id = $mandate_id;
            $this->created_at = Carbon::now()->toDateTimeString();
            $this->created_by = Auth::user() ? Auth::user()->id : 107;
            $this->save();
        }
    }

    public function user(){
        return $this->hasOne('App\User','id','created_by');
    }
}