RentalProperties.java
package com.github.jenkaby.bikerental.shared.config;
import jakarta.validation.constraints.NotNull;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.validation.annotation.Validated;
import java.time.Duration;
@Validated
@ConfigurationProperties(prefix = "app.rental")
public record RentalProperties(
@NotNull
Duration timeIncrement,
@NotNull
ForgivenessProperties forgiveness
) {
public record ForgivenessProperties(
@NotNull
Duration overtimeDuration
) {
public int overtimeDurationMinutes() {
return (int) overtimeDuration.toMinutes();
}
}
public int getForgivenessThresholdMinutes() {
return forgiveness.overtimeDurationMinutes();
}
public int getTimeIncrementMinutes() {
return (int) timeIncrement.toMinutes();
}
}