package com.neusoft.smart.pos.dto.trade.request;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.NotEmpty;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @author zcf
 * @date 2018-01-08 10：43
 * @description 订单新增使用Request
 */
@Data
@ApiModel
public class PostTradeOrderRequest {

	@ApiModelProperty(name = "orgId", value = "集团编号", dataType = "Integer")
	private Integer orgId;

	@ApiModelProperty(name = "shopId", value = "门店编号", dataType = "Integer")
	private Integer shopId;
	
	@ApiModelProperty(name = "orderNumber", value = "订单编号", dataType = "String" ,example="005")
	private String orderNumber;
	
	@ApiModelProperty(name = "locationNo", value = "位置编号(如桌号等)", dataType = "String" ,example="005")
	private String locationNo;

	@ApiModelProperty(name = "serialNo", value = "设备序列号", dataType = "String" ,example="15554512555")
	private String serialNo;

	@ApiModelProperty(name = "orderDetails", value = "购买商品明细", dataType = "list")
	private List<PostOrderDetailRequest> orderDetails;

	@ApiModelProperty(name = "orderAmount", value = "订单总金额", dataType = "Long", example = "18.98")
	private BigDecimal orderAmount;

	@ApiModelProperty(name = "realPayAmount", value = "订单实付金额", dataType = "BigDecimal" ,example="0.00")
	public BigDecimal realPayAmount;

	@ApiModelProperty(name = "discountAmount", value = "订单优惠金额", dataType = "BigDecimal" ,example="0.00")
	public BigDecimal discountAmount = BigDecimal.valueOf(0);
	
	@ApiModelProperty(name = "discountRate", value = "订单优惠率", dataType = "BigDecimal" ,example="0.00")
	public BigDecimal discountRate;

	@ApiModelProperty(name = "memberCardNo", value = "会员卡号、东软员工号", dataType = "String" ,example="52525005")
	private String memberCardNo;

	@ApiModelProperty(name = "memberName", value = "会员名称、东软员工姓名", dataType = "String" ,example="52525005")
	private String memberName;

	@ApiModelProperty(name = "cardNum", value = "会员卡编号(印刷,沈阳食堂使用)", dataType = "String" ,example="52525005")
	private String cardNum;

	@ApiModelProperty(name = "cardHidCode", value = "会员卡hid编码(卡内,沈阳食堂使用)", dataType = "String" ,example="52525005")
	private String cardHidCode;

	@ApiModelProperty(name = "score", value = "订单获赠积分", dataType = "Integer" ,example="100")
	private Integer score;

	@ApiModelProperty(name = "payType", value = "付款方式编号@1:微信支付@2:支付宝支付@3:银行卡支付@4:微信转账@:5支付宝转账@6:现金支付@7:会员卡支付@8:当面资金授权支付@9:银联二维码支付", dataType = "String" ,example="1")
	private String payType;

	@ApiModelProperty(name = "orderType", value = "订单类型@1正常订单@2POS端补录订单@3会员卡充值订单@4微信点餐订单", dataType = "String" ,example="1")
	private String orderType;

	@ApiModelProperty(name = "scanCode", value = "被扫支付码", dataType = "String" ,example="1")
	private String scanCode;

	@ApiModelProperty(name = "remark", value = "描述", dataType = "String" ,example="1")
	private String remark;
	
	@ApiModelProperty(name = "openId", value = "微信人脸支付使用openId", dataType = "String" ,example="1123123")
	private String openId;
	
	private Date timeExpire;

	private Date createdAt;
}
