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

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.annotation.JsonProperty;

import java.time.LocalDate;
import java.util.Objects;

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

@Getter
@Setter
@EqualsAndHashCode
public class TikTokTrackAnalytics {

    @JsonProperty("min_date")
    private LocalDate minDate;

    @JsonProperty("max_date")
    private LocalDate maxDate;

    @JsonProperty("days_count")
    private Integer daysCount = 0;

    @JsonInclude(Include.NON_NULL)
    @JsonProperty("isrc")
    private String isrc;

    @JsonProperty("breakdowns")
    private TikTokTrackAnalyticsBreakdowns breakdowns;

    public TikTokTrackAnalytics minDate(LocalDate minDate) {
        this.minDate = minDate;
        return this;
    }

    public TikTokTrackAnalytics maxDate(LocalDate maxDate) {
        this.maxDate = maxDate;
        return this;
    }

    public TikTokTrackAnalytics daysCount(Integer daysCount) {
        this.daysCount = daysCount;
        return this;
    }

    public TikTokTrackAnalytics breakdowns(TikTokTrackAnalyticsBreakdowns breakdowns) {
        this.breakdowns = breakdowns;
        return this;
    }
}

