package com.seer.teach.admin.convert;

import com.seer.teach.admin.request.MaterialReq;
import com.seer.teach.admin.response.MaterialResp;
import com.seer.teach.admin.response.MaterialWithUnitResp;
import com.seer.teach.teacher.module.entity.MaterialEntity;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

import java.util.List;

/**
 * <p>
 * 教材转换器
 * </p>
 *
 * @author ZS
 * @since 2025-10-22
 */
@Mapper
public interface MaterialConvert {

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

    /**
     * Entity转Resp
     *
     * @param entity 实体
     * @return 响应对象
     */
    MaterialResp entityToResp(MaterialEntity entity);

    List<MaterialResp> entitiesToResps(List<MaterialEntity> entities);

    /**
     * SaveReq转Entity
     *
     * @param req 保存请求
     * @return 实体
     */
    MaterialEntity reqToEntity(MaterialReq req);

    /**
     * Entity转WithUnitResp
     *
     * @param entities 实体
     * @return 响应对象
     */
    List<MaterialWithUnitResp> entitiesToWithUnitResps(List<MaterialEntity> entities);
}