forked from SimplesIP/pabx-app
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
85 lines
3.1 KiB
85 lines
3.1 KiB
2 years ago
|
<?php
|
||
|
|
||
|
namespace app\Models;
|
||
|
|
||
|
use app\Core\Model;
|
||
|
|
||
|
/**
|
||
|
* Description of Message
|
||
|
*
|
||
|
* @author root
|
||
|
*/
|
||
|
class Message extends Model
|
||
|
{
|
||
|
|
||
|
const MESSAGE = "md_message";
|
||
|
|
||
|
public function addMessage($uniqueid, $src, $dst, $tipo, $content, $profile_name, $media, $status, $mimetype = null, $file_name = null, $id_provedor = null)
|
||
|
{
|
||
|
if ($uniqueid) {
|
||
|
$this->query = "INSERT INTO " . self::MESSAGE . " (uniqueid, src, dst, type, content, profile_name, media, status, mimetype, file_name, id_provedor)
|
||
|
VALUES(:uniqueid, :src, :dst, :type, :content, :profile_name, :media, :status, :mimetype, :file_name, :id_provedor);";
|
||
|
return $this->create($this->query, [
|
||
|
'uniqueid' => $uniqueid,
|
||
|
'src' => $src,
|
||
|
'dst' => $dst,
|
||
|
'type' => $tipo,
|
||
|
'content' => $content,
|
||
|
'profile_name' => utf8_decode($profile_name),
|
||
|
'media' => $media,
|
||
|
'status' => $status,
|
||
|
'id_provedor' => $id_provedor,
|
||
|
'file_name' => $file_name,
|
||
|
'mimetype' => $mimetype
|
||
|
]);
|
||
|
} else {
|
||
|
logger('debug')->info(print_r([
|
||
|
'uniqueid' => $uniqueid,
|
||
|
'src' => $src,
|
||
|
'dst' => $dst,
|
||
|
'type' => $tipo,
|
||
|
'content' => $content,
|
||
|
'profile_name' => utf8_decode($profile_name),
|
||
|
'media' => $media,
|
||
|
'status' => $status,
|
||
|
'id_provedor' => $id_provedor,
|
||
|
'file_name' => $file_name,
|
||
|
'mimetype' => $mimetype
|
||
|
], true));
|
||
|
return null;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public function findMessageByUniqueid($uniqueid)
|
||
|
{
|
||
|
$this->query = "SELECT * FROM " . self::MESSAGE . " WHERE uniqueid = :uniqueid ORDER BY id";
|
||
|
return $this->read($this->query, ['uniqueid' => $uniqueid])->fetchAll();
|
||
|
}
|
||
|
|
||
|
public function findMessageByNumber($number)
|
||
|
{
|
||
|
$this->query = "SELECT * FROM " . self::MESSAGE . " WHERE (src = :number OR dst = :number) ORDER BY msg_date ASC, uniqueid ";
|
||
|
return $this->read($this->query, ['number' => $number])->fetchAll();
|
||
|
}
|
||
|
|
||
|
public function findLastMessage($uniqueid)
|
||
|
{
|
||
|
$this->query = "SELECT * FROM " . self::MESSAGE . " WHERE uniqueid = :uniqueid ";
|
||
|
$this->query .= " ORDER BY msg_date DESC LIMIT 1";
|
||
|
return $this->read($this->query, ['uniqueid' => $uniqueid])->fetch();
|
||
|
}
|
||
|
public function markMessege($uniqueid, $status)
|
||
|
{
|
||
|
$this->query = "UPDATE " . self::MESSAGE . " SET status = :status WHERE uniqueid = :uniqueid;";
|
||
|
$data['uniqueid'] = $uniqueid;
|
||
|
$data['status'] = $status;
|
||
|
return $this->update($this->query, $data);
|
||
|
}
|
||
|
|
||
|
public function getNameCliente($uniqueid, $cliente_id)
|
||
|
{
|
||
|
$this->query = "SELECT profile_name FROM md_message mm WHERE uniqueid = :uniqueid AND src = :cliente_id LIMIT 1";
|
||
|
|
||
|
return $this->read($this->query, ['uniqueid' => $uniqueid, 'cliente_id' => $cliente_id])->fetch();
|
||
|
}
|
||
|
}
|