content: package com.alipay.api.domain;
  
  import java.util.Date;
  import java.util.List;
  
  import com.alipay.api.AlipayObject;
  import com.alipay.api.internal.mapping.ApiField;
  import com.alipay.api.internal.mapping.ApiListField;
  
  /**
   * 口碑pos订单菜明细
   *
   * @author auto create
   * @since 1.0, 2020-09-14 15:04:01
   */
  public class KbPosOrderDishDetail extends AlipayObject {
  
  	private static final long serialVersionUID = 5663723256321567251L;
  
  	/**
  	 * 改价（单价），以元为单位，精度到分
  	 */
  	@ApiField("change_price")
  	private String changePrice;
  
  	/**
  	 * 改价原因
  	 */
  	@ApiField("change_reason")
  	private String changeReason;
  
  	/**
  	 * 菜谱ID
  	 */
  	@ApiField("cook_id")
  	private String cookId;
  
  	/**
  	 * 菜谱版本号，用时间戳实现（示例：date.getTime()）
  	 */
  	@ApiField("cook_version")
  	private String cookVersion;
  
  	/**
  	 * 是否可以享受优惠
  	 */
  	@ApiField("discountable")
  	private Boolean discountable;
  
  	/**
  	 * 菜品ID
  	 */
  	@ApiField("dish_id")
  	private String dishId;
  
  	/**
  	 * 菜品名称
  	 */
  	@ApiField("dish_name")
  	private String dishName;
  
  	/**
  	 * 菜品数量，≥1
  	 */
  	@ApiField("dish_num")
  	private Long dishNum;
  
  	/**
  	 * 菜品单位
  	 */
  	@ApiField("dish_unit")
  	private String dishUnit;
  
  	/**
  	 * 菜品明细版本号
  	 */
  	@ApiField("dish_version")
  	private Long dishVersion;
  
  	/**
  	 * 扩展信息，json对象格式，key和value都为字符串。目前包含内容为1、outItemId表示外部菜品id，2、outSkuId外部菜品sku id，3、defaultInCarts开台必点菜。4、cookVersion菜谱版本，5、costInclusive 是否包含在套餐基础价；6、costPrice 原价(以元为单位，精度到分)；7、groupSort：套餐分组排序值；8、isProperty：加料是否为属性字段，值为true／false；
  	 */
  	@ApiField("ext_info")
  	private String extInfo;
  
  	/**
  	 * 是否改价
  	 */
  	@ApiField("has_change")
  	private Boolean hasChange;
  
  	/**
  	 * 是否是主明细，默认都是主明细。除了点套餐的时候，套餐本身这个菜作为主明细设置，套餐下的菜明细作为非主明细设置。
  	 */
  	@ApiField("main_flag")
  	private Boolean mainFlag;
  
  	/**
  	 * 主明细id，套餐下的菜品对应的主明细id
  	 */
  	@ApiField("main_out_detail_no")
  	private String mainOutDetailNo;
  
  	/**
  	 * 制作状态，取值约定：INIT-未制作，MAKE-已制作，SERVE-已上菜，REFUND-已退菜
  	 */
  	@ApiField("make_status")
  	private String makeStatus;
  
  	/**
  	 * 会员价（单价），以元为单位，精度到分
  	 */
  	@ApiField("member_price")
  	private String memberPrice;
  
  	/**
  	 * 备注
  	 */
  	@ApiField("memo")
  	private String memo;
  
  	/**
  	 * 下单操作员ID
  	 */
  	@ApiField("operator")
  	private String operator;
  
  	/**
  	 * 下单时间，格式yyyy-mm-dd hh:mm:ss
  	 */
  	@ApiField("order_time")
  	private Date orderTime;
  
  	/**
  	 * pos本地订单菜明细流水号
  	 */
  	@ApiField("out_detail_no")
  	private String outDetailNo;
  
  	/**
  	 * 当前菜为单品菜时,为对应的sku外部ID
  当前菜为加料时,为对应的加料的外部ID
  	 */
  	@ApiField("outer_id")
  	private String outerId;
  
  	/**
  	 * 做法信息，格式按照：做法1,做法2，对于有一般销售属性的菜会拼接一般销售属性信息，格式为：做法1,做法2,销售属性1,销售属性2
  	 */
  	@ApiField("practice_info")
  	private String practiceInfo;
  
  	/**
  	 * 做法合计加价（单价），以元为单位，精度到分
  	 */
  	@ApiField("practice_price")
  	private String practicePrice;
  
  	/**
  	 * 退菜原因
  	 */
  	@ApiField("refund_reason")
  	private String refundReason;
  
  	/**
  	 * 退菜时间，格式yyyy-mm-dd hh:mm:ss
  	 */
  	@ApiField("refund_time")
  	private Date refundTime;
  
  	/**
  	 * 催菜次数
  	 */
  	@ApiField("remind_time")
  	private Long remindTime;
  
  	/**
  	 * 销售属性，使用Map<String,List<String>> salesProperties = JSONObject.parseObject(sales_properties,Map.class)转换
  	 */
  	@ApiField("sales_properties")
  	private String salesProperties;
  
  	/**
  	 * 销售属性的扩展
  	 */
  	@ApiListField("sales_properties_ext")
  	@ApiField("name_outer_id_pair")
  	private List<NameOuterIdPair> salesPropertiesExt;
  
  	/**
  	 * 售价（单价），以元为单位，精度到分
  	 */
  	@ApiField("sell_price")
  	private String sellPrice;
  
  	/**
  	 * 菜品skuId
  	 */
  	@ApiField("sku_id")
  	private String skuId;
  
  	/**
  	 * 菜品点菜序号
  	 */
  	@ApiField("sort")
  	private Long sort;
  
  	/**
  	 * 规格中文名，没有规格时不需要填写
  	 */
  	@ApiField("spec_name")
  	private String specName;
  
  	/**
  	 * 规格名称扩展信息
  	 */
  	@ApiListField("spec_name_ext")
  	@ApiField("name_outer_id_pair")
  	private List<NameOuterIdPair> specNameExt;
  
  	/**
  	 * 菜明细类型，SINGLE(单品)/SIDE(加料)/COMBO(套餐)/COMBO(套餐内单品)
  	 */
  	@ApiField("type")
  	private String type;
  
  	/**
  	 * 用户身份标识：手机号码、userId等等。如果是支付宝扫码点菜的，就是用户userId
  	 */
  	@ApiField("user_identity")
  	private String userIdentity;
  
  	/**
  	 * 叫起状态，取值约定：WAIT-等待叫起，UP-已叫起
  	 */
  	@ApiField("wake_status")
  	private String wakeStatus;
  
  	public String getChangePrice() {
  		return this.changePrice;
  	}
  	public void setChangePrice(String changePrice) {
  		this.changePrice = changePrice;
  	}
  
  	public String getChangeReason() {
  		return this.changeReason;
  	}
  	public void setChangeReason(String changeReason) {
  		this.changeReason = changeReason;
  	}
  
  	public String getCookId() {
  		return this.cookId;
  	}
  	public void setCookId(String cookId) {
  		this.cookId = cookId;
  	}
  
  	public String getCookVersion() {
  		return this.cookVersion;
  	}
  	public void setCookVersion(String cookVersion) {
  		this.cookVersion = cookVersion;
  	}
  
  	public Boolean getDiscountable() {
  		return this.discountable;
  	}
  	public void setDiscountable(Boolean discountable) {
  		this.discountable = discountable;
  	}
  
  	public String getDishId() {
  		return this.dishId;
  	}
  	public void setDishId(String dishId) {
  		this.dishId = dishId;
  	}
  
  	public String getDishName() {
  		return this.dishName;
  	}
  	public void setDishName(String dishName) {
  		this.dishName = dishName;
  	}
  
  	public Long getDishNum() {
  		return this.dishNum;
  	}
  	public void setDishNum(Long dishNum) {
  		this.dishNum = dishNum;
  	}
  
  	public String getDishUnit() {
  		return this.dishUnit;
  	}
  	public void setDishUnit(String dishUnit) {
  		this.dishUnit = dishUnit;
  	}
  
  	public Long getDishVersion() {
  		return this.dishVersion;
  	}
  	public void setDishVersion(Long dishVersion) {
  		this.dishVersion = dishVersion;
  	}
  
  	public String getExtInfo() {
  		return this.extInfo;
  	}
  	public void setExtInfo(String extInfo) {
  		this.extInfo = extInfo;
  	}
  
  	public Boolean getHasChange() {
  		return this.hasChange;
  	}
  	public void setHasChange(Boolean hasChange) {
  		this.hasChange = hasChange;
  	}
  
  	public Boolean getMainFlag() {
  		return this.mainFlag;
  	}
  	public void setMainFlag(Boolean mainFlag) {
  		this.mainFlag = mainFlag;
  	}
  
  	public String getMainOutDetailNo() {
  		return this.mainOutDetailNo;
  	}
  	public void setMainOutDetailNo(String mainOutDetailNo) {
  		this.mainOutDetailNo = mainOutDetailNo;
  	}
  
  	public String getMakeStatus() {
  		return this.makeStatus;
  	}
  	public void setMakeStatus(String makeStatus) {
  		this.makeStatus = makeStatus;
  	}
  
  	public String getMemberPrice() {
  		return this.memberPrice;
  	}
  	public void setMemberPrice(String memberPrice) {
  		this.memberPrice = memberPrice;
  	}
  
  	public String getMemo() {
  		return this.memo;
  	}
  	public void setMemo(String memo) {
  		this.memo = memo;
  	}
  
  	public String getOperator() {
  		return this.operator;
  	}
  	public void setOperator(String operator) {
  		this.operator = operator;
  	}
  
  	public Date getOrderTime() {
  		return this.orderTime;
  	}
  	public void setOrderTime(Date orderTime) {
  		this.orderTime = orderTime;
  	}
  
  	public String getOutDetailNo() {
  		return this.outDetailNo;
  	}
  	public void setOutDetailNo(String outDetailNo) {
  		this.outDetailNo = outDetailNo;
  	}
  
  	public String getOuterId() {
  		return this.outerId;
  	}
  	public void setOuterId(String outerId) {
  		this.outerId = outerId;
  	}
  
  	public String getPracticeInfo() {
  		return this.practiceInfo;
  	}
  	public void setPracticeInfo(String practiceInfo) {
  		this.practiceInfo = practiceInfo;
  	}
  
  	public String getPracticePrice() {
  		return this.practicePrice;
  	}
  	public void setPracticePrice(String practicePrice) {
  		this.practicePrice = practicePrice;
  	}
  
  	public String getRefundReason() {
  		return this.refundReason;
  	}
  	public void setRefundReason(String refundReason) {
  		this.refundReason = refundReason;
  	}
  
  	public Date getRefundTime() {
  		return this.refundTime;
  	}
  	public void setRefundTime(Date refundTime) {
  		this.refundTime = refundTime;
  	}
  
  	public Long getRemindTime() {
  		return this.remindTime;
  	}
  	public void setRemindTime(Long remindTime) {
  		this.remindTime = remindTime;
  	}
  
  	public String getSalesProperties() {
  		return this.salesProperties;
  	}
  	public void setSalesProperties(String salesProperties) {
  		this.salesProperties = salesProperties;
  	}
  
  	public List<NameOuterIdPair> getSalesPropertiesExt() {
  		return this.salesPropertiesExt;
  	}
  	public void setSalesPropertiesExt(List<NameOuterIdPair> salesPropertiesExt) {
  		this.salesPropertiesExt = salesPropertiesExt;
  	}
  
  	public String getSellPrice() {
  		return this.sellPrice;
  	}
  	public void setSellPrice(String sellPrice) {
  		this.sellPrice = sellPrice;
  	}
  
  	public String getSkuId() {
  		return this.skuId;
  	}
  	public void setSkuId(String skuId) {
  		this.skuId = skuId;
  	}
  
  	public Long getSort() {
  		return this.sort;
  	}
  	public void setSort(Long sort) {
  		this.sort = sort;
  	}
  
  	public String getSpecName() {
  		return this.specName;
  	}
  	public void setSpecName(String specName) {
  		this.specName = specName;
  	}
  
  	public List<NameOuterIdPair> getSpecNameExt() {
  		return this.specNameExt;
  	}
  	public void setSpecNameExt(List<NameOuterIdPair> specNameExt) {
  		this.specNameExt = specNameExt;
  	}
  
  	public String getType() {
  		return this.type;
  	}
  	public void setType(String type) {
  		this.type = type;
  	}
  
  	public String getUserIdentity() {
  		return this.userIdentity;
  	}
  	public void setUserIdentity(String userIdentity) {
  		this.userIdentity = userIdentity;
  	}
  
  	public String getWakeStatus() {
  		return this.wakeStatus;
  	}
  	public void setWakeStatus(String wakeStatus) {
  		this.wakeStatus = wakeStatus;
  	}
  
  }
  