package io.delphiplatform.api.v3.model;

import com.fasterxml.jackson.annotation.JsonIgnore;

import java.time.LocalDate;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import io.delphiplatform.api.util.model.ModelUtils;
import lombok.Getter;

@Getter
public class DateDataRange<T> implements DateRange {

    @JsonIgnore
    private final LocalDate minDate;

    @JsonIgnore
    private final LocalDate maxDate;

    public DateDataRange(LocalDate minDate, LocalDate maxDate) {
        this.minDate = minDate;
        this.maxDate = maxDate;
    }

    private final Map<LocalDate, T> data = new HashMap<>();

    public List<T> toRange() {
        return ModelUtils.toRange(data, getMinDate(), getMaxDate());
    }

}
