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.List;

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

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

	@NotEmpty(message = "签名不能为空")
	@ApiModelProperty(name = "sign", value = "签名",example="0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF", dataType = "String" ,required=true)
	private String sign;

	@ApiModelProperty(name = "orderNumber", value = "订单编号", dataType = "String" ,example="810825487965")
	private String orderNumber;

	@ApiModelProperty(name = "locationNo", value = "位置编号(如桌号等)", dataType = "String" ,example="005")
	private String locationNo;

	@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 = "memberCardNo", value = "会员卡号", dataType = "String" ,example="52525005")
	private String memberCardNo;

	@ApiModelProperty(name = "hardwareCardNo", value = "会员卡内号", dataType = "String" ,example="99999")
	private String hardwareCardNo;

	@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 = "payStatus", value = "支付状态1:未付款2:已付款", dataType = "String" ,example="1")
	private String payStatus;
	
	@ApiModelProperty(name = "remark", value = "备注", dataType = "String" ,example="2112")
	private String remark;

	private Long createdAt;
}
