Data-old/src/main/java/de/ph87/data/series/SeriesIntervalKey.java
2024-10-15 16:26:48 +02:00

38 lines
890 B
Java

package de.ph87.data.series;
import de.ph87.data.series.consumption.unit.Unit;
import jakarta.persistence.Column;
import jakarta.persistence.Embeddable;
import jakarta.persistence.ManyToOne;
import lombok.*;
import java.io.Serializable;
import java.time.ZonedDateTime;
@Getter
@ToString
@Embeddable
@EqualsAndHashCode
@NoArgsConstructor
public class SeriesIntervalKey implements Serializable {
@NonNull
@ManyToOne(optional = false)
private Series series;
@NonNull
@Column(nullable = false, updatable = false, columnDefinition = "CHAR(1)")
private Unit unit;
@NonNull
@Column(nullable = false, updatable = false)
private ZonedDateTime aligned;
public SeriesIntervalKey(@NonNull final Series series, @NonNull final Unit unit, @NonNull final ZonedDateTime unaligned) {
this.series = series;
this.unit = unit;
this.aligned = unit.align(unaligned);
}
}