package com.emoon.system.domain.bo;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
import com.emoon.common.mybatis.core.domain.BaseEntity;
import com.emoon.system.domain.SysProjectDo;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.*;

import java.util.ArrayList;
import java.util.List;

/**
 * @author destiny
 * @description:
 * @date 2025/8/24 18:06
 */
@EqualsAndHashCode(callSuper = true)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@AutoMapper(target = SysProjectDo.class, reverseConvertGenerate = false)
public class SysProjectBo extends BaseEntity {
    /**
     * id
     */
    private Integer id;

    /**
     * 部门id
     */
    private Long deptId;

    /**
     * 组织名称
     */
    private String organization;

    /**
     * 租户id
     */
    private String tenantId;

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

    /**
     * 私钥
     */
    private String privateKey;

    /**
     * 公钥
     */
    private String publicKey;

    /**
     * 项目类型
     */
    private String projectType;

    /**
     * 模型仓库
     */
    @JsonProperty("model_ids")
    private List<String> modelIds = new ArrayList<>();

    /**
     * 知识库仓库
     */
    @JsonProperty("rag_ids")
    private List<String> ragIds = new ArrayList<>();

    /**
     * 智能体权限
     */
    @TableField(value = "agent_ids", typeHandler = FastjsonTypeHandler.class)
    private List<String> agentIds = new ArrayList<>();
}
