package com.zhengmeng.ocrplatform.recognition;

import java.time.LocalDateTime;

public record OcrRawResultSummaryItem(
        Long id,
        int runNo,
        String engineCode,
        String engineVersion,
        String resultType,
        Long elapsedMs,
        String errorCode,
        String errorMessage,
        int rawJsonLength,
        int requestPayloadJsonLength,
        LocalDateTime createdAt
) {
    public static OcrRawResultSummaryItem from(OcrRawResultEntity entity) {
        return new OcrRawResultSummaryItem(
                entity.getId(),
                entity.getRunNo(),
                entity.getEngineCode(),
                entity.getEngineVersion(),
                entity.getResultType(),
                entity.getElapsedMs(),
                entity.getErrorCode(),
                entity.getErrorMessage(),
                length(entity.getRawJson()),
                length(entity.getRequestPayloadJson()),
                entity.getCreatedAt()
        );
    }

    private static int length(String value) {
        return value == null ? 0 : value.length();
    }
}
