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.DistributionTablePageVO;
import lombok.Data;

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

/**
 * FileName: DistributionDO
 * Author:   chenjianhua
 * Date:     2024/9/15 13:54
 * Description: ${DESCRIPTION}
 */
@Data
public class DistributionTablePageDO{
    /**
     * 主键Id
     */
    private Integer id;
    /**
     * 基金id
     */
    private String fundId;
    /**
     * 基金名称
     */
    private String fundName;
    /**
     * 备案编码
     */
    private String registerNumber;
    /**
     * 公司名称
     */
    private String companyName;
    /**
     * 分红日期
     */
    private Date distributeDate;
    /**
     * 基金分配类型标志：-1-其他，1-分红，2-拆分,3-业绩报酬,4-注资,5-撤资
     */
    private Integer distributeType;
    /**
     * 分红/拆分比例
     */
    private BigDecimal distribution;
    /**
     * 单位净值
     */
    private BigDecimal nav;
    /**
     * 累计单位净值
     */
    private BigDecimal cumulativeNavWithdrawal;
    /**
     * 是否有效：0-无效，1-有效
     */
    private Integer isvalid;
    /**
     * 创建者Id
     */
    private Integer creatorId;
    /**
     * 创建时间
     */
    private Date createTime;
    /**
     * 修改者Id
     */
    private Integer updaterId;
    /**
     * 更新时间
     */
    private Date updateTime;

    public DistributionTablePageVO toVo() {
        DistributionTablePageVO vo = new DistributionTablePageVO();
        vo.setId(this.id);
        vo.setFundId(this.fundId);
        vo.setFundName(this.fundName);
        vo.setCompanyName(this.companyName);
        vo.setDistribution(this.distribution);
        vo.setDistributeType(this.distributeType);
        vo.setDistributeDate(DateUtils.format(this.distributeDate,DateUtils.YYYY_MM_DD));
        vo.setNav(this.nav);
        vo.setCumulativeNavWithdrawal(this.cumulativeNavWithdrawal);
        vo.setRegisterNumber(this.registerNumber);
        vo.setUpdateTime(DateUtils.format(this.updateTime,DateUtils.YYYY_MM_DD_HH_MM_SS));
        vo.setIsvalid(this.isvalid);
        return vo;
    }
}
