package ru.yandex.autotests.direct.web.pages.showcampbem.blocks.strategy;

import java.io.Serializable;

public class StrategyWeb  implements Serializable {

    private StrategiesEnum.Strategies strategy;
    private StrategiesEnum.StrategyShowsType showsType;
    private StrategiesEnum.AtributionModel atributionModel;
    private String goal;
    private String averageConversionPrice;
    private String weekBudget;
    private String maxClickBid;
    private String averageRoiPrice;
    private String returningBudgetPercent;
    private String profitability;
    private StrategiesEnum.Restriction restriction;
    private String averageClickPrice;
    private String clicksLimit;
    private StrategiesEnum.ClicksBidType clicksBidType;
    private String clicksBid;
    private String dayBudget;
    private StrategiesEnum.DayBudgetType dayBudgetType;
    private Boolean differentPlacesControl;
    private Boolean holdAverageClickPrice;
    private StrategiesEnum.ContextLimitValue contextLimit;

    public StrategiesEnum.Strategies getStrategy() {
        return strategy;
    }

    public void setStrategy(StrategiesEnum.Strategies strategy) {
        this.strategy = strategy;
    }

    public StrategiesEnum.StrategyShowsType getShowsType() {
        return showsType;
    }

    public void setShowsType(StrategiesEnum.StrategyShowsType showsType) {
        this.showsType = showsType;
    }

    public StrategiesEnum.AtributionModel getAtributionModel() {
        return atributionModel;
    }

    public void setAtributionModel(StrategiesEnum.AtributionModel atributionModel) {
        this.atributionModel = atributionModel;
    }

    public String getGoal() {
        return goal;
    }

    public void setGoal(String goal) {
        this.goal = goal;
    }

    public String getAverageConversionPrice() {
        return averageConversionPrice;
    }

    public void setAverageConversionPrice(String averageConversionPrice) {
        this.averageConversionPrice = averageConversionPrice;
    }

    public String getWeekBudget() {
        return weekBudget;
    }

    public void setWeekBudget(String weekBudget) {
        this.weekBudget = weekBudget;
    }

    public String getMaxClickBid() {
        return maxClickBid;
    }

    public void setMaxClickBid(String maxClickBid) {
        this.maxClickBid = maxClickBid;
    }

    public String getAverageRoiPrice() {
        return averageRoiPrice;
    }

    public void setAverageRoiPrice(String averageRoiPrice) {
        this.averageRoiPrice = averageRoiPrice;
    }

    public String getReturningBudgetPercent() {
        return returningBudgetPercent;
    }

    public void setReturningBudgetPercent(String returningBudgetPercent) {
        this.returningBudgetPercent = returningBudgetPercent;
    }

    public String getProfitability() {
        return profitability;
    }

    public void setProfitability(String profitability) {
        this.profitability = profitability;
    }

    public StrategiesEnum.Restriction getRestriction() {
        return restriction;
    }

    public void setRestriction(StrategiesEnum.Restriction restriction) {
        this.restriction = restriction;
    }

    public String getAverageClickPrice() {
        return averageClickPrice;
    }

    public void setAverageClickPrice(String averageClickPrice) {
        this.averageClickPrice = averageClickPrice;
    }

    public String getClicksLimit() {
        return clicksLimit;
    }

    public void setClicksLimit(String clicksLimit) {
        this.clicksLimit = clicksLimit;
    }

    public StrategiesEnum.ClicksBidType getClicksBidType() {
        return clicksBidType;
    }

    public void setClicksBidType(StrategiesEnum.ClicksBidType clicksBidType) {
        this.clicksBidType = clicksBidType;
    }

    public String getClicksBid() {
        return clicksBid;
    }

    public void setClicksBid(String clicksBid) {
        this.clicksBid = clicksBid;
    }

    public String getDayBudget() {
        return dayBudget;
    }

    public void setDayBudget(String dayBudget) {
        this.dayBudget = dayBudget;
    }

    public StrategiesEnum.DayBudgetType getDayBudgetType() {
        return dayBudgetType;
    }

    public void setDayBudgetType(StrategiesEnum.DayBudgetType dayBudgetType) {
        this.dayBudgetType = dayBudgetType;
    }

    public Boolean getDifferentPlacesControl() {
        return differentPlacesControl;
    }

    public void setDifferentPlacesControl(Boolean differentPlacesControl) {
        this.differentPlacesControl = differentPlacesControl;
    }

    public Boolean getHoldAverageClickPrice() {
        return holdAverageClickPrice;
    }

    public void setHoldAverageClickPrice(Boolean holdAverageClickPrice) {
        this.holdAverageClickPrice = holdAverageClickPrice;
    }

    public StrategiesEnum.ContextLimitValue getContextLimit() {
        return contextLimit;
    }

    public void setContextLimit(StrategiesEnum.ContextLimitValue contextLimit) {
        this.contextLimit = contextLimit;
    }

    //-----------------------
    // FluentInterface

    public StrategyWeb withStrategy(StrategiesEnum.Strategies strategy) {
        this.strategy = strategy;
        return this;
    }

    public StrategyWeb withShowsType(StrategiesEnum.StrategyShowsType showsType) {
        this.showsType = showsType;
        return this;
    }

    public StrategyWeb withAtributionModel(StrategiesEnum.AtributionModel atributionModel) {
        this.atributionModel = atributionModel;
        return this;
    }

    public StrategyWeb withGoal(String goal) {
        this.goal = goal;
        return this;
    }

    public StrategyWeb withAverageConversionPrice(String averageConversionPrice) {
        this.averageConversionPrice = averageConversionPrice;
        return this;
    }

    public StrategyWeb withWeekBudget(String weekBudget) {
        this.weekBudget = weekBudget;
        return this;
    }

    public StrategyWeb withMaxClickBid(String maxClickBid) {
        this.maxClickBid = maxClickBid;
        return this;
    }

    public StrategyWeb withAverageRoiPrice(String averageRoiPrice) {
        this.averageRoiPrice = averageRoiPrice;
        return this;
    }

    public StrategyWeb withReturningBudgetPercent(String returningBudgetPercent) {
        this.returningBudgetPercent = returningBudgetPercent;
        return this;
    }

    public StrategyWeb withProfitability(String profitability) {
        this.profitability = profitability;
        return this;
    }

    public StrategyWeb withRestriction(StrategiesEnum.Restriction restriction) {
        this.restriction = restriction;
        return this;
    }

    public StrategyWeb withAverageClickPrice(String averageClickPrice) {
        this.averageClickPrice = averageClickPrice;
        return this;
    }

    public StrategyWeb withClicksLimit(String clicksLimit) {
        this.clicksLimit = clicksLimit;
        return this;
    }

    public StrategyWeb withClicksBidType(StrategiesEnum.ClicksBidType clicksBidType) {
        this.clicksBidType = clicksBidType;
        return this;
    }

    public StrategyWeb withClicksBid(String clicksBid) {
        this.clicksBid = clicksBid;
        return this;
    }

    public StrategyWeb withDayBudget(String dayBudget) {
        this.dayBudget = dayBudget;
        return this;
    }

    public StrategyWeb withDayBudgetType(StrategiesEnum.DayBudgetType dayBudgetType) {
        this.dayBudgetType = dayBudgetType;
        return this;
    }

    public StrategyWeb withDifferentPlacesControl(Boolean differentPlacesControl) {
        this.differentPlacesControl = differentPlacesControl;
        return this;
    }

    public StrategyWeb withHoldAverageClickPrice(Boolean holdAverageClickPrice) {
        this.holdAverageClickPrice = holdAverageClickPrice;
        return this;
    }

    public StrategyWeb withContextLimit(StrategiesEnum.ContextLimitValue contextLimit) {
        this.contextLimit = contextLimit;
        return this;
    }
}