<?php
namespace App\Traits;

use App\DataTables\UserMailPaymentHistoryDataTable;
use App\EmailPricing;
use App\User;
use Illuminate\Http\Request;
use Illuminate\Support\Str;

trait Subscription
{
    public function subscription_index()
    {

        $user = auth()->user();

        if($user->under_reseller())
            $packages = EmailPricing::query()->where([['is_active',true],['user_id', $user->reseller()->id]])->get();
        else
            $packages = EmailPricing::query()->where([['is_active',true],['user_id', null]])->get();

        $subscription = $user->subscription;
        $subscriptionIsValid = $user->subscriptionIsValid();


        return view('chimp.subscription.index',compact('packages','subscription','subscriptionIsValid'));
    }


    public function subscription_signup(Request $request,EmailPricing $package)
    {
        return $request->isMethod('post') ? $this->subscription_post($request,$package) : view('chimp.subscription.payment',compact('package'));
    }

    public function subscription_post($request,$package)
    {

       $data = $request->validate(
            [
                'operator' => 'required',
                'momo_number' => 'required',
                'amount' => 'required',
                'voucher' => 'required_if:operator,==,vodafone',
            ]
        );

       $data['user_id']          = auth()->user()->id;
       $data['username']         = auth()->user()->username;
       $data['email_pricing_id'] = $package->id;
       $data['callback']         = route('email.payment.callback');
       $data['transaction_id']   = $data['user_id'].'_'.Str::random('20');
       $data['request_body']     = json_encode($data);
       $data = (object)$data;


        $payment = $this->chimpPaymentCurl($data);
        return $payment->status ?? 'failed' == 'success' ? redirect()->route('email.subscription.index')->with(
            'success','Payment successfully initiated Kindly check your momo wallet to approve the transaction.') :
            redirect()->back()->withErrors('Error Payment could not be initiated Kindly try again !!');

    }



    public function payment_history(UserMailPaymentHistoryDataTable $history)
    {
        return $history->render('chimp.subscription.history');
    }




}
