package jnpf.model.cultivate.dto.coursepackage;

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 FtbCultivateCoursePackageAddDTO {

    /**
     * 课程包名称
     */
    @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 FtbCultivateCoursePackage convertFtbCultivateCoursePackage(FtbCultivateCoursePackageAddDTO ftbCultivateCoursePackageAddDTO) {
        if (ftbCultivateCoursePackageAddDTO == null) {
            return null;
        }
        FtbCultivateCoursePackage ftbCultivateCoursePackage = new FtbCultivateCoursePackage();
        ftbCultivateCoursePackage.setName(ftbCultivateCoursePackageAddDTO.getName());
        ftbCultivateCoursePackage.setHighlights(ftbCultivateCoursePackageAddDTO.getHighlights());
        return ftbCultivateCoursePackage;
    }

    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());
    }

}
