TedeeProperties.java
package org.sanmibuh.tedee.lock.infrastructure;
import jakarta.validation.Valid;
import jakarta.validation.constraints.AssertTrue;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import java.time.Duration;
import org.sanmibuh.framework.resilience.RetryProperties;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.validation.annotation.Validated;
@Validated
@ConfigurationProperties(prefix = "sanmibuh.rest.tedee")
public record TedeeProperties(
@NotBlank String baseUrl,
@NotBlank String apiKey,
@NotBlank String callbackSecret,
@NotNull Duration callbackRegistrationInterval,
@Valid @NotNull RetryProperties retry) {
@AssertTrue(message = "callbackRegistrationInterval must be positive")
boolean isCallbackRegistrationIntervalPositive() {
return !callbackRegistrationInterval.isNegative() && !callbackRegistrationInterval.isZero();
}
}