package ru.yandex.autotests.directintapi.bstransport.b2b.prepare.strategies;

import org.jooq.Condition;

import ru.yandex.aqua.annotations.project.Aqua;
import ru.yandex.autotests.direct.db.models.jooq.ppc.enums.CampaignsArchived;
import ru.yandex.autotests.direct.db.models.jooq.ppc.enums.CampaignsStatusactive;
import ru.yandex.autotests.direct.db.models.jooq.ppc.enums.CampaignsStrategyName;
import ru.yandex.autotests.direct.db.models.jooq.ppc.enums.CampaignsType;
import ru.yandex.autotests.directintapi.bstransport.FeatureNames;
import ru.yandex.autotests.directintapi.bstransport.b2b.prepare.CampaignsOnlyB2BPrepareTest;
import ru.yandex.qatools.allure.annotations.Features;
import ru.yandex.qatools.allure.annotations.Title;

import static ru.yandex.autotests.direct.db.models.jooq.ppc.Tables.CAMPAIGNS;
import static ru.yandex.autotests.direct.db.utils.MysqlDSLUtils.jsonExtract;

@Aqua.Test
@Features(FeatureNames.TRANSPORT_B2B_PREPARE)
@Title("Кампании со стратегией autobudget_week_bundle (средняя за неделю)")
public class CampaignsWithStrategyAutoBudgetWeekBundleBidPrepareTest extends CampaignsOnlyB2BPrepareTest {

    @Override
    protected Condition getCampaignsCondition() {
        return CAMPAIGNS.ORDERID.gt(0L)
                .and(CAMPAIGNS.TYPE.in(CampaignsType.text, CampaignsType.mobile_content, CampaignsType.dynamic))
                .and(CAMPAIGNS.STATUSACTIVE.eq(CampaignsStatusactive.Yes))
                .and(CAMPAIGNS.ARCHIVED.eq(CampaignsArchived.No))
                .and(CAMPAIGNS.STRATEGY_NAME.eq(CampaignsStrategyName.autobudget_week_bundle))
                .and(jsonExtract(CAMPAIGNS.STRATEGY_DATA, "$.bid", Double.class).gt(0d));
    }
}