%PDF- %PDF-
Direktori : /home/vacivi36/intranet.vacivitta.com.br/protected/modules/mail/models/ |
Current File : /home/vacivi36/intranet.vacivitta.com.br/protected/modules/mail/models/MessageEntry.php |
<?php namespace humhub\modules\mail\models; use humhub\components\ActiveRecord; use humhub\modules\content\widgets\richtext\RichText; use humhub\modules\mail\live\UserMessageDeleted; use humhub\modules\user\models\User; use Yii; /** * This class represents a message within a conversation. * * The followings are the available columns in table 'message_entry': * @property integer $id * @property integer $message_id * @property integer $user_id * @property integer $file_id * @property string $content * @property string $created_at * @property integer $created_by * @property string $updated_at * @property integer $updated_by * * The followings are the available model relations: * @property Message $message * @property User $user * @property File $file * * @package humhub.modules.mail.models * @since 0.5 */ class MessageEntry extends ActiveRecord { /** * @return string the associated database table name */ public static function tableName() { return 'message_entry'; } /** * @param \humhub\modules\mail\models\Message $message * @param User $user * @param $content * @return static */ public static function createForMessage(Message $message, User $user, $content) { // Attach Message Entry return new static([ 'message_id' => $message->id, 'user_id' => $user->id, 'content' => $content ]); } /** * @return array validation rules for model attributes. */ public function rules() { // NOTE: you should only define rules for those attributes that // will receive user inputs. return [ [['message_id', 'user_id', 'content'], 'required'], [['message_id', 'user_id', 'file_id', 'created_by', 'updated_by'], 'integer'], [['created_at', 'updated_at'], 'safe'], ]; } public function getUser() { return $this->hasOne(User::class, ['id' => 'user_id']); } public function getMessage() { return $this->hasOne(Message::class, ['id' => 'message_id']); } public function beforeSave($insert) { if ($this->isNewRecord) { // Updates the updated_at attribute $this->message->save(); } return parent::beforeSave($insert); } public function afterSave($insert, $changedAttributes) { RichText::postProcess($this->content, $this); parent::afterSave($insert, $changedAttributes); // TODO: Change the autogenerated stub } public function afterDelete() { foreach ($this->message->users as $user) { Yii::$app->live->send(new UserMessageDeleted([ 'contentContainerId' => $user->contentcontainer_id, 'message_id' => $this->message_id, 'entry_id' => $this->id, 'user_id' => $user->id ])); } parent::afterDelete(); } /** * Notify User in this message entry */ public function notify(bool $isNewConversation = false) { $messageNotification = new MessageNotification($this->message, $this); $messageNotification->isNewConversation = $isNewConversation; $messageNotification->notifyAll(); } public function canEdit() { return $this->created_by == Yii::$app->user->id; } }