????

Your IP : 216.73.216.188


Current Path : /home/degesdxb/public_html/wp-content/plugins/mphb-pricelabs/includes/data/
Upload File :
Current File : //home/degesdxb/public_html/wp-content/plugins/mphb-pricelabs/includes/data/pricelabs-rate.php

<?php

namespace MPHB\Addons\MPHB_Pricelabs;

if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * We use Accommodation Type Original Id as an Id of PriceLabs rates.
 */
class Pricelabs_Rate extends \MPHB\Entities\Rate {

	private int $id;
	/**
	 * @var array [ date (string Y-m-d) => price (float) ]
	 */
	private array $dates_with_prices = array();


	public function __construct( int $roomTypeOriginalId ) {

		$this->id = $roomTypeOriginalId;
	}

	/**
	 * @return int
	 */
	public function getId() {
		return $this->id;
	}

	/**
	 * @return int
	 */
	public function getOriginalId() {
		return $this->id;
	}

	/**
	 * @return string
	 */
	public function getTitle() {
		return __( 'Standard rate', 'mphb-pricelabs');
	}

	/**
	 * @return string
	 */
	public function getDescription() {
		return '';
	}

	/**
	 * @return SeasonPrice[]
	 */
	public function getSeasonPrices() {
		return array();
	}

	/**
	 * @return int original room type id
	 */
	public function getRoomTypeId() {
		return $this->id;
	}

	/**
	 * @return bool
	 */
	public function isActive() {
		return true;
	}

	/**
	 * @return Season[]
	 */
	public function getSeasons() {
		return array();
	}

	/**
	 * @return array [ date (string Y-m-d) => price (float) ]
	 */
	public function getDatePrices() {

		if ( empty( $this->dates_with_prices ) ) {

			global $wpdb;

			$prices = $wpdb->get_results( 
				$wpdb->prepare(
					"SELECT rental_date, price FROM {$wpdb->prefix}mphbpl_pricelabs_rates WHERE accommodation_type_id=%d",
					$this->getRoomTypeId()
				),
				ARRAY_A
			);

			foreach ( $prices as $price_data ) {

				$this->dates_with_prices[ $price_data['rental_date'] ] = (float) $price_data['price'];
			}
		}

		return $this->dates_with_prices;
	}
}