package com.bonus.core.marketing.v2.rule.price.dto;

import com.fasterxml.jackson.databind.JsonNode;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.math.BigDecimal;

@ApiModel("计价规则-订单详情")
public class RulePriceOrderDetailDTO {
   @ApiModelProperty("详情id")
   private Long detailId;
   @ApiModelProperty("商品菜品id")
   private Long goodsDishesId;
   @ApiModelProperty("计算价格 分  会员时为优惠价格  非会员时为售卖价格")
   private BigDecimal price;
   @ApiModelProperty("数量/重量")
   private Integer quantity;
   @ApiModelProperty("订单详情计算总金额 分 会员时为优惠总额  非会员时为售卖总额")
   private BigDecimal calcTotalAmount;
   @ApiModelProperty("预留字段")
   private JsonNode extInfo;
   @ApiModelProperty("菜品类别id（消费规则初始化）")
   private Long dishTypeId;
   @ApiModelProperty("实际付款金额 分 消费规则计算后返回")
   private BigDecimal amount;
   @ApiModelProperty("优惠金额 分 消费规则计算后返回")
   private BigDecimal discountAmount;

   public Long getDetailId() {
      return this.detailId;
   }

   public Long getGoodsDishesId() {
      return this.goodsDishesId;
   }

   public BigDecimal getPrice() {
      return this.price;
   }

   public Integer getQuantity() {
      return this.quantity;
   }

   public BigDecimal getCalcTotalAmount() {
      return this.calcTotalAmount;
   }

   public JsonNode getExtInfo() {
      return this.extInfo;
   }

   public Long getDishTypeId() {
      return this.dishTypeId;
   }

   public BigDecimal getAmount() {
      return this.amount;
   }

   public BigDecimal getDiscountAmount() {
      return this.discountAmount;
   }

   public RulePriceOrderDetailDTO setDetailId(final Long detailId) {
      this.detailId = detailId;
      return this;
   }

   public RulePriceOrderDetailDTO setGoodsDishesId(final Long goodsDishesId) {
      this.goodsDishesId = goodsDishesId;
      return this;
   }

   public RulePriceOrderDetailDTO setPrice(final BigDecimal price) {
      this.price = price;
      return this;
   }

   public RulePriceOrderDetailDTO setQuantity(final Integer quantity) {
      this.quantity = quantity;
      return this;
   }

   public RulePriceOrderDetailDTO setCalcTotalAmount(final BigDecimal calcTotalAmount) {
      this.calcTotalAmount = calcTotalAmount;
      return this;
   }

   public RulePriceOrderDetailDTO setExtInfo(final JsonNode extInfo) {
      this.extInfo = extInfo;
      return this;
   }

   public RulePriceOrderDetailDTO setDishTypeId(final Long dishTypeId) {
      this.dishTypeId = dishTypeId;
      return this;
   }

   public RulePriceOrderDetailDTO setAmount(final BigDecimal amount) {
      this.amount = amount;
      return this;
   }

   public RulePriceOrderDetailDTO setDiscountAmount(final BigDecimal discountAmount) {
      this.discountAmount = discountAmount;
      return this;
   }

}
