OrderEventConsumerProperties.java
package com.ecommerce.marketing.infrastructure.messaging;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Positive;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.validation.annotation.Validated;
import java.time.Duration;
@Validated
@ConfigurationProperties("ecommerce.marketing.order-consumer")
public record OrderEventConsumerProperties(
boolean enabled,
@NotBlank String endpoints,
@NotBlank String topic,
@NotBlank String consumerGroup,
@Positive int batchSize,
Duration invisibleDuration,
Duration awaitDuration
) {
public OrderEventConsumerProperties {
invisibleDuration = invisibleDuration == null ? Duration.ofSeconds(30) : invisibleDuration;
awaitDuration = awaitDuration == null ? Duration.ofSeconds(5) : awaitDuration;
}
}