<?php

namespace SugarCalendarBookings\Locations;

/**
 * Abstract location.
 *
 * @since 1.0.0
 */
abstract class AbstractLocation {

	/**
	 * Get the location type.
	 *
	 * @since 1.0.0
	 *
	 * @return string
	 */
	abstract public function get_type();

	/**
	 * Get the location display name.
	 *
	 * @since 1.0.0
	 *
	 * @return string
	 */
	abstract public function get_display_name();

	/**
	 * Get the location address.
	 *
	 * @since 1.0.0
	 *
	 * @return null|string
	 */
	abstract public function get_address();

	/**
	 * Get the location model.
	 *
	 * Only for in-person locations.
	 *
	 * @since 1.0.0
	 *
	 * @return LocationModel|null
	 */
	public function get_model() {

		return null;
	}
}
