<?php
	// Your Credential API Key
	$agencode = 'An0vyxvH';
	$sign = '8bb44b83a912d8bbdbee5350ed37fdfe';
	
	class ApimaxAPI {
		private $base_url = "https://api.idnclubs.org/v1/";
		private $agent_code;
		private $agent_token;
		
		public function __construct($agent_code, $agent_token) {
			$this->agent_code = $agent_code;
			$this->agent_token = $agent_token;
		}
		
		private function generate_agent_token() {
			return $this->agent_token; // Static agent_token as provided
		}
		
		private function build_url($endpoint, $params) {
			$params['agent_code'] = $this->agent_code;
			$params['agent_token'] = $this->generate_agent_token();
			$url = $this->base_url . $endpoint . '?' . http_build_query($params);
			return $url;
		}
		
		private function send_request($url) {
			$ch = curl_init();
			curl_setopt($ch, CURLOPT_URL, $url);
			curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.47 Safari/537.36');
			curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
			curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
			curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
			
			$output = curl_exec($ch);
			curl_close($ch);
			return json_decode($output, true);
		}
		
		public function createMember($username) {
			$endpoint = "CreateMember.aspx";
			$params = array('username' => $username);
			$url = $this->build_url($endpoint, $params);
			return $this->send_request($url);
		}
		
		public function getBalanceUser($username) {
			$endpoint = "GetBalance.ashx";
			$params = array('username' => $username);
			$url = $this->build_url($endpoint, $params);
			return $this->send_request($url);
		}
		
		public function getAgentInfo() {
			$endpoint = "AgentInfo.ashx";
			$url = $this->build_url($endpoint, array());
			return $this->send_request($url);
		}
		
		public function getProviderList() {
			$endpoint = "GetProviderList.aspx";
			$url = $this->build_url($endpoint, array());
			return $this->send_request($url);
		}
		
		public function getGameList($provider_code) {
			$endpoint = "GetGameList.aspx";
			$params = array('provider' => $provider_code);
			$url = $this->build_url($endpoint, $params);
			return $this->send_request($url);
		}
		
		public function launchGame($username, $gameid) {
			$endpoint = "LaunchGame.aspx";
			$params = array('username' => $username, 'game_code' => $gameid);
			$url = $this->build_url($endpoint, $params);
			return $this->send_request($url);
		}
		
		public function withdraw($username, $amount) {
			$endpoint = "MakeTransfer.aspx";
			$params = array('username' => $username, 'amount' => $amount, 'type' => 'withdraw');
			$url = $this->build_url($endpoint, $params);
			return $this->send_request($url);
		}
		
		public function deposit($username, $amount) {
			$endpoint = "MakeTransfer.aspx";
			$params = array('username' => $username, 'amount' => $amount, 'type' => 'deposit');
			$url = $this->build_url($endpoint, $params);
			return $this->send_request($url);
		}
		
		public function getHistoryBettingMember() {
			$endpoint = "GetHistoryArchive.aspx";
			$url = $this->build_url($endpoint, array());
			return $this->send_request($url);
		}
		
		public function markHistoryBettingMember($trx_id) {
			$endpoint = "MarkHistoryArchive.aspx";
			$params = array('trx_id' => $trx_id);
			$url = $this->build_url($endpoint, $params);
			return $this->send_request($url);
		}
		
		public function launchDemoGame($username, $gameid) {
			$endpoint = "OpenDGame.aspx";
			$params = array('username' => $username, 'gameid' => $gameid);
			$url = $this->build_url($endpoint, $params);
			return $this->send_request($url);
		}
	}
	
	// Inisialisasi kelas ApimaxAPI dengan agent code dan agent_token dari database
	$FLASHERDEV = new ApimaxAPI($agencode, $sign);
?>
