package com.jeesharp.business.modules.marketing.tenantExt.convert;

import com.jeesharp.business.modules.marketing.tenantExt.dto.MarketingTenantExtSaveDTO;
import com.jeesharp.business.modules.marketing.tenantExt.entity.MarketingTenantExt;
import com.jeesharp.business.modules.marketing.tenantExt.vo.MarketingTenantExtInfoVO;
import com.jeesharp.business.modules.marketing.tenantExt.vo.MarketingTenantExtListVO;
import com.jeesharp.business.modules.marketing.tenantExt.vo.MarketingTenantExtQueryVO;
import com.jeesharp.framework.common.pojo.convert.BasePojoConvert;
import org.mapstruct.IterableMapping;
import org.mapstruct.Mapper;
import org.mapstruct.Named;
import org.mapstruct.factory.Mappers;

import java.util.List;

/**
 * 店铺营销扩展配置 MapStruct 转换器。
 *
 * @author jeesharp
 * @since 2026-06-25
 */
@Mapper
public interface MarketingTenantExtConvert extends BasePojoConvert<
        MarketingTenantExt,
        MarketingTenantExtSaveDTO,
        MarketingTenantExtInfoVO,
        MarketingTenantExtListVO,
        MarketingTenantExtQueryVO> {

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

    @Override
    @Named("marketingTenantExtToInfo")
    MarketingTenantExtInfoVO toInfoVO(MarketingTenantExt entity);

    @Override
    @Named("marketingTenantExtToList")
    MarketingTenantExtListVO toListSingleVO(MarketingTenantExt entity);

    @Override
    @IterableMapping(qualifiedByName = "marketingTenantExtToInfo")
    List<MarketingTenantExtInfoVO> toInfoListVO(List<MarketingTenantExt> list);

    @Override
    @IterableMapping(qualifiedByName = "marketingTenantExtToList")
    List<MarketingTenantExtListVO> toListVO(List<MarketingTenantExt> list);
}
