Your IP : 216.73.216.224


Current Path : /var/www/html/administrator/components/com_jchat/Table/
Upload File :
Current File : /var/www/html/administrator/components/com_jchat/Table/MessagesTable.php

<?php
namespace JExtstore\Component\JChat\Administrator\Table;
/**
 *
 * @package JCHAT::MESSAGES::administrator::components::com_jchat
 * @subpackage tables
 * @author Joomla! Extensions Store
 * @copyright (C) 2024 - Joomla! Extensions Store
 * @license GNU/GPLv2 http://www.gnu.org/licenses/gpl-2.0.html 
 */
defined ( '_JEXEC' ) or die ( 'Restricted access' );
use Joomla\Database\DatabaseInterface;
use Joomla\Database\DatabaseDriver;
use Joomla\Event\DispatcherInterface;
use Joomla\CMS\Table\Table;
use JExtstore\Component\JChat\Administrator\Framework\Exception\Exceptions;

/**
 * Messages table
 *
 * @package JCHAT::MESSAGES::administrator::components::com_jchat
 * @subpackage tables
 * @since 1.0
 */
class MessagesTable extends Table {
	use Exceptions;
	
	/**
	 * DatabaseInterface object.
	 * @protected DatabaseInterface Object
	 */
	protected $dbo;
	/**
	 * @var int Primary key
	 */
	public $id = 0;
	/**
	 * @var string
	 */
	public $from = '';
	/**
	 * @var string
	 */
	public $to = '';
	/**
	 * @var int
	 */
	public $fromuser = null;
	/**
	 * @var int
	 */
	public $touser = null;
	/**
	 * @var string
	 */
	public $message = '';
	/**
	 * @var string
	 */
	public $sent = 0;
	/**
	 * @var int
	 */
	public $read = 0;
	/**
	 * @var string
	 */
	public $type = 'message';
	/**
	 * @var int
	 */
	public $status = 0;
	/**
	 * @var int
	 */
	public $clientdeleted = 0;
	/**
	 * @var string
	 */
	public $actualfrom = '';
	/**
	 * @var string
	 */
	public $actualto = '';
	/**
	 * @var int
	 */
	public $sentroomid = null;
	/**
	 * @var string
	 */
	public $ipaddress = null;
	
	/**
	 * Delete Table override
	 * @override
	 *
	 * @see Table::delete()
	 */
	public function delete($pk = null) {
		$messageDeleted = parent::delete($pk);
	
		if($messageDeleted) {
			// Delete reference table messages by foreign key
			$query = method_exists ( $this->dbo, 'createQuery' ) ? $this->dbo->createQuery () : $this->dbo->getQuery ( true );
			$query = $query->delete('#__jchat_public_readmessages');
			$query->where('messageid = ' . (int)$pk);
			// Check for a database error.
			try {
				$this->dbo->setQuery($query);
				$this->dbo->execute();
			} catch(\Exception $e) {
				$messageDeleted = false;
			}
		}
	
		return $messageDeleted;
	}
	
	/**
	 * Class constructor
	 * @param DatabaseDriver $db DatabaseDriver object.
	 * @param DispatcherInterface  $dispatcher  Event dispatcher for this table
	 *
	 * return Object&
	 */
	public function __construct(DatabaseInterface $db, ?DispatcherInterface $dispatcher = null) {
		parent::__construct ( '#__jchat', 'id', $db, $dispatcher );
		
		$this->dbo = $db;
	}
}