<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class User_model extends CI_Model
{
	
	const TOKENPW = 'violet';
	
	function __construct(){
        parent::__construct();
		$this->vservices->setApiUrl($this->config->item('api_url'));
		$this->vservices->setConnection($this->curl);
    } 
	
	function checkLogin ($src, $token, $username, $password) 
	{
		$data = $this->vservices->actionExecute('login', array('src' => $src, 'token' => $token, 'username' => $username, 'password' => $password), 'user');		
		$arr_users = explode("&", $data);
		$str_status = "";
		$str_fullname = "";
		$str_usid = "";
		$usid = "";
		$fullname = "";
		for ($i=0; $i<count($arr_users); $i++)
		{
			if (strpos($arr_users[$i], 'status=') !== false)
			{
				$str_status = $arr_users[$i];
			}
			
			if (strpos($arr_users[$i], 'fullname=') !== false)
			{
				$str_fullname = $arr_users[$i];
			}
			
			if (strpos($arr_users[$i], 'id=') !== false)
			{
				$str_usid = $arr_users[$i];
			}
		}
		$arr_status = explode("=", $str_status);
		if ($str_fullname != "")
		{
			$arr_fullname = explode("=", $str_fullname);
			$fullname = $arr_fullname[1];
		}
		if ($str_usid !== "")
		{
			$arr_usid = explode("=", $str_usid);
			$usid = $arr_usid[1];
		}
		$status = (int)$arr_status[1];
		if ($status == 0 || $status = 4){
			$us_id = (int)$usid;
			$query = "SELECT * FROM tbluser WHERE us_id = ?";
			$result = $this->db->query($query, array($us_id));
			if($result->num_rows() == 1){
				return $data;
			}else
			{
				return null;
			}
		}else
		{
			return $data;
		}
	}

	function register ($sentNumber, $receiverID, $serviceID, $commandcode, $info, $receiveTime)
	{
		//1. check collaborator info if $receiverID existed
		//2. insert new user to database
		//3. create random password for new user
		//4. return sms contain password
		
		$username = '';
		$collaborator = '';
		if (is_null($receiverID) || $receiverID == '') {
			$username = $sentNumber;
		}
		else {
			$username = $receiverID;
			$collaborator = $sentNumber;
		}
		$user = array();
		$smslog = array();
		$password = $this->create_random_password();
		$src = 'SBG';
		$token = md5($username.self::TOKENPW);
		$phone = $username;
		$data = $this->vservices->actionExecute('update', array('src'=>$src, 'username'=>$username, 'password'=>$password, 'fullname'=>" ", 'phone'=>$username, 'token'=>$token), 'user');
		$status = substr($data, 7, 1);
		$sms = "";
		switch($status)
		{
			case "0":
				$us_id = (int)substr($data, 12);
				$user['created_time'] = $receiveTime;
				$user['updated_time'] = $receiveTime;
				$user['us_id'] = $us_id;
				$user['cellphone'] = $username;
				$user['collaborator'] = $collaborator;
				$this->db->insert('tbluser', $user);
				$smslog['sender'] = $sentNumber;
				$smslog['us_id'] = $us_id;
				$smslog['service_id'] = $serviceID;
				$smslog['commandcode'] = $commandcode;
				$smslog['info'] = $info;
				$smslog['created_time'] = $receiveTime;
				$this->db->insert('tblsmslog', $smslog);
				$sms = "Chuc mung Qui vi da dang ky thanh cong tai khoan Soan Bai giang Online.
					Hay dang nhap vao http://soanbaigiang.smas.vn/ voi ten truy nhap [".$username."], mat khau [".$password."] de su dung.";
				return $sms;
			case "2":
				$sms = "Tai khoan cua Qui vi da duoc dang ky !";			
				return $sms;
			case "4":
				$sms = "So dien thoai của Qui vi da duoc dang ky !";
				return $sms;
			default:
				break;
		}
	}
	
	function create_random_password()
	{
		$alphabet = "abcdefghijklmnopqrstuwxyzABCDEFGHIJKLMNOPQRSTUWXYZ0123456789";
		$pass = array();
		$alphaLength = strlen($alphabet) - 1;
		for ($i = 0; $i < 6; $i++) {
			$n = rand(0, $alphaLength);
			$pass[] = $alphabet[$n];
		}
		return implode($pass);
	}
}