package com.kt.event.content.biz.dto;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;

/**
 * Redis에 저장되는 Job 상태 정보
 *
 * Key Pattern: job:{jobId}
 * Data Type: Hash
 * TTL: 1시간 (3600초)
 *
 * 예시:
 * - job:job-mock-7ada8bd3
 * - job:job-regen-df2bb3a3
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class RedisJobData {
    /**
     * Job ID (예: job-mock-7ada8bd3)
     */
    private String id;

    /**
     * 이벤트 ID
     */
    private String eventId;

    /**
     * Job 타입 (image-generation, image-regeneration)
     */
    private String jobType;

    /**
     * 상태 (PENDING, IN_PROGRESS, COMPLETED, FAILED)
     */
    private String status;

    /**
     * 진행률 (0-100)
     */
    private Integer progress;

    /**
     * 결과 메시지
     */
    private String resultMessage;

    /**
     * 에러 메시지
     */
    private String errorMessage;

    /**
     * 생성 일시
     */
    private LocalDateTime createdAt;

    /**
     * 수정 일시
     */
    private LocalDateTime updatedAt;
}
