package com.smppw.modaq.domain.entity.report;

import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
import lombok.Setter;

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

@Setter
@Getter
@TableName("mo_report_fund_transaction")
public class ReportFundTransactionDO extends BaseReportDO {
    /**
     * 基金账户编号
     */
    private String fundAccount;

    /**
     * 基金名称
     */
    private String fundName;

    /**
     * 销售此基金产品的经销商或银行
     */
    private String distributor;

    /**
     * 业务类型（例如：申购、赎回）
     */
    private String transactionType;

    /**
     * 业务操作的原因或类型说明
     */
    private String businessReason;

    /**
     * 交易确认的状态（例如：已确认、待处理等）
     */
    private String status;

    /**
     * 交易确认的日期
     */
    private Date holdingDate;

    /**
     * 申请的日期
     */
    private Date applyDate;

    /**
     * 申请的金额
     */
    private BigDecimal applyAmount;

    /**
     * 申请的基金份额数量
     */
    private BigDecimal applyShare;

    /**
     * 确认的金额
     */
    private BigDecimal amount;

    /**
     * 确认的基金份额数量
     */
    private BigDecimal share;

    /**
     * 净认购/申购的金额，确认净额
     */
    private BigDecimal netAmount;

    /**
     * 单位净值
     */
    private BigDecimal nav;

    /**
     * 确认比例
     */
    private BigDecimal confirmationRatio;

    /**
     * 交易授权确认编号
     */
    private String taConfirmationNumber;

    /**
     * TA代码
     */
    private String taNumber;

    /**
     * 申请单号
     */
    private String applyNo;

    /**
     * 份额余额
     */
    private BigDecimal shareBalance;

    /**
     * 份额类别
     */
    private String shareCategory;

    /**
     * 巨额赎回方式
     */
    private String largeRedemptionType;

    /**
     * 提成或保底标志
     */
    private String rewardMark;

    /**
     * 持有天数
     */
    private String holdingDays;

    /**
     * 份额明细注册日期
     */
    private Date shareRegistryDate;

    // -- 费用 ----------------------------------------

    /**
     * 总费用
     */
    private BigDecimal fee;

    /**
     * 利息
     */
    private BigDecimal interest;

    /**
     * 利息转份额/利息归基金资产
     */
    private BigDecimal interestToFundAssets;

    /**
     * 交易费
     */
    private BigDecimal tradeFee;

    /**
     * 违约金
     */
    private BigDecimal defaultFee;

    /**
     * 业绩报酬
     */
    private BigDecimal performanceFee;

    /**
     * 费用折扣
     */
    private BigDecimal feeDiscounts;

    /**
     * 业绩报酬折扣
     */
    private BigDecimal performanceFeeDiscounts;

    // ---- 分红 -----------------------------------------------

    /**
     * 分红方式
     */
    private String dividendType;

    /**
     * 分红登记日
     */
    private Date dividendRegistryDate;

    /**
     * 红利发放日
     */
    private Date dividendPaymentDate;

    /**
     * 分红基数份额
     */
    private BigDecimal baseShareDividend;

    /**
     * 分红模式
     */
    private String dividendMode;

    /**
     * 单位分红
     */
    private BigDecimal unitDividend;

    /**
     * 每单位分红
     */
    private BigDecimal dividendPerUnit;

    /**
     * 红利总额
     */
    private BigDecimal totalDividendAmount;

    /**
     * 实发现金红利
     */
    private BigDecimal actualCashDividend;

    /**
     * 冻结份额
     */
    private BigDecimal frozenShares;

    /**
     * 冻结金额
     */
    private BigDecimal frozenAmount;

    /**
     * 实际业绩提成金额
     */
    private BigDecimal actualPerformanceAmount;

    /**
     * 实际提成份额
     */
    private BigDecimal actualPerformanceShare;
}
