package com.datamate.datamanagement.infrastructure.exception;

import com.datamate.common.infrastructure.exception.ErrorCode;
import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 数据管理模块错误码
 *
 * @author dallas
 * @since 2025-10-20
 */
@Getter
@AllArgsConstructor
public enum DataManagementErrorCode implements ErrorCode {
    /**
     * 数据集不存在
     */
    DATASET_NOT_FOUND("data_management.0001", "数据集不存在"),
    /**
     * 数据集已存在
     */
    DATASET_ALREADY_EXISTS("data_management.0002", "数据集已存在"),
    /**
     * 数据集状态错误
     */
    DATASET_STATUS_ERROR("data_management.0003", "数据集状态错误"),
    /**
     * 数据集标签不存在
     */
    DATASET_TAG_NOT_FOUND("data_management.0004", "数据集标签不存在"),
    /**
     * 数据集标签已存在
     */
    DATASET_TAG_ALREADY_EXISTS("data_management.0005", "数据集标签已存在"),
    /**
     * 数据集文件已存在
     */
    DATASET_FILE_ALREADY_EXISTS("data_management.0006", "数据集文件已存在"),
    /**
     * 目录不存在
     */
    DIRECTORY_NOT_FOUND("data_management.0007", "目录不存在"),
    /**
     * 存在关联数据集
     */
    DATASET_HAS_CHILDREN("data_management.0008", "存在关联数据集，禁止删除或移动"),
    /**
     * 数据集文件不存在
     */
    DATASET_FILE_NOT_FOUND("data_management.0009", "数据集文件不存在"),
    /**
     * 知识集不存在
     */
    KNOWLEDGE_SET_NOT_FOUND("data_management.0101", "知识集不存在"),
    /**
     * 知识集已存在
     */
    KNOWLEDGE_SET_ALREADY_EXISTS("data_management.0102", "知识集已存在"),
    /**
     * 知识集状态不可修改
     */
    KNOWLEDGE_SET_STATUS_ERROR("data_management.0103", "知识集状态不可修改"),
    /**
     * 知识条目不存在
     */
    KNOWLEDGE_ITEM_NOT_FOUND("data_management.0104", "知识条目不存在"),
    /**
     * 知识条目状态不可修改
     */
    KNOWLEDGE_ITEM_STATUS_ERROR("data_management.0105", "知识条目状态不可修改"),
    /**
     * 知识条目来源不支持
     */
    KNOWLEDGE_ITEM_SOURCE_NOT_SUPPORTED("data_management.0106", "知识条目来源不支持");

    private final String code;
    private final String message;
}
