<?php

namespace CGClientTickets\Repository;

class MessageListResultset extends \CGExtensions\query\resultset
{
    public function __construct(MessageListQuery $filter) {
        $this->_filter = $filter;
    }

    protected function _query()
    {
        if( $this->_rs ) return;

        $db = \cge_utils::get_db();
        $sql = 'SELECT SQL_CALC_FOUND_ROWS id,ticket_id,sender,dest,subject,body,extra,sent,created,modified,viewed,viewed_by,admin_viewed
                FROM '.CGST_MSGS_TABLE;
        $where = array();
        $parms = array();
        if( ($ticket_id = (int)$this->_filter['ticket_id']) ) {
            $where[] = 'ticket_id = ?';
            $parms[] = $ticket_id;
        }

        if( count($where) ) $sql .= ' WHERE '.implode(' AND ',$where);
        $sql .= ' ORDER BY modified ASC';
        $this->_rs = $db->SelectLimit($sql,$this->_filter['limit'],$this->_filter['offset'],$parms);
        $this->_totalmatching = $db->GetOne('SELECT FOUND_ROWS()');
    }

    public function &get_object()
    {
        $obj = new \CGClientTickets\message;
        $obj->private_fill($this->fields);
        return $obj;
    }
} // end of class

?>
