<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Stripe\Stripe;
use Stripe\Customer;
use Stripe\PaymentIntent;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Auth;

class BillingController extends Controller
{
	//Expects an array 'packs' representing the amount of each multiple of credits.
	//This controller should have a way of figuring out how much of each pack
	//was bought later.
	//Should validate that all amounts are positive integers in a reasonable range
	public function secret(Request $request) {
		Stripe::setApiKey(env('STRIPE_SECRET'));
		Log::debug($request->packs);

		$amount = $request->packs[ 'credits10' ]*1099 +
			$request->packs[ 'credits50' ]*5499 + $request->packs[ 'credits100' ]*10999
			+ $request->packs[ 'credits1000' ]*101000;

		// Pass customer and setup_future_usage values here. Maybe metadata can
		// also hold pack information
		$intent = PaymentIntent::create([
			'amount' => $amount,
			'currency' => 'usd',
			'customer' => Auth::user()->customer_id,
			'metadata' => ['integration_check' => 'accept_a_payment']
		]);

		return $intent->client_secret;
	}
}