ApiResponse.java

package com.newbit.common.dto;

import lombok.Builder;
import lombok.Getter;

import java.time.LocalDateTime;

@Getter
@Builder
public class ApiResponse<T> {

    private boolean success;            // 요청 성공 여부
    private T data;                     // 실제 데이터 (성공 시만 사용)
    private String errorCode;           // 실패 시 에러 코드
    private String message;             // 실패 시 메세지
    private LocalDateTime timestamp;    // 응답 생성 시간

    // 성공 응답 생성 정적 메소드
    public static<T> ApiResponse<T> success(T data) {
        return ApiResponse.<T>builder()
                .success(true)
                .data(data)
                .timestamp(LocalDateTime.now())
                .build();
    }

    // 실패 응답 생성 정적 메소드
    public static<T> ApiResponse<T> failure(String errorCode, String message) {
        return ApiResponse.<T>builder()
                .success(false)
                .errorCode(errorCode)
                .message(message)
                .timestamp(LocalDateTime.now())
                .build();
    }
}