package io.delphiplatform.api.v3.rdb.service.ads;

import com.healthmarketscience.sqlbuilder.CommonTableExpression;

import org.springframework.stereotype.Service;

import java.util.Set;

import io.delphiplatform.api.v3.rdb.entity.ads.AdsCampaignEntity;
import io.delphiplatform.api.v3.rdb.repository.AdsCampaignRepository;
import io.delphiplatform.api.v3.rdb.service.EntityService;
import io.delphiplatform.api.v3.view.util.Params;

import static io.delphiplatform.api.v3.constant.ExpressionConstants.CAMPAIGN_EXPRESSION_NAME;

@Service
public class AdsCampaignService extends EntityService<AdsCampaignEntity> {

    private final DecibelCampaignService decibelCampaignService;

    public AdsCampaignService(AdsCampaignRepository repository, DecibelCampaignService decibelCampaignService) {
        super(repository);
        this.decibelCampaignService = decibelCampaignService;
    }

    public CommonTableExpression findCampaignIdsExpression(Params params) {
        return new CommonTableExpression(CAMPAIGN_EXPRESSION_NAME)
            .setQuery(decibelCampaignService.findCampaignIdsExpression(params));
    }
}
