package com.backendsys.modules.ai.volcengine.entity;

import com.backendsys.config.Mybatis.handler.timezone.LocalDateTimeAdapter;
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 com.google.gson.annotations.JsonAdapter;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.time.LocalDateTime;

@TableName("ai_volcengine_video_task_detail")
@Data
public class VolcengineVideoTaskDetail {

    public interface Regenerate{}

    @NotNull(message = "id不能为空", groups = { VolcengineVideoTaskDetail.Regenerate.class })
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 用户ID
     */
    private Long user_id;
    /**
     * 任务ID
     */
    private Long task_id;
    /**
     * 火山大模型任务ID
     */
    private String volcengine_task_id;
    /**
     * 封面图片URL
     */
    private String cover_img_url;
    /**
     * 种子
     */
    private Integer seed;
    /**
     * 任务状态
     * queued：排队中。
     * running：任务运行中。
     * cancelled：取消任务，取消状态24h自动删除（只支持排队中状态的任务被取消）。
     * succeeded： 任务成功。
     * failed：任务失败。
     */
    private String status;
    /**
     * 视频原始URL
     */
    private String video_origin_url;
    /**
     * 视频转存URL
     */
    private String video_url;
    /**
     * 存储对象key
     */
    private String object_key;
    /**
     * 失败信息
     */
    private String error_msg;

    @JsonAdapter(LocalDateTimeAdapter.class)
    private LocalDateTime create_time;
    @JsonAdapter(LocalDateTimeAdapter.class)
    private LocalDateTime update_time;

    /**
     * 是否收藏 1-是 -1-否
     */
    @TableField(exist = false)
    private Integer is_collect;
}
