<?php
class UMovil extends Usuario{

	function __construct(){
		parent::__construct();
	}

	public function autenticarMovil($usuario,$contrasena){
		return $this->autenticar($usuario,$contrasena,0);
	}

	public function verificarMovil($usuario,$contrasena){
		return $this->verificar($usuario,$contrasena,0);
	}

	public function registrarMovil($usuario,$contrasena,$nombre,$paterno,$materno,$celular,$correo){
		return $this->registrar($usuario,$contrasena,$nombre,$paterno,$materno,$celular,$correo,0);
	}

	public function vincularVehiculo($usuario,$contrasena,$vehiculo){
		if($this->verificarMovil($usuario,$contrasena)){
			$query = 'INSERT INTO usu_posee_veh(vehiculo_veh_id,usuario_usu_id,upv_estado) VALUES (?,?,?);';
			$rs = $this->cn->Execute($query,array($vehiculo,$this->id,true));
			if($this->cn->Affected_Rows()==1)
				return true;
		}
		return false;
	}

	public function vehiculos($usuario,$contrasena){
		if($this->verificarMovil($usuario,$contrasena)){
			$query = 'SELECT veh_id AS id, veh_patente AS patente, veh_marca AS marca, veh_modelo AS modelo, car_nombre AS carroceria FROM vehiculo LEFT JOIN usu_posee_veh ON veh_id = vehiculo_veh_id LEFT JOIN usuario ON usu_id = usuario_usu_id LEFT JOIN carroceria ON car_id = carroceria_car_id WHERE usu_id = ? ORDER BY veh_id;';
			$rs = $this->cn->Execute($query,array($this->id));
			if(!empty($rs) && !$rs->EOF){
				$vehiculos = $rs->GetArray();
				$rs->Close();
				return $vehiculos;
			}
		}
		return false;
	}

	public function historial($usuario,$contrasena,$limit,$offset){
		if($this->verificarMovil($usuario,$contrasena)){
			$query = 'SELECT ce.cli_id AS id, e.est_id AS id_estacionamiento, IF(e.est_nombre<>"",e.est_nombre,CONCAT("Estacionamiento ",e.est_id)) AS nombre, uce.uce_valoracion IS NOT NULL AS valoracion, IFNULL(uce.uce_valoracion,0) AS valor, DATE_FORMAT(urc.urc_fecha,"%d-%m-%Y") AS fecha
						FROM usuario AS u
						LEFT JOIN cliente_estacionado AS ce
						ON u.usu_id = ce.usuario_usu_id
						LEFT JOIN usu_registra_cli AS urc
						ON urc.cliente_estacionado_cli_id = ce.cli_id
						JOIN estacionamiento AS e
						ON e.est_id = ce.estacionamiento_est_id
						LEFT JOIN usu_califica_est AS uce
						ON uce.estacionamiento_est_id = e.est_id AND uce.usuario_usu_id = u.usu_id
						WHERE u.usu_apodo = ?
						ORDER BY urc.urc_fecha DESC LIMIT ? OFFSET ?;';
			$rs = $this->cn->Execute($query,array($usuario,$limit,$offset));
			if(!empty($rs) && !$rs->EOF){
				$usuario = $rs->GetArray();
				$rs->Close();
				return $usuario;
			}
		}
		return false;
	}

	public function notificacion($usuario,$contrasena){
		if($this->verificarMovil($usuario,$contrasena)){
			$query = 'SELECT cli.cli_id AS cli_id, cli.cli_patente AS patente, cli.estacionamiento_est_id AS est_id, IFNULL(est.est_nombre,CONCAT("Estacionamiento ",est.est_id)) AS est_nombre, DATE_FORMAT(cli.cli_entrada,"%H:%i:%s %d-%m-%Y") AS fecha_entrada, IF(cli.cli_salida IS NOT NULL,cli.cli_salida,NULL) AS fecha_salida, IF(cli.cli_salida IS NOT NULL,"desactivado","activado") AS estado
				FROM usuario AS usu
				LEFT JOIN cliente_estacionado AS cli
				ON usu.usu_id = cli.usuario_usu_id
				LEFT JOIN usu_registra_cli AS urc
				ON cli.cli_id = urc.cliente_estacionado_cli_id
				LEFT JOIN estacionamiento AS est
				ON est.est_id = cli.estacionamiento_est_id
				WHERE usu.usu_apodo = ? AND cli.cli_entrada IS NOT NULL AND (cli.cli_salida IS NULL OR cli.cli_pagado = 0 OR cli.cli_pagado IS NULL)
				ORDER BY urc.urc_fecha DESC LIMIT 1;';
			$rs = $this->cn->Execute($query,array($usuario));
			if(!empty($rs) && !$rs->EOF){
				$usuario = $rs->GetArray();
				$rs->Close();
				return $usuario;
			}
		}
		return false;
	}

	function __destruct(){
		parent::__destruct();
	}
}
?>