package io.delphiplatform.api.v3.model.tiktok;

import com.fasterxml.jackson.annotation.JsonProperty;

import org.openapitools.jackson.nullable.JsonNullable;

import java.util.Map;

import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
@EqualsAndHashCode
public class TikTokTrackAnalyticsBreakdowns {

    @JsonProperty("content_type_country")
    private JsonNullable<IsrcContentTypeCountryTikTokTrackAnalyticsBreakdowns> contentTypeCountry =
        JsonNullable.undefined();

    @JsonProperty("daily")
    private JsonNullable<TikTokTrackAnalyticsRangeMetrics> daily = JsonNullable.undefined();

    @JsonProperty("country_totals")
    private JsonNullable<Map<String, TikTokTrackAnalyticsMetrics>> countryTotals = JsonNullable.undefined();

    @JsonProperty("country_daily")
    private JsonNullable<Map<String, TikTokTrackAnalyticsRangeMetrics>> countryDaily = JsonNullable.undefined();

    public TikTokTrackAnalyticsBreakdowns contentTypeCountry(
        IsrcContentTypeCountryTikTokTrackAnalyticsBreakdowns contentTypeCountry) {
        this.contentTypeCountry = JsonNullable.of(contentTypeCountry);
        return this;
    }


    public TikTokTrackAnalyticsBreakdowns daily(TikTokTrackAnalyticsRangeMetrics daily) {
        this.daily = JsonNullable.of(daily);
        return this;
    }

    public TikTokTrackAnalyticsBreakdowns countryTotals(Map<String, TikTokTrackAnalyticsMetrics> countryTotals) {
        this.countryTotals = JsonNullable.of(countryTotals);
        return this;
    }

    public TikTokTrackAnalyticsBreakdowns countryDaily(Map<String, TikTokTrackAnalyticsRangeMetrics> countryDaily) {
        this.countryDaily = JsonNullable.of(countryDaily);
        return this;
    }
}
