MockChannelProperties.java

package com.ecommerce.payment.infrastructure.config;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.validation.annotation.Validated;

import java.time.Duration;

@Validated
@ConfigurationProperties("ecommerce.payment.mock-channel")
public record MockChannelProperties(
        @NotBlank @Size(min = 32) String callbackSecret,
        Duration callbackMaxSkew
) {
    public MockChannelProperties {
        callbackMaxSkew = callbackMaxSkew == null ? Duration.ofMinutes(5) : callbackMaxSkew;
    }
}