package com.seer.teach.admin.convert;

import com.seer.teach.admin.request.AdminAiScenarioConfigReq;
import com.seer.teach.admin.response.AdminAiScenarioConfigResp;
import com.seer.teach.teacher.module.entity.AiScenarioConfigEntity;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

import java.util.List;

/**
 * AI场景配置转换器
 * <p>
 * 用于在AI场景配置实体、请求和响应对象之间进行转换
 * </p>
 */
@Mapper
public interface AdminAiScenarioConfigConvert {

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

    /**
     * 将AI场景配置实体转换为响应对象
     *
     * @param aiScenarioConfigEntity AI场景配置实体
     * @return AI场景配置响应对象
     */
    AdminAiScenarioConfigResp entityToResponse(AiScenarioConfigEntity aiScenarioConfigEntity);

    /**
     * 将AI场景配置实体列表转换为响应对象列表
     *
     * @param aiScenarioConfigEntityList AI场景配置实体列表
     * @return AI场景配置响应对象列表
     */
    List<AdminAiScenarioConfigResp> entityListToResponseList(List<AiScenarioConfigEntity> aiScenarioConfigEntityList);

    /**
     * 将请求对象转换为AI场景配置实体
     *
     * @param aiScenarioConfigRequest AI场景配置请求对象
     * @return AI场景配置实体
     */
    AiScenarioConfigEntity reqToEntity(AdminAiScenarioConfigReq aiScenarioConfigRequest);
}