package org.jeecg.module.custom.ocr.controller.dto;

import com.fasterxml.jackson.annotation.JsonAnySetter;
import com.google.common.collect.Maps;
import lombok.Data;
import org.jeecg.module.custom.ocr.api.entity.LivePhoto;

import java.util.List;
import java.util.Map;

@Data
public class TaskDTO {

    /**
     * 租户雪花no
     */
    private Long tenantNo;

    /**
     * 任务NO
     */
    private Long taskNo;

    /**
     * 业务主体雪花no
     */
    private Long accountNo;

    /**
     * 业务主体名称
     */
    private String accountName;

    /**
     * 关联项目no
     */
    private Long projectNo;

    /**
     * 项目名称
     */
    private String projectName;

    /**
     * 任务表单no
     */
    private Long taskFormNo;

    /**
     * 所属主计划ID
     */
    private Long planNo;

    /**
     * 所属主计划名称
     */
    private String planName;

    /**
     * 所属子计划ID
     */
    private Long planChildNo;

    /**
     * 所属子计划名称
     */
    private String planChildName;

    /**
     * 任务ID
     */
    private Long taskId;

    /**
     * 任务名称
     */
    private String taskName;

    /**
     * 提报人no
     */
    private Long userNo;

    /**
     * 提报人名称
     */
    private String userName;

    /**
     * 任务提交时间
     */
    private Long submitTime;

    /**
     * 本地图片地址
     */
    private String localImageUrl;

    /**
     * 图片hash
     */
    private String imgHash;

    /**
     * 图片地址
     */
    private String imageUrl;

    /**
     * 图片编号或名称
     */
    private String imageNo;


    // 使用 Map 捕获动态字段
    private Map<String, Object> dynamicFields = Maps.newHashMap();

    @JsonAnySetter
    public void setDynamicField(String name, Object value) {
        this.dynamicFields.put(name, value);
    }
}
