package com.zioinfo.kintex.module.m5.dto;

import com.fasterxml.jackson.annotation.JsonInclude;

/**
 * RenderJob 상태·결과(SCR-12 갤러리 카드). 워터마크·고지는 계약상 항상 포함한다(PLANNING §6-5).
 *
 * @param jobId             잡 식별자
 * @param boothId           부스 식별자
 * @param shotPreset        S1~S7
 * @param status            QUEUED|RUNNING|DONE|FAILED
 * @param imageUrl          완료 시 생성 이미지 URL(오브젝트 스토리지). 미완료 시 null
 * @param schemaHash        씬 스키마 해시(캐시 키·메타데이터)
 * @param modelVersion      생성 모델 버전(메타데이터)
 * @param watermarkRequired 항상 true — 프론트는 워터마크 제거 불가
 * @param watermarkText     워터마크 문구
 * @param notice            사용 제한 고지("계약·심사 서류 사용 금지 — 시공 기준은 도면")
 * @param errorMessage      실패 시 사용자 친화 요약(스택트레이스 미포함)
 * @param createdAt         생성 요청 시각(ISO-8601)
 */
@JsonInclude(JsonInclude.Include.NON_NULL)
public record RenderJobDto(
        String jobId,
        String boothId,
        String shotPreset,
        String status,
        String imageUrl,
        String schemaHash,
        String modelVersion,
        boolean watermarkRequired,
        String watermarkText,
        String notice,
        String errorMessage,
        String createdAt
) {
    public static final String WATERMARK_TEXT = "AI 생성 예상 이미지 — 실제 시공 결과와 다를 수 있습니다";
    public static final String NOTICE = "AI 생성 이미지는 계약·심사 서류에 사용할 수 없습니다 — 시공 기준은 도면입니다";
}
