package com.zm.order.tool.server.request;

import com.alibaba.fastjson.JSON;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * @Description 创建订单商品请求
 * @Author: ph
 * @Date: 2019/11/15 14:06
 */
public class AddOrderItemRequest implements Serializable {

    private static final long serialVersionUID = 6569257781070637325L;

    @ApiModelProperty(value = "商品id", required = true)
    private String itemId;

    @ApiModelProperty(value = "商品名称", required = true)
    private String itemName;

    @ApiModelProperty(value = "spuId")
    private Long  goodsId;

    @ApiModelProperty(value = "活动id" )
    private Long  activityId;

    @ApiModelProperty(value = "限时折扣")
    private Integer  isTimeDiscount;

    @ApiModelProperty(value = "商品图片")
    private String itemImage;

    @ApiModelProperty(value = "商品规格")
    private String itemSpec;

    @ApiModelProperty(value = "商品单位")
    private String itemUnit;

    @ApiModelProperty(value = "商品条码")
    private String itemBarcode;

    @ApiModelProperty(value = "商品标识 线下对接用")
    private String itemSign;

    @ApiModelProperty(value = "优惠总金额", required = true)
    private Integer discountAmount;

    @ApiModelProperty(value = "包装费")
    private Integer packAmount;

    @ApiModelProperty(value = "品牌标识")
    private String brandSign;

    @ApiModelProperty(value = "品牌信息")
    private String brandInfo;

    @ApiModelProperty(value = "市场价",required = true)
    private Integer marketPrice;

    @ApiModelProperty(value = "成本价",required = true)
    private Integer costPrice;

    @ApiModelProperty(value = "会员价")
    private Integer memberPrice;

    @ApiModelProperty(value = "商品价格", required = true)
    private Integer itemPrice;

    @ApiModelProperty(value = "购买数量", required = true)
    private BigDecimal num;

    @ApiModelProperty(value = "f码")
    private String fCode;

    @ApiModelProperty(value = "商品级别的优惠")
    private List<AddOrderDiscountRequest> discountList;

    @ApiModelProperty(value = "扩展信息")
    private Map<String, Object> extraMap;

    @ApiModelProperty(value = "加菜时间")
    private Date orderAt;

    @ApiModelProperty(value = "条码")
    private String productNo;

    @ApiModelProperty(value = "是否赠品")
    private Integer isGift;

    @ApiModelProperty(value = "商家id")
    private Long sellerId;

    @ApiModelProperty(value = "来源id")
    private String sourceId;

    @ApiModelProperty(value = "商品类型 0:普通商品 1:套餐商品 2:套餐子商品")
    private Integer itemType;

    @ApiModelProperty(value = "套餐商品列表")
    private List<AddOrderItemRequest> setMealItemList;

    @ApiModelProperty(value = "商品加料")
    private List<OrderItemBatchingRequest> itemBatchingList;

    public Integer getItemType() {
        return itemType;
    }

    public void setItemType(Integer itemType) {
        this.itemType = itemType;
    }

    public List<AddOrderItemRequest> getSetMealItemList() {
        return setMealItemList;
    }

    public void setSetMealItemList(List<AddOrderItemRequest> setMealItemList) {
        this.setMealItemList = setMealItemList;
    }

    public List<OrderItemBatchingRequest> getItemBatchingList() {
        return itemBatchingList;
    }

    public void setItemBatchingList(List<OrderItemBatchingRequest> itemBatchingList) {
        this.itemBatchingList = itemBatchingList;
    }

    public String getSourceId() {
        return sourceId;
    }

    public void setSourceId(String sourceId) {
        this.sourceId = sourceId;
    }

    public Date getOrderAt() {
        return orderAt;
    }

    public void setOrderAt(Date orderAt) {
        this.orderAt = orderAt;
    }

    public String getItemId() {
        return itemId;
    }

    public void setItemId(String itemId) {
        this.itemId = itemId;
    }

    public String getItemName() {
        return itemName;
    }

    public void setItemName(String itemName) {
        this.itemName = itemName;
    }

    public String getItemImage() {
        return itemImage;
    }

    public void setItemImage(String itemImage) {
        this.itemImage = itemImage;
    }

    public String getItemSpec() {
        return itemSpec;
    }

    public void setItemSpec(String itemSpec) {
        this.itemSpec = itemSpec;
    }

    public String getItemUnit() {
        return itemUnit;
    }

    public void setItemUnit(String itemUnit) {
        this.itemUnit = itemUnit;
    }

    public String getItemBarcode() {
        return itemBarcode;
    }

    public void setItemBarcode(String itemBarcode) {
        this.itemBarcode = itemBarcode;
    }

    public String getItemSign() {
        return itemSign;
    }

    public void setItemSign(String itemSign) {
        this.itemSign = itemSign;
    }

    public Integer getDiscountAmount() {
        return discountAmount;
    }

    public void setDiscountAmount(Integer discountAmount) {
        this.discountAmount = discountAmount;
    }

    public Integer getPackAmount() {
        return packAmount;
    }

    public void setPackAmount(Integer packAmount) {
        this.packAmount = packAmount;
    }

    public String getBrandSign() {
        return brandSign;
    }

    public void setBrandSign(String brandSign) {
        this.brandSign = brandSign;
    }

    public String getBrandInfo() {
        return brandInfo;
    }

    public void setBrandInfo(String brandInfo) {
        this.brandInfo = brandInfo;
    }

    public Integer getMarketPrice() {
        return marketPrice;
    }

    public void setMarketPrice(Integer marketPrice) {
        this.marketPrice = marketPrice;
    }

    public Integer getCostPrice() {
        return costPrice;
    }

    public void setCostPrice(Integer costPrice) {
        this.costPrice = costPrice;
    }

    public Integer getMemberPrice() {
        return memberPrice;
    }

    public void setMemberPrice(Integer memberPrice) {
        this.memberPrice = memberPrice;
    }

    public Integer getItemPrice() {
        return itemPrice;
    }

    public void setItemPrice(Integer itemPrice) {
        this.itemPrice = itemPrice;
    }

    public String getProductNo() {
        return productNo;
    }

    public void setProductNo(String productNo) {
        this.productNo = productNo;
    }

    public Integer getIsGift() {
        return isGift;
    }

    public void setIsGift(Integer isGift) {
        this.isGift = isGift;
    }

    public Long getSellerId() {
        return sellerId;
    }

    public void setSellerId(Long sellerId) {
        this.sellerId = sellerId;
    }

    public BigDecimal getNum() {
        return num;
    }

    public void setNum(BigDecimal num) {
        this.num = num;
    }

    public String getfCode() {
        return fCode;
    }

    public void setfCode(String fCode) {
        this.fCode = fCode;
    }

    public List<AddOrderDiscountRequest> getDiscountList() {
        return discountList;
    }

    public void setDiscountList(List<AddOrderDiscountRequest> discountList) {
        this.discountList = discountList;
    }

    public Map<String, Object> getExtraMap() {
        return extraMap;
    }

    public void setExtraMap(Map<String, Object> extraMap) {
        this.extraMap = extraMap;
    }

    public Long getGoodsId() {
        return goodsId;
    }

    public void setGoodsId(Long goodsId) {
        this.goodsId = goodsId;
    }

    public Long getActivityId() {
        return activityId;
    }

    public void setActivityId(Long activityId) {
        this.activityId = activityId;
    }

    public Integer getIsTimeDiscount() {
        return isTimeDiscount;
    }

    public void setIsTimeDiscount(Integer isTimeDiscount) {
        this.isTimeDiscount = isTimeDiscount;
    }

    @Override
    public String toString() {
        return JSON.toJSONString(this);
    }
}
