package org.springblade.modules.finance.entity;

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

import org.springblade.common.base.BaseEntity;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * 订单主表实体类
 *
 * @author zzyd
 * @since 2023-02-14
 */
@Data
@TableName("t_order")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "Order对象", description = "订单主表")
public class Order extends BaseEntity<Order> {

	private static final long serialVersionUID = 1L;

	/**
	* 订单号
	*/
	@ApiModelProperty(value = "订单号")
	private String orderNo;
	@ApiModelProperty(value = "订单号")
	private Long userId;
	/**
	* 订单类型;1-商品订单 2-定制酒订单
	*/
	@ApiModelProperty(value = "订单类型;1-商品订单 2-定制酒订单")
	private Integer orderType;

	@ApiModelProperty(value = "订单来源;1-小程序 2-APP")
	private Integer source;
	/**
	* 数量
	*/
	@ApiModelProperty(value = "数量")
	private Integer quantity;
	/**
	* 订单状态;1-待付款 2-待发货 3-待收货 4-已完成 5-已取消 6-退款中 7-已退款
	*/
	@ApiModelProperty(value = "订单状态;1-待付款 2-待发货 3-待收货 4-已完成 5-已取消 6-退款中 7-已退款")
	private Integer orderState;
	/**
	* 总金额
	*/
	@ApiModelProperty(value = "总金额")
	private BigDecimal totalAmount;
	/**
	* 支付金额
	*/
	@ApiModelProperty(value = "支付金额")
	private BigDecimal paymentAmount;
	/**
	* 支付方式
	*/
	@ApiModelProperty(value = "支付方式")
	private String paymentMode;
	/**
	* 支付时间
	*/
	@ApiModelProperty(value = "支付时间")
	private Date paymentTime;
	/**
	* 支付状态;1-未支付 2-已支付 3-已退款
	*/
	@ApiModelProperty(value = "支付状态;1-未支付 2-已支付 3-已退款")
	private Integer paymentState;
	/**
	* 优惠金额
	*/
	@ApiModelProperty(value = "优惠金额")
	private BigDecimal discountAmount;
	/**
	* 邮费
	*/
	@ApiModelProperty(value = "邮费")
	private BigDecimal postage;
	/**
	* 发票状态;1-不可申请开票 2-可申请开票 3-已申请开票 4-已开票
	*/
	@ApiModelProperty(value = "发票状态;1-不可申请开票 2-可申请开票 3-已申请开票 4-已开票")
	private Integer invoiceState;
	/**
	* 是否售后;1-是 0-否
	*/
	@ApiModelProperty(value = "是否售后;1-是 0-否")
	private Integer isAftersales;
	/**
	* 发货时间;发货时间
	*/
	@ApiModelProperty(value = "发货时间;发货时间")
	private Date sendTime;
	/**
	* 收货时间;收货时间
	*/
	@ApiModelProperty(value = "收货时间;收货时间")
	private Date recordTime;
	/**
	* 配送方式;1-快递 2-配送
	*/
	@ApiModelProperty(value = "配送方式;1-快递 2-自取")
	private Integer distributeMode;
	/**
	* 物流状态;1-未发货 2-已发货 3-已收货
	*/
	@ApiModelProperty(value = "物流状态;1-待发货 2-已发货 3-已收货")
	private Integer logisticsState;
	/**
	* 收货人
	*/
	@ApiModelProperty(value = "收货人")
	private String consignee;
	/**
	* 收货人手机号
	*/
	@ApiModelProperty(value = "收货人手机号")
	private String consigneePhoneNumber;
	/**
	* 是否购物车下单
	*/
	@ApiModelProperty(value = "是否购物车下单")
	private Integer isCart;
	/**
	* 交易流水号
	*/
	@ApiModelProperty(value = "交易流水号")
	private String transactionNo;

	/**
	 * 结算账号
	 */
	@ApiModelProperty(value = "结算账号")
	private String settlementAccount;

	/**
	 * 订单图片，取自商品图片
	 */
	@ApiModelProperty(value = "订单图片")
	private String image;

	@ApiModelProperty(value = "第三方订单号 微信、支付宝等")
	private String thirdOrderNo;

}
