<?php
class ModelAccountAuction extends Model {
	public function getCustomerAuction($auction_id) {
		$auction_query = $this->db->query("SELECT a.auction_id, a.highest_bid_amount, a.highest_bidder_id, a.total_no_of_bid, a.real_ending_time, a.auction_status_id, pa.product_id, pa.reserved_quantity, pa.starting_time, pd.name AS product_name  FROM " . DB_PREFIX . "auction a INNER JOIN " . DB_PREFIX . "product_auction pa ON (a.product_auction_id = pa.product_auction_id) LEFT JOIN " . DB_PREFIX . "product_description pd ON (pa.product_id = pd.product_id) WHERE a.auction_id = '" . (int)$auction_id . "' AND pd.language_id = '" . (int)$this->config->get('config_language_id') . "' GROUP BY a.auction_id");
	
		if ($auction_query->num_rows) {			
			return $auction_query->row;
		} else {
			return false;	
		}
	}
	 
	public function getCustomerAuctions($start = 0, $limit = 20) {
		if ($start < 0) {
			$start = 0;
		}
		
		if ($limit < 1) {
			$limit = 1;
		}	
		
		$query = $this->db->query("SELECT a.auction_id, a.highest_bidder_id, a.auction_status_id, pa.product_id, pa.reserved_quantity, pd.name AS product_name  FROM " . DB_PREFIX . "auction_bid ab LEFT JOIN " . DB_PREFIX . "auction a ON (ab.auction_id = a.auction_id) INNER JOIN " . DB_PREFIX . "product_auction pa ON (a.product_auction_id = pa.product_auction_id) LEFT JOIN " . DB_PREFIX . "product_description pd ON (pa.product_id = pd.product_id) WHERE ab.customer_id = '" . (int)$this->customer->getId() . "' AND pd.language_id = '" . (int)$this->config->get('config_language_id') . "' GROUP BY a.auction_id ORDER BY a.auction_id DESC LIMIT " . (int)$start . "," . (int)$limit);	
	
		return $query->rows;
	}
	
	public function getCustomerAuctionBids($auction_id, $start = 0, $limit = 20) {
		if ($start < 0) { $start = 0; }
		if ($limit < 1) { $limit = 20; }	

		$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "auction_bid WHERE auction_id = '" . (int)$auction_id . "' AND customer_id = '" . (int)$this->customer->getId() . "' ORDER BY bid_amount DESC LIMIT " . (int)$start . "," . (int)$limit);
	
		return $query->rows;
	}
	
	public function getTotalCustomerAuctions() {
      	$query = $this->db->query("SELECT COUNT(DISTINCT auction_id) AS total FROM " . DB_PREFIX . "auction_bid WHERE customer_id = '" . (int)$this->customer->getId() . "'");
		
		return $query->row['total'];
	}

	public function getCustomerLastAuctionBidTime($auction_id) {
		$query = $this->db->query("SELECT MAX(bid_time) AS last_bid_time FROM " . DB_PREFIX . "auction_bid WHERE auction_id = '" . (int)$auction_id . "' AND customer_id = '" . (int)$this->customer->getId() . "'");
		
		return $query->row['last_bid_time'];
	}

	public function getTotalCustomerAuctionBids($auction_id) {
		$query = $this->db->query("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "auction_bid WHERE auction_id = '" . (int)$auction_id . "' AND customer_id = '" . (int)$this->customer->getId() . "'");
		
		return $query->row['total'];
	}

	public function getCustomerHighestAuctionBid($auction_id) {
		$query = $this->db->query("SELECT MAX(bid_amount) AS highest FROM " . DB_PREFIX . "auction_bid WHERE auction_id = '" . (int)$auction_id . "' AND customer_id = '" . (int)$this->customer->getId() . "'");
		
		return $query->row['highest'];
	}

	public function getOrderAuction($order_id, $order_product_id) {
		$query = $this->db->query("SELECT auction_id FROM " . DB_PREFIX . "order_auction WHERE order_id = '" . (int)$order_id . "' AND order_product_id = '" . (int)$order_product_id . "'");
		
		return $query->row;
	}
}
?>