package com.bohuikeji.frame.module.admin.entity.vo;

import com.bohuikeji.frame.module.admin.utils.CiphertextUtils;
import com.bohuikeji.frame.module.admin.utils.NumberUtils;
import lombok.Data;

/**
 * 短链接实体Url
 * @author Admin
 */
@Data
public class ShortUrlVo {

    /**
     * 唯一ID
     */
    private Long id;

    /**
     * 真实地址
     */
    private String realUrl;

    /**
     * 携带的元数据
     * 创建短链接的时候
     */
    private String data;

    /**
     * 短地址
     */
    private String shortUrlPrefix;

    /**
     * 是否重定向
     * 默认false
     * false:以将以代理方式转发请求到真实地址
     * true:将返回httpStatusCode302，告诉客户端重定向到真实地址
     */
    private Boolean redirect;

    /**
     * 时间戳
     */
    private Long timestamp;

    public static ShortUrlVo init(String realUrl,boolean isRedirect){
        ShortUrlVo vo=new ShortUrlVo();
        vo.setRealUrl(realUrl);
        vo.setId(Long.valueOf(NumberUtils.getShort()));
        vo.setTimestamp(System.currentTimeMillis());
        vo.setShortUrlPrefix(CiphertextUtils.base62Encode(vo.getId()));
        vo.setRedirect(isRedirect);
        return vo;
    }
}
