SleepDataPoint.java
package com.seebie.server.dto;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.PositiveOrZero;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import static java.math.BigDecimal.valueOf;
import static java.math.RoundingMode.HALF_UP;
/**
 *
 * @param x date only
 * @param y units of hours
 */
public record SleepDataPoint(@NotNull LocalDate x, @PositiveOrZero BigDecimal y) {
    public SleepDataPoint(LocalDateTime stopTime, int minutes, String zoneId) {
        this(stopTime.toLocalDate(), valueOf((double) minutes / 60).setScale(2, HALF_UP));
    }
}