package cn.wisenergy.model.app;

import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

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

/**
 * @author zhangwei
 * @ Description: 有赞订单表
 * @ Author     : zhangwei
 * @ Date       : 2021/2/22 16:00
 */
@Data
@ApiModel(value = "OrderInfo")
@TableName("order_info")
public class OrderInfo {

    /**
     * 账户主键id
     */
    @ApiModelProperty(name = "id", value = "订单主键id")
    private Long id;

    /**
     * 买家id
     */
    @ApiModelProperty(name = "userId", value = "用户id")
    private String userId;

    /**
     * 商品id
     */
    @ApiModelProperty(name = "itemId", value = "商品id")
    private String itemId;

    /**
     * 订单支付类型
     *
     *
     支付类型0:默认值,未支付;1:微信自有支付;2:支付宝wap;3:支付宝wap;5:财付通;7:代付;
            8:联动优势; 9:货到付款; 10:大账号代销; 11:受理模式; 12:百付宝; 13:sdk支付;
            14:合并付货款; 15:赠品; 16:优惠兑换; 17:自动付货款; 18:爱学贷; 19:微信wap;
            20:微信红包支付; 21:返利; 22:ump红包; 24:易宝支付; 25:储值卡现付; 27:qq支付;
            28:有赞E卡支付; 29:微信条码; 30:支付宝条码; 33:礼品卡支付; 35:会员余额;36:信用卡银联支付;
            37:储蓄卡银联支付; 40:分期支付;72:微信扫码二维码支付; 100:代收账户; 300:储值账户; 400:保证金账户;
            101:收款码; 102:微信; 103:支付宝; 104:刷卡; 105:二维码台卡; 106:储值卡线下收银; 107:有赞E卡;
            110:标记收款-自有微信支付; 111:标记收款-自有支付宝; 112:标记收款-自有POS刷卡; 113:通联刷卡支付;
            114:标记收款-自定义; 115:有赞零钱支付;116:优惠全额抵扣;117:商米支付;118:商米支付-支付宝;
            119:商米pos;200:记账账户;
     */
    @ApiModelProperty(name = "payType", value = "订单支付类型")
    private String payType;

    /**
     * 订单更新时间
     */
    @ApiModelProperty(name = "youzanUpdateTime", value = "订单更新时间")
    private Date youzanUpdateTime;


    /**
     * 有赞订单号
     */
    @ApiModelProperty(name = "tid", value = "有赞订单号")
    private String tid;

    /**
     * 订单创建时间
     */
    @ApiModelProperty(name = "created", value = "订单创建时间")
    private Date created;

    /**
     * 店铺类型
     */
    @ApiModelProperty(name = "teamType", value = "店铺类型")
    private Long teamType;

    /**
     * 订单支付时间
     */
    @ApiModelProperty(name = "payTime", value = "订单支付时间")
    private Date payTime;

    /**
     * 支付渠道
     *  支付类型。取值范围:
     *      WEIXIN (微信自有支付)
     *      WEIXIN_DAIXIAO (微信代销支付)
     *      ALIPAY (支付宝支付)
     *      BANKCARDPAY (银行卡支付)
     *      PEERPAY (代付)
     *      CODPAY (货到付款)
     *      BAIDUPAY (百度钱包支付)
     *      PRESENTTAKE (直接领取赠品)
     *      COUPONPAY(优惠券/码全额抵扣)
     *      BULKPURCHASE(来自分销商的采购)
     *      MERGEDPAY(合并付货款)
     *      ECARD(有赞E卡支付)
     *      PURCHASE_PAY (采购单支付)
     *      MARKPAY (标记收款)
     *      OFCASH (现金支付)
     *      PREPAIDCARD (储值卡余额支付)
     *      ENCHASHMENT_GIFT_CARD(礼品卡支付)
     */
    @ApiModelProperty(name = "payTypeStr", value = "支付渠道")
    private String payTypeStr;

    /**
     * 订单关闭类型
     *
     关闭类型 0:未关闭; 1:过期关闭; 2:标记退款; 3:订单取消; 4:买家取消;
            5:卖家取消; 6:部分退款; 10:无法联系上买家; 11:买家误拍或重拍了;
            12:买家无诚意完成交易; 13:已通过银行线下汇款; 14:已通过同城见面交易;
            15:已通过货到付款交易; 16:已通过网上银行直接汇款; 17:已经缺货无法交易
     */
    @ApiModelProperty(name = "closeType", value = "订单关闭类型")
    private Integer closeType;

    /**
     * 退款状态
     * 退款状态 0:未退款; 1:部分退款中; 2:部分退款成功; 11:全额退款中; 12:全额退款成功
     */
    @ApiModelProperty(name = "refundState  ", value = "退款状态")
    private Long refundState;

    /**
     * 交易完成时间
     */
    @ApiModelProperty(name = "successTime", value = "交易完成时间")
    private Date successTime;

    /**
     * 实际支付价格
     */
    @ApiModelProperty(name = "payment", value = "实际支付价格")
    private BigDecimal payment;

    /**
     * 返佣状态 0:未返佣  1:返佣
     */
    @ApiModelProperty(name = "rebateStatus", value = "返佣状态")
    private Integer rebateStatus;

    /**
     * 升级状态  0:该笔订单已做升级处理 1: 该笔订单未做升级处理
     */
    @ApiModelProperty(name = "levelStatus",value = "升级状态")
    private Integer levelStatus;

    /**
     * 当月订单处理状态  0: 未处理  1:处理
     */
    @ApiModelProperty(name = "monthOrderStatus", value = "当月订单处理状态")
    private Integer monthOrderStatus;

    /**
     * 月度任务处理状态  0:未处理 1:处理
     */
    @ApiModelProperty(name = "rebateStatus", value = "月度任务处理状态")
    private Integer monthlyTaskStatus;

    /**
     * updateTime
     */
    @ApiModelProperty(name = "updateTime", value = "修改时间")
    private Date updateTime;

    /**
     * createTime
     */
    @ApiModelProperty(name = "createTime", value = "创建时间")
    private Date createTime;
}