protected function defineAttributes()
 {
     return array_merge(parent::defineAttributes(), ['id' => [AttributeType::Number], 'productId' => [AttributeType::Number], 'isImplicit' => [AttributeType::Bool], 'sku' => [AttributeType::String, 'required' => true], 'price' => [AttributeType::Number, 'decimals' => 4, 'required' => true], 'width' => [AttributeType::Number, 'decimals' => 4], 'height' => [AttributeType::Number, 'decimals' => 4], 'length' => [AttributeType::Number, 'decimals' => 4], 'weight' => [AttributeType::Number, 'decimals' => 4], 'stock' => [AttributeType::Number], 'unlimitedStock' => [AttributeType::Bool, 'default' => 0], 'minQty' => [AttributeType::Number], 'maxQty' => [AttributeType::Number]]);
 }
 /**
  * @return array
  */
 protected function defineAttributes()
 {
     return array_merge(parent::defineAttributes(), ['id' => AttributeType::Number, 'number' => AttributeType::String, 'couponCode' => AttributeType::String, 'itemTotal' => [AttributeType::Number, 'decimals' => 4, 'default' => 0], 'baseDiscount' => [AttributeType::Number, 'decimals' => 4, 'default' => 0], 'baseShippingCost' => [AttributeType::Number, 'decimals' => 4, 'default' => 0], 'totalPrice' => [AttributeType::Number, 'decimals' => 4, 'default' => 0], 'totalPaid' => [AttributeType::Number, 'decimals' => 4, 'default' => 0], 'email' => AttributeType::String, 'dateOrdered' => AttributeType::DateTime, 'datePaid' => AttributeType::DateTime, 'currency' => AttributeType::String, 'lastIp' => AttributeType::String, 'message' => AttributeType::String, 'returnUrl' => AttributeType::String, 'cancelUrl' => AttributeType::String, 'orderStatusId' => AttributeType::Number, 'billingAddressId' => AttributeType::Number, 'shippingAddressId' => AttributeType::Number, 'shippingMethodId' => AttributeType::Number, 'paymentMethodId' => AttributeType::Number, 'customerId' => AttributeType::Number, 'typeId' => AttributeType::Number, 'shippingAddressData' => AttributeType::Mixed, 'billingAddressData' => AttributeType::Mixed]);
 }
 /**
  * @return array
  */
 protected function defineAttributes()
 {
     return array_merge(parent::defineAttributes(), ['typeId' => AttributeType::Number, 'authorId' => AttributeType::Number, 'taxCategoryId' => AttributeType::Number, 'promotable' => AttributeType::Bool, 'freeShipping' => AttributeType::Bool, 'availableOn' => AttributeType::DateTime, 'expiresOn' => AttributeType::DateTime]);
 }