package com.seer.teach.admin.convert;

import com.seer.teach.admin.request.TeachGoalsReq;
import com.seer.teach.admin.request.TeachMethodsReq;
import com.seer.teach.admin.request.TeachTextsReq;
import com.seer.teach.admin.response.TeachGoalsResp;
import com.seer.teach.admin.response.TeachMethodsResp;
import com.seer.teach.admin.response.TeachTextsResp;
import com.seer.teach.teacher.module.entity.TeachGoalsEntity;
import com.seer.teach.teacher.module.entity.TeachMethodsEntity;
import com.seer.teach.teacher.module.entity.TeachTextsEntity;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

/**
 * <p>
 * 教学管理模块转换器
 * </p>
 *
 * @author Lingma
 * @since 2025-12-04
 */
@Mapper
public interface AdminTeachConvert {

    AdminTeachConvert INSTANCE = Mappers.getMapper(AdminTeachConvert.class);

    /**
     * 教学目标实体转响应对象
     *
     * @param entity 教学目标实体
     * @return 教学目标响应对象
     */
    TeachGoalsResp toTeachGoalsResp(TeachGoalsEntity entity);

    /**
     * 教学方法实体转响应对象
     *
     * @param entity 教学方法实体
     * @return 教学方法响应对象
     */
    TeachMethodsResp toTeachMethodsResp(TeachMethodsEntity entity);

    /**
     * 教学文本实体转响应对象
     *
     * @param entity 教学文本实体
     * @return 教学文本响应对象
     */
    TeachTextsResp toTeachTextsResp(TeachTextsEntity entity);

    /**
     * 教学目标请求对象转实体
     *
     * @param req 教学目标请求对象
     * @return 教学目标实体
     */
    TeachGoalsEntity toTeachGoalsEntity(TeachGoalsReq req);

    /**
     * 教学方法请求对象转实体
     *
     * @param req 教学方法请求对象
     * @return 教学方法实体
     */
    TeachMethodsEntity toTeachMethodsEntity(TeachMethodsReq req);

    /**
     * 教学文本请求对象转实体
     *
     * @param req 教学文本请求对象
     * @return 教学文本实体
     */
    TeachTextsEntity toTeachTextsEntity(TeachTextsReq req);
}