<?php

/**
 * Class represents records from table helpdesk_message
 * {autogenerated}
 * @property int $message_id 
 * @property int $ticket_id 
 * @property datetime $dattm 
 * @property int $admin_id 
 * @property string $type enum('message','comment')
 * @property string $content 
 * @see Am_Table
 */
class HelpdeskMessage extends Am_Record {
    
    protected $_key = 'message_id';
    protected $_table = '?_helpdesk_message';
    private $ticket = null;
    
    /** @return HelpDeskTicket */
    public function getTicket()
    {
        if (is_null($this->ticket)) {
            $this->ticket = $this->getDi()->helpdeskTicketTable->load((int)$this->ticket_id);
        }
        return $this->ticket;
    }
}

class HelpdeskMessageTable extends Am_Table {
    protected $_key = 'message_id';
    protected $_table = '?_helpdesk_message';
    protected $_recordClass = 'HelpdeskMessage';

    public function insert(array $values, $returnInserted = false)
    {
        if (empty($values['dattm']))
            $values['dattm'] = $this->getDi()->sqlDateTime;
        return parent::insert($values, $returnInserted);
    }

    function selectLast($num)
    {
        return $this->selectObjects("SELECT m.*, u.*, t.ticket_mask as ticket_mask
            FROM ?_helpdesk_message m LEFT JOIN ?_helpdesk_ticket t USING (ticket_id)
            LEFT JOIN ?_user u ON t.user_id = u.user_id
            ORDER BY m.dattm DESC LIMIT ?d", $num);
    }
}


