package com.fdkankan.manage.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import lombok.Getter;
import lombok.Setter;

/**
 * <p>
 * 订单表
 * </p>
 *
 * @author 
 * @since 2022-05-31
 */
@Getter
@Setter
@TableName("t_order")
public class Order implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 订单号
     */
    @TableField("order_sn")
    private String orderSn;

    /**
     * 下单时间
     */
    @TableField("order_time")
    private Date orderTime;

    /**
     * 交易号
     */
    @TableField("trade_num")
    private String tradeNum;

    /**
     * 用户表t_user的id
     */
    @TableField("user_id")
    private Long userId;

    /**
     * 商品总数
     */
    @TableField("goods_total_count")
    private Integer goodsTotalCount;

    /**
     * 商品总额
     */
    @TableField("goods_amount")
    private BigDecimal goodsAmount;

    /**
     * 订单总额
     */
    @TableField("total_amount")
    private BigDecimal totalAmount;

    /**
     * 订单状态（未处理unprocessed、已确认processed、已完成completed、已取消invalid、过期expire）
     */
    @TableField("order_status")
    private String orderStatus;

    /**
     * 付款状态（未付款unpaid、已付款paid、已取消cancel, 部分支付partPayment, 部分退款partRefund, 全额退款refunded）
     */
    @TableField("payment_status")
    private String paymentStatus;

    /**
     * 配送状态（未发货unshipped、部分发货partShipped、已发货shipped、部分退货partReshiped、已退货reshiped、已收货received）
     */
    @TableField("shipping_status")
    private String shippingStatus;

    /**
     * 已付金额
     */
    @TableField("paid_amount")
    private BigDecimal paidAmount;

    /**
     * 付款方式，0表示微信，1表示支付宝，2表示paypal，3表示其他，4表示货到付款
     */
    @TableField("payment_type_name")
    private Integer paymentTypeName;

    /**
     * 快递费
     */
    @TableField("express_amount")
    private BigDecimal expressAmount;

    /**
     * 配送方式：快递运输、自提、同城速递
     */
    @TableField("delivery_type_name")
    private String deliveryTypeName;

    /**
     * 收货地址
     */
    @TableField("ship_address")
    private String shipAddress;

    /**
     * 收货地区
     */
    @TableField("ship_area")
    private String shipArea;

    /**
     * 收货地区路径
     */
    @TableField("ship_area_path")
    private String shipAreaPath;

    /**
     * 收货手机
     */
    @TableField("ship_mobile")
    private String shipMobile;

    /**
     * 收货人姓名
     */
    @TableField("ship_name")
    private String shipName;

    /**
     * 收货电话
     */
    @TableField("ship_phone")
    private String shipPhone;

    /**
     * 收货邮编
     */
    @TableField("ship_zip_code")
    private String shipZipCode;

    /**
     * 完成时间
     */
    @TableField("finish_time")
    private Date finishTime;

    /**
     * 买家附言
     */
    @TableField("memo")
    private String memo;

    /**
     * 商家备注
     */
    @TableField("comment")
    private String comment;

    /**
     * 0表示国内订单，1表示国外订单
     */
    @TableField("abroad")
    private Integer abroad;

    /**
     * 创建时间
     */
    @TableField("create_time")
    private Date createTime;

    /**
     * 记录的状态，A: 生效，I: 禁用
     */
    @TableLogic
    @TableField("rec_status")
    private String recStatus;

    /**
     * 更新时间
     */
    @TableField("update_time")
    private Date updateTime;


}
