MediaStorageProperties.java

package com.ecommerce.catalog.infrastructure.storage;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.util.unit.DataSize;
import org.springframework.validation.annotation.Validated;

import java.time.Duration;

@Validated
@ConfigurationProperties("ecommerce.catalog.media")
public record MediaStorageProperties(
        @NotBlank String endpoint,
        @NotBlank String username,
        @NotBlank String password,
        @NotBlank String bucket,
        @NotNull Duration uploadExpiry,
        @NotNull Duration downloadExpiry,
        @NotNull DataSize maximumSize
) {
}