package com.fdkankan.platform.order.vo;

import com.alibaba.fastjson.annotation.JSONField;
import com.fdkankan.common.constant.Constant;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Date;

@Data
public class ResponseExpansionOrder implements Serializable {

    private static final long serialVersionUID = 4972396312239681244L;

    private Long id;
    /**
     * 订单号
     */
    private String orderSn;
    /**
     * 金额
     */
    private BigDecimal amount;
    /**
     * 支付宝的交易号或者微信支付订单号
     */
    private String number;
    /**
     * 付款方式，0表示微信，1表示支付宝，2表示paypal，3表示其他
     */
    private int payType;
    /**
     * 状态，0或-1表示消费失败，1表示成功
     */
    private int payStatus;
    /**
     * 交易时间
     */
    private Date tradeTime;
    /**
     * 用户表t_user的id，空表示后台管理员添加
     */
    private Long userId;

    private Long cameraId;
    /**
     * 0表示国内订单，1表示国外订单
     */
    private int abroad;
    /**
     * 容量单位，"GB", "TB", "PB"
     */
    private String unit;
    /**
     * 容量大小
     */
    private int unitSize;
    /**
     * 期限，年为单位
     */
    private int years;

    /**
     * 期限，年为单位
     */
    private int month;

    /**
     * 延期，天为单位
     */
    private int delay;

    public BigInteger getSpace(){
        if ("GB".equals(getUnit())){
            return new BigInteger(Constant.EXPANSION_SPACE_VALUE_1G).multiply(new BigInteger(unitSize + ""));
        }else if ("TB".equals(getUnit())){
            return new BigInteger(Constant.EXPANSION_SPACE_VALUE_1T).multiply(new BigInteger(unitSize + ""));
        }else if ("PB".equals(getUnit())){
            return new BigInteger(Constant.EXPANSION_SPACE_VALUE_1P).multiply(new BigInteger(unitSize + ""));
        }
        return new BigInteger("0");
    }

    private String childName;

    private BigInteger space;
    /**
     * 生效时间
     */
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date spaceStartTime;
    /**
     * 结束时间
     */
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date spaceEndTime;

    private String validDate;

    private int status;

}
