<?php
/**
 * Its used for Notification Style Base
 *
 * @since: 21/09/2021
 * @author: Sarwar Hasan
 * @version 1.0.0
 * @package Elite_Notification_Lite\Libs
 */

namespace Elite_Notification_Lite\Libs;

use Elite_Notification_Lite\Core\Elite_Notification_Lite;

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

/**
 * Class Apbd_En_Style_Base
 *
 * @package Elite_Notification_Lite\Libs
 */
abstract class Apbd_En_Style_Base {
	/**
	 * Its property id
	 *
	 * @var mixed
	 */
	public $id;
	/**
	 * Its property image_link
	 *
	 * @var mixed
	 */
	public $image_link;

	/**
	 * Apbd_En_Style_Base constructor.
	 */
	public function __construct() {
		$this->id         = $this->get_id();
		$this->image_link = $this->get_image_link();
	}

	/**
	 * The kernel is generated by appsbd
	 *
	 * @return Elite_Notification_Lite
	 */
	public function &kernel() {
		return Elite_Notification_Lite::get_instance();
	}

	/**
	 * The get plugin url is generated by appsbd
	 *
	 * @param mixed $path It is path param.
	 *
	 * @return string
	 */
	public function get_plugin_url( $path ) {
		return plugins_url( $path, $this->kernel()->plugin_file );
	}
	/**
	 * The get id is generated by appsbd
	 *
	 * @return mixed
	 */
	abstract public function get_id();
	/**
	 * The get image link is generated by appsbd
	 *
	 * @return mixed
	 */
	abstract public function get_image_link();
}
