package com.njcn.gather.tools.report.model.enums;

import lombok.Getter;

/**
 * 报告生成模块响应枚举
 * 用于定义报告生成过程中的错误代码和消息
 * 
 * @author hongawen
 */
@Getter
public enum ReportResponseEnum {
    
    /**
     * 报告生成模块异常响应码范围：
     * R01000 ~ R01099
     */
    TEMPLATE_LOAD_ERROR("R01000", "模板文件加载失败"),
    TEMPLATE_PROCESS_ERROR("R01001", "模板处理失败"),
    FILE_SAVE_ERROR("R01002", "文件保存失败"),
    VALIDATION_ERROR("R01003", "参数验证失败"),
    UNSUPPORTED_OPERATION("R01004", "不支持的操作"),
    REPORT_GENERATION_ERROR("R01005", "报告生成失败"),
    ASYNC_PROCESSING_ERROR("R01006", "异步处理失败"),
    BATCH_PROCESSING_ERROR("R01007", "批量处理失败"),
    
    // 模板相关错误
    TEMPLATE_NOT_FOUND("R01010", "模板文件不存在"),
    TEMPLATE_FORMAT_ERROR("R01011", "模板文件格式不正确"),
    TEMPLATE_CORRUPTED("R01012", "模板文件已损坏"),
    
    // 数据相关错误  
    DATA_EMPTY("R01020", "填充数据为空"),
    DATA_FORMAT_ERROR("R01021", "数据格式不正确"),
    PLACEHOLDER_NOT_FOUND("R01022", "占位符未找到对应数据"),
    
    // 输出相关错误
    OUTPUT_PATH_INVALID("R01030", "输出路径无效"),
    OUTPUT_PERMISSION_DENIED("R01031", "输出路径权限不足"),
    DISK_SPACE_INSUFFICIENT("R01032", "磁盘空间不足"),
    
    // 处理器相关错误
    NO_SUITABLE_PROCESSOR("R01040", "找不到合适的文档处理器"),
    PROCESSOR_INIT_ERROR("R01041", "文档处理器初始化失败"),
    
    // 系统相关错误
    MEMORY_INSUFFICIENT("R01050", "内存不足"),
    PROCESSING_TIMEOUT("R01051", "处理超时"),
    SYSTEM_BUSY("R01052", "系统繁忙，请稍后再试");
    
    private final String code;
    private final String message;
    
    ReportResponseEnum(String code, String message) {
        this.code = code;
        this.message = message;
    }
}