1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36  37  38  39  40  41  42  43  44  45  46  47  48  49  50  51  52  53  54  55  56  57  58  59  60  61  62  63  64  65  66  67  68  69  70  71  72  73  74  75  76  77  78  79  80  81  82  83  84  85  86  87  88  89  90  91  92  93  94  95  96  97  98  99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 
<?php
/* --------------------------------------------------------------
   OrderStatusHistoryListItem.php 2017-06-14
   Gambio GmbH
   http://www.gambio.de
   Copyright (c) 2017 Gambio GmbH
   Released under the GNU General Public License (Version 2)
   [http://www.gnu.org/licenses/gpl-2.0.html]
   --------------------------------------------------------------
*/


/**
 * Class OrderStatusHistoryListItem
 *
 * @category   System
 * @package    Order
 * @subpackage Entities
 */
class OrderStatusHistoryListItem
{
    /**
     * ID of the order status history item.
     *
     * @var int
     */
    protected $orderStatusHistoryId = 0;
    
    /**
     * ID of the order status.
     *
     * @var int
     */
    protected $orderStatusId = 0;
    
    /**
     * Order status history item creation date time.
     *
     * @var DateTime
     */
    protected $dateAdded;
    
    /**
     * Optional comment of the order status history item.
     *
     * @var string
     */
    protected $comment = '';
    
    /**
     * Customer notified flag.
     *
     * @var bool
     */
    protected $customerNotified = false;
    
    /**
     * Customer ID of the admin account.
     *
     * @var int
     */
    protected $customerId = 0;
    
    
    /**
     * OrderStatusHistoryListItem constructor.
     *
     * @param IdType     $orderStatusHistoryId Order status history ID.
     * @param IdType     $orderStatusId        Order status ID.
     * @param DateTime   $dateAdded            Order status history item creation date time.
     * @param StringType $comment              Optional comment of the order status history item.
     * @param BoolType   $customerNotified     Customer notified flag.
     * @param IdType     $customerId           Customer ID of the admin account.
     */
    public function __construct(IdType $orderStatusHistoryId,
                                IdType $orderStatusId,
                                DateTime $dateAdded,
                                StringType $comment,
                                BoolType $customerNotified,
                                IdType $customerId = null)
    {
        if($customerId === null)
        {
            $customerId = new IdType(0);
        }
        
        $this->orderStatusHistoryId = $orderStatusHistoryId->asInt();
        $this->orderStatusId        = $orderStatusId->asInt();
        $this->dateAdded            = $dateAdded;
        $this->comment              = $comment->asString();
        $this->customerNotified     = $customerNotified->asBool();
        $this->customerId           = $customerId->asInt();
    }
    
    
    /**
     * Returns the ID of the order status history item.
     * @return int Order status history item ID.
     */
    public function getOrderStatusHistoryId()
    {
        return $this->orderStatusHistoryId;
    }
    
    
    /**
     * Returns the ID of the order status.
     * @return int Order status ID.
     */
    public function getOrderStatusId()
    {
        return $this->orderStatusId;
    }
    
    
    /**
     * Returns the order status history item creation date time.
     * @return DateTime Order status history item creation date time.
     */
    public function getDateAdded()
    {
        return $this->dateAdded;
    }
    
    
    /**
     * Returns the comment of the order status history item.
     * @return string Comment of the order status history item.
     */
    public function getComment()
    {
        return $this->comment;
    }
    
    
    /**
     * Returns the value of customer notified flag.
     * @return boolean Customer is notified?
     */
    public function isCustomerNotified()
    {
        return $this->customerNotified;
    }
    
    /**
     * Returns the customer ID of the admin account.
     * @return int Customer ID of admin account.
     */
    public function getCustomerId()
    {
        return $this->customerId;
    }
}