package jnpf.model.cultivate.dto.coursepackage;

import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import jnpf.model.cultivate.po.coursepackage.FtbCultivateCoursePackage;
import jnpf.model.cultivate.po.coursepackage.FtbCultivatePackageCourse;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.util.List;
import java.util.stream.Collectors;

@Data
public class FtbCultivateCoursePackageUpdateDTO {
    /**
     * 课程包主键id
     */
    @NotBlank(message = "课程包主键id不能为空")
    private String coursePackageId;

    /**
     * 课程包名称
     */
    @NotBlank(message = "课程包名称不能为空")
    @Size(max = 20, message = "课程包名称长度不能超过20位")
    private String name;

    /**
     * 课程包简介
     */
    @Size(max = 200, message = "课程包简介长度不能超过200位")
    private String highlights;

    /**
     * 所选课程
     */
    @Size(min = 1, message = "请选择课程")
    private List<String> courseIds;

    public LambdaUpdateWrapper<FtbCultivateCoursePackage> convertUpdate(FtbCultivateCoursePackageUpdateDTO ftbCultivateCoursePackageUpdateDTO) {
        if (ftbCultivateCoursePackageUpdateDTO == null) {
            return null;
        }
        LambdaUpdateWrapper<FtbCultivateCoursePackage> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
        lambdaUpdateWrapper.eq(FtbCultivateCoursePackage::getId, ftbCultivateCoursePackageUpdateDTO.getCoursePackageId());
        lambdaUpdateWrapper.set(FtbCultivateCoursePackage::getName, ftbCultivateCoursePackageUpdateDTO.getName());
        lambdaUpdateWrapper.set(FtbCultivateCoursePackage::getHighlights, ftbCultivateCoursePackageUpdateDTO.getHighlights());
        return lambdaUpdateWrapper;
    }

    public List<FtbCultivatePackageCourse> convertFtbCultivatePackageCourse(String id) {
        return this.getCourseIds().stream().map(a -> {
            FtbCultivatePackageCourse ftbCultivatePackageCourse = new FtbCultivatePackageCourse();
            ftbCultivatePackageCourse.setCoursePackageId(id);
            ftbCultivatePackageCourse.setCourseId(a);
            return ftbCultivatePackageCourse;
        }).collect(Collectors.toList());
    }

}
