ApiResponse.java
package com.ecommerce.platform.common.api;
import java.time.Instant;
import java.util.Objects;
public record ApiResponse<T>(String code, String message, T data, Instant timestamp) {
public ApiResponse {
Objects.requireNonNull(code, "code must not be null");
Objects.requireNonNull(message, "message must not be null");
Objects.requireNonNull(timestamp, "timestamp must not be null");
}
public static <T> ApiResponse<T> success(T data) {
return new ApiResponse<>("OK", "success", data, Instant.now());
}
public static <T> ApiResponse<T> failure(String code, String message) {
return new ApiResponse<>(code, message, null, Instant.now());
}
}