TTi18n::gettext( 'UNREAD' ), 20 => TTi18n::gettext( 'READ' ), ]; break; } return $retval; } /** * @param $data * @return array */ function _getVariableToFunctionMap( $data ) { $variable_function_map = [ 'id' => 'ID', 'user_id' => 'User', 'message_sender_id' => 'MessageSender', 'status_id' => 'Status', 'status_date' => 'StateDate', 'ack' => 'Ack', 'ack_date' => 'AckDate', 'message_control_id' => false, 'deleted' => 'Deleted', ]; return $variable_function_map; } /** * @return mixed */ function getUser() { return $this->getGenericDataValue( 'user_id' ); } /** * @param string $value UUID * @return bool */ function setUser( $value ) { $value = TTUUID::castUUID( $value ); return $this->setGenericDataValue( 'user_id', $value ); } /** * @return bool|mixed */ function getMessageSender() { return $this->getGenericDataValue( 'message_sender_id' ); } /** * @param string $value UUID * @return bool */ function setMessageSender( $value ) { $value = TTUUID::castUUID( $value ); return $this->setGenericDataValue( 'message_sender_id', $value ); } /** * @return bool|int */ function getStatus() { return $this->getGenericDataValue( 'status_id' ); } /** * @param $value * @return bool */ function setStatus( $value ) { $value = (int)trim( $value ); $this->setStatusDate(); return $this->setGenericDataValue( 'status_id', $value ); } /** * @return bool|mixed */ function getStatusDate() { return $this->getGenericDataValue( 'status_date' ); } /** * @param int $value EPOCH * @return bool */ function setStatusDate( $value = null ) { $value = ( !is_int( $value ) && $value !== null ) ? trim( $value ) : $value;//Dont trim integer values, as it changes them to strings. if ( $value == null ) { $value = TTDate::getTime(); } return $this->setGenericDataValue( 'status_date', $value ); } /** * @return bool */ function isAck() { if ( $this->getRequireAck() == true && $this->getAckDate() == '' ) { return false; } return true; } /** * @return bool */ function getAck() { return $this->fromBool( $this->getGenericDataValue( 'ack' ) ); } /** * @param $value * @return bool */ function setAck( $value ) { $this->setGenericDataValue( 'ack', $this->toBool( $value ) ); if ( $this->getAck() == true ) { $this->setAckDate(); $this->setAckBy(); } return true; } /** * @return bool|mixed */ function getAckDate() { return $this->getGenericDataValue( 'ack_date' ); } /** * @param int $value EPOCH * @return bool */ function setAckDate( $value = null ) { $value = ( !is_int( $value ) && $value !== null ) ? trim( $value ) : $value;//Dont trim integer values, as it changes them to strings. if ( $value == null ) { $value = TTDate::getTime(); } return $this->setGenericDataValue( 'ack_date', $value ); } /** * @return bool */ function postSave() { $this->removeCache( $this->getUser(), 'message_control' ); //Clear cache so badge counts can be updated immediately. See MessageControlListFactory->getNewMessagesByCompanyIdAndUserId() return true; } /** * @return bool */ function Validate() { // // BELOW: Validation code moved from set*() functions. // // Employee if ( $this->getUser() != TTUUID::getZeroID() ) { $ulf = TTnew( 'UserListFactory' ); /** @var UserListFactory $ulf */ $this->Validator->isResultSetWithRows( 'user', $ulf->getByID( $this->getUser() ), TTi18n::gettext( 'Invalid Employee' ) ); } // Message Sender if ( $this->isNew() == true ) { //If the sender deletes their sent message, this validation will fail if the receiving tries to view/mark the message as read. if ( $this->getMessageSender() !== false ) { $mslf = TTnew( 'MessageSenderListFactory' ); /** @var MessageSenderListFactory $mslf */ $this->Validator->isResultSetWithRows( 'message_sender_id', $mslf->getByID( $this->getMessageSender() ), TTi18n::gettext( 'Message Sender is invalid' ) ); } } // Status if ( $this->getStatus() !== false ) { $this->Validator->inArrayKey( 'status', $this->getStatus(), TTi18n::gettext( 'Incorrect Status' ), $this->getOptions( 'status' ) ); } // Date if ( $this->getStatusDate() !== false ) { $this->Validator->isDate( 'status_date', $this->getStatusDate(), TTi18n::gettext( 'Incorrect Date' ) ); } // Acknowledge Date if ( $this->getAckDate() !== false ) { $this->Validator->isDate( 'ack_date', $this->getAckDate(), TTi18n::gettext( 'Invalid Acknowledge Date' ) ); } // // ABOVE: Validation code moved from set*() functions. // return true; } /** * @return bool */ function preSave() { if ( $this->getStatus() == false ) { $this->setStatus( 10 ); //UNREAD } return true; } } ?>