package com.ycwl.basic.puzzle.edge.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.util.Date;

/**
 * Puzzle 边缘渲染任务实体
 * 对应表：puzzle_edge_render_task
 */
@Data
@TableName("puzzle_edge_render_task")
public class PuzzleEdgeRenderTaskEntity {

    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    @TableField("record_id")
    private Long recordId;

    @TableField("template_id")
    private Long templateId;

    @TableField("template_code")
    private String templateCode;

    @TableField("scenic_id")
    private Long scenicId;

    @TableField("face_id")
    private Long faceId;

    /**
     * 任务类型：PUZZLE-原始拼图 WATERMARK-水印拼图
     */
    @TableField("task_type")
    private String taskType;

    /**
     * 水印类型（仅task_type=WATERMARK时有效）
     */
    @TableField("watermark_type")
    private String watermarkType;

    @TableField("content_hash")
    private String contentHash;

    @TableField("status")
    private Integer status;

    @TableField("worker_id")
    private Long workerId;

    @TableField("lease_expire_time")
    private Date leaseExpireTime;

    @TableField("attempt_count")
    private Integer attemptCount;

    @TableField("output_format")
    private String outputFormat;

    @TableField("output_quality")
    private Integer outputQuality;

    @TableField("original_object_key")
    private String originalObjectKey;

    @TableField("cropped_object_key")
    private String croppedObjectKey;

    @TableField("payload_json")
    private String payloadJson;

    @TableField("error_message")
    private String errorMessage;

    @TableField("create_time")
    private Date createTime;

    @TableField("update_time")
    private Date updateTime;
}

