package gc.mda.signal_batch.monitoring.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ApiUsageLogDto {
    
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss.SSS")
    private LocalDateTime timestamp;
    
    private String clientIp;
    private String method;
    private String apiPath;
    private String queryString;
    private String userAgent;
    private String referer;
    
    private int statusCode;
    private long responseSizeBytes;
    private long processingTimeMs;
    
    private String sessionId;
    private String requestId;
    
    // 에러 정보 (옵션)
    private String errorMessage;
    private String exceptionClass;
}