<?php

namespace App\Classes\External;

use GuzzleHttp\Client;
use Illuminate\Support\Collection;
use Illuminate\Support\Facades\Cache;

abstract class Payments
{
	abstract protected function connect(string $url,array $args=[]);
	abstract public function getCustomers(): Collection;
	abstract public function getDebits($opt=[]): Collection;
	abstract public function getSettlements($opt=[]): Collection;

	protected function getClient(string $base_uri): Client
	{
		return new Client(['base_uri'=>$base_uri]);
	}

	protected function mustPause()
	{
		return Cache::get('api_throttle');
	}
}