package com.qmth.distributed.print.business.bean.dto.report;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.qmth.distributed.print.business.bean.dto.CourseWeightDetailDto;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 * @Description: 期末成绩dto
 * @Param:
 * @return:
 * @Author: wangliang
 * @Date: 2024/2/26
 */
@JsonInclude(JsonInclude.Include.NON_NULL)
public class FinalScoreWordDto implements Serializable {

    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(value = "课程目标id")
    private Long targetId;

    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(value = "评价方式id")
    private Long evaluationId;

    @ApiModelProperty(value = "评价方式")
    private String evaluation;

    @ApiModelProperty(value = "评价方式描述")
    private String evaluationDesc;

    @ApiModelProperty(value = "期末成绩目标总分")
    private BigDecimal finalScoreTargetSumScore = new BigDecimal(0);

    @ApiModelProperty(value = "期末成绩目标整体权重")
    private BigDecimal finalScoreSumWeight = new BigDecimal(0);

    @ApiModelProperty(value = "期末成绩知识点分数")
    private Double finalScoreDimensionScore;

    @ApiModelProperty(value = "知识点集合")
    private List<DimensionDto> dimensionList;

    public FinalScoreWordDto() {

    }

    public FinalScoreWordDto(Long targetId, CourseWeightDetailDto courseWeightDetailDto, BigDecimal finalScoreSumWeight) {
        this.targetId = targetId;
        this.evaluationId = courseWeightDetailDto.getEvaluationId();
        this.evaluation = courseWeightDetailDto.getEvaluationName();
        this.finalScoreSumWeight = finalScoreSumWeight;
        this.finalScoreTargetSumScore = courseWeightDetailDto.getTargetScore();
    }

    public Long getTargetId() {
        return targetId;
    }

    public void setTargetId(Long targetId) {
        this.targetId = targetId;
    }

    public List<DimensionDto> getDimensionList() {
        return dimensionList;
    }

    public void setDimensionList(List<DimensionDto> dimensionList) {
        this.dimensionList = dimensionList;
    }

    public BigDecimal getFinalScoreTargetSumScore() {
        return finalScoreTargetSumScore;
    }

    public void setFinalScoreTargetSumScore(BigDecimal finalScoreTargetSumScore) {
        this.finalScoreTargetSumScore = finalScoreTargetSumScore;
    }

    public BigDecimal getFinalScoreSumWeight() {
        return finalScoreSumWeight;
    }

    public void setFinalScoreSumWeight(BigDecimal finalScoreSumWeight) {
        this.finalScoreSumWeight = finalScoreSumWeight;
    }

    public Double getFinalScoreDimensionScore() {
        return finalScoreDimensionScore;
    }

    public void setFinalScoreDimensionScore(Double finalScoreDimensionScore) {
        this.finalScoreDimensionScore = finalScoreDimensionScore;
    }

    public Long getEvaluationId() {
        return evaluationId;
    }

    public void setEvaluationId(Long evaluationId) {
        this.evaluationId = evaluationId;
    }

    public String getEvaluation() {
        return evaluation;
    }

    public void setEvaluation(String evaluation) {
        this.evaluation = evaluation;
    }

    public String getEvaluationDesc() {
        return evaluationDesc;
    }

    public void setEvaluationDesc(String evaluationDesc) {
        this.evaluationDesc = evaluationDesc;
    }
}
