package com.simuwang.base.pojo.dos;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.simuwang.base.common.util.DateUtils;
import com.simuwang.base.pojo.vo.EmailFundAssetVO;
import lombok.Data;

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

@Data
@TableName("email_fund_asset")
public class EmailFundAssetDO {
    /**
     * 主键Id
     */
    @TableId(value = "id")
    private Integer id;
    /**
     * 文件id(email_file_info.id)
     */
    @TableField(value = "file_id")
    private Integer fileId;
    /**
     * 基金id
     */
    @TableField(value = "fund_id")
    private String fundId;
    /**
     * 邮件解析的基金名称
     */
    @TableField(value = "fund_name")
    private String fundName;
    /**
     * 邮件解析的备案编码
     */
    @TableField(value = "register_number")
    private String registerNumber;
    /**
     * 规模日期
     */
    @TableField(value = "price_date")
    private Date priceDate;
    /**
     * 资产份额
     */
    @TableField(value = "asset_share")
    private BigDecimal assetShare;
    /**
     * 资产总值
     */
    @TableField(value = "asset_total")
    private BigDecimal assetTotal;
    /**
     * 资产净值(基金规模)
     */
    @TableField(value = "asset_net")
    private BigDecimal assetNet;
    /**
     * 是否入库 0-没有,1-有
     */
    @TableField(value = "is_stored")
    private Integer isStored;
    /**
     * 异常情况:1-无异常,2-资产净值<=0,3-未匹配基金
     */
    @TableField(value = "exception_status")
    private Integer exceptionStatus;
    /**
     * 记录的有效性；1-有效；0-无效
     */
    @TableField(value = "isvalid")
    private Integer isvalid;
    /**
     * 创建者Id;第一次创建时与Creator值相同，修改时与修改人值相同
     */
    @TableField(value = "creatorid")
    private Integer creatorId;
    /**
     * 修改者Id;第一次创建时与Creator值相同，修改时与修改人值相同
     */
    @TableField(value = "updaterid")
    private Integer updaterId;
    /**
     * 创建时间,默认第一次创建的getdate()时间
     */
    @TableField(value = "createtime")
    private Date createTime;
    /**
     * 修改时间;第一次创建时与CreatTime值相同，修改时与修改时间相同
     */
    @TableField(value = "updatetime")
    private Date updateTime;

    private String emailTitle;

    public EmailFundAssetVO toVo() {
        EmailFundAssetVO vo = new EmailFundAssetVO();
        vo.setId(this.id);
        vo.setFundId(this.fundId);
        vo.setFundName(this.fundName);
        vo.setRegisterNumber(this.registerNumber);
        vo.setPriceDate(this.priceDate==null?null: DateUtils.format(this.priceDate, DateUtils.YYYY_MM_DD));
        vo.setIsStored(this.isStored);
        vo.setExceptionStatus(this.exceptionStatus);
        vo.setUpdateTime(DateUtils.format(this.updateTime, DateUtils.YYYY_MM_DD_HH_MM_SS));
        vo.setAssetNet(this.assetNet);
        vo.setAssetShare(this.assetShare);
        vo.setEmailTitle(this.emailTitle);
        return vo;
    }
}