38 lines
890 B
Java
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);
|
|
}
|
|
|
|
}
|