package cn.meowrain.aioj.backend.aiservice.grpc;

/**
 * AI Service Proto 外部类
 */
public final class AIServiceProto {
    private AIServiceProto() {}

    // 代码分析请求
    public static final class AnalyzeCodeRequest extends
            com.google.protobuf.GeneratedMessageV3 implements
            com.google.protobuf.Message {

        private AnalyzeCodeRequest() {
            this.code = "";
            this.language = "";
            this.questionId = "";
            this.userId = "";
        }

        private String code;
        private String language;
        private String questionId;
        private String userId;

        public String getCode() { return code; }
        public String getLanguage() { return language; }
        public String getQuestionId() { return questionId; }
        public String getUserId() { return userId; }

        @Override
        public com.google.protobuf.Parser<AnalyzeCodeRequest> getParserForType() {
            return null;
        }

        public static AnalyzeCodeRequest getDefaultInstance() {
            return new AnalyzeCodeRequest();
        }

        public static AnalyzeCodeRequest newBuilder() {
            return new Builder();
        }

        public static final class Builder {
            private final AnalyzeCodeRequest result = new AnalyzeCodeRequest();

            public Builder setCode(String value) {
                result.code = value;
                return this;
            }

            public Builder setLanguage(String value) {
                result.language = value;
                return this;
            }

            public Builder setQuestionId(String value) {
                result.questionId = value;
                return this;
            }

            public Builder setUserId(String value) {
                result.userId = value;
                return this;
            }

            public AnalyzeCodeRequest build() {
                return result;
            }
        }
    }

    // 代码分析响应
    public static final class AnalyzeCodeResponse extends
            com.google.protobuf.GeneratedMessageV3 {

        private AnalyzeCodeResponse() {
            this.success = false;
            this.message = "";
        }

        private boolean success;
        private String message;
        private CodeAnalysis analysis;

        public boolean getSuccess() { return success; }
        public String getMessage() { return message; }
        public boolean hasAnalysis() { return analysis != null; }
        public CodeAnalysis getAnalysis() { return analysis; }

        public static AnalyzeCodeResponse newBuilder() {
            return new Builder();
        }

        public static final class Builder {
            private final AnalyzeCodeResponse result = new AnalyzeCodeResponse();

            public Builder setSuccess(boolean value) {
                result.success = value;
                return this;
            }

            public Builder setMessage(String value) {
                result.message = value;
                return this;
            }

            public Builder setAnalysis(CodeAnalysis value) {
                result.analysis = value;
                return this;
            }

            public AnalyzeCodeResponse build() {
                return result;
            }
        }
    }

    // 代码分析结果
    public static final class CodeAnalysis extends
            com.google.protobuf.GeneratedMessageV3 {

        private CodeAnalysis() {}

        public java.util.List<String> getIssuesList() { return java.util.Collections.emptyList(); }
        public java.util.List<String> getSuggestionsList() { return java.util.Collections.emptyList(); }
        public int getComplexityScore() { return 0; }
        public int getPerformanceScore() { return 0; }
        public int getReadabilityScore() { return 0; }
        public String getTimeComplexity() { return ""; }
        public String getSpaceComplexity() { return ""; }
        public java.util.List<String> getBestPracticesList() { return java.util.Collections.emptyList(); }

        public static CodeAnalysis newBuilder() {
            return new Builder();
        }

        public static final class Builder {
            private final CodeAnalysis result = new CodeAnalysis();
            public CodeAnalysis build() { return result; }
        }
    }

    // 代码优化请求
    public static final class OptimizeCodeRequest extends
            com.google.protobuf.GeneratedMessageV3 {

        private OptimizeCodeRequest() {
            this.code = "";
            this.language = "";
            this.optimizationType = "";
        }

        private String code;
        private String language;
        private String optimizationType;

        public String getCode() { return code; }
        public String getLanguage() { return language; }
        public String getOptimizationType() { return optimizationType; }

        public static OptimizeCodeRequest newBuilder() {
            return new Builder();
        }

        public static final class Builder {
            private final OptimizeCodeRequest result = new OptimizeCodeRequest();

            public Builder setCode(String value) {
                result.code = value;
                return this;
            }

            public Builder setLanguage(String value) {
                result.language = value;
                return this;
            }

            public Builder setOptimizationType(String value) {
                result.optimizationType = value;
                return this;
            }

            public OptimizeCodeRequest build() {
                return result;
            }
        }
    }

    // 代码优化响应
    public static final class OptimizeCodeResponse extends
            com.google.protobuf.GeneratedMessageV3 {

        private OptimizeCodeResponse() {
            this.success = false;
            this.message = "";
            this.optimizedCode = "";
        }

        private boolean success;
        private String message;
        private String optimizedCode;
        private java.util.List<String> improvements = java.util.Collections.emptyList();

        public boolean getSuccess() { return success; }
        public String getMessage() { return message; }
        public String getOptimizedCode() { return optimizedCode; }
        public java.util.List<String> getImprovementsList() { return improvements; }

        public static OptimizeCodeResponse newBuilder() {
            return new Builder();
        }

        public static final class Builder {
            private final OptimizeCodeResponse result = new OptimizeCodeResponse();

            public Builder setSuccess(boolean value) {
                result.success = value;
                return this;
            }

            public Builder setMessage(String value) {
                result.message = value;
                return this;
            }

            public Builder setOptimizedCode(String value) {
                result.optimizedCode = value;
                return this;
            }

            public Builder setImprovementsList(java.util.List<String> value) {
                result.improvements = value;
                return this;
            }

            public OptimizeCodeResponse build() {
                return result;
            }
        }
    }

    // 生成测试用例请求
    public static final class GenerateTestCasesRequest extends
            com.google.protobuf.GeneratedMessageV3 {

        private GenerateTestCasesRequest() {
            this.code = "";
            this.language = "";
            this.problemDescription = "";
        }

        private String code;
        private String language;
        private String problemDescription;

        public String getCode() { return code; }
        public String getLanguage() { return language; }
        public String getProblemDescription() { return problemDescription; }

        public static GenerateTestCasesRequest newBuilder() {
            return new Builder();
        }

        public static final class Builder {
            private final GenerateTestCasesRequest result = new GenerateTestCasesRequest();

            public Builder setCode(String value) {
                result.code = value;
                return this;
            }

            public Builder setLanguage(String value) {
                result.language = value;
                return this;
            }

            public Builder setProblemDescription(String value) {
                result.problemDescription = value;
                return this;
            }

            public GenerateTestCasesRequest build() {
                return result;
            }
        }
    }

    // 生成测试用例响应
    public static final class GenerateTestCasesResponse extends
            com.google.protobuf.GeneratedMessageV3 {

        private GenerateTestCasesResponse() {
            this.success = false;
            this.message = "";
        }

        private boolean success;
        private String message;
        private java.util.List<TestCase> testCases = java.util.Collections.emptyList();

        public boolean getSuccess() { return success; }
        public String getMessage() { return message; }
        public java.util.List<TestCase> getTestCasesList() { return testCases; }

        public static GenerateTestCasesResponse newBuilder() {
            return new Builder();
        }

        public static final class Builder {
            private final GenerateTestCasesResponse result = new GenerateTestCasesResponse();

            public Builder setSuccess(boolean value) {
                result.success = value;
                return this;
            }

            public Builder setMessage(String value) {
                result.message = value;
                return this;
            }

            public Builder setTestCasesList(java.util.List<TestCase> value) {
                result.testCases = value;
                return this;
            }

            public GenerateTestCasesResponse build() {
                return result;
            }
        }
    }

    // 测试用例
    public static final class TestCase extends
            com.google.protobuf.GeneratedMessageV3 {

        private TestCase() {
            this.input = "";
            this.expectedOutput = "";
            this.description = "";
        }

        private String input;
        private String expectedOutput;
        private String description;

        public String getInput() { return input; }
        public String getExpectedOutput() { return expectedOutput; }
        public String getDescription() { return description; }

        public static TestCase newBuilder() {
            return new Builder();
        }

        public static final class Builder {
            private final TestCase result = new TestCase();

            public Builder setInput(String value) {
                result.input = value;
                return this;
            }

            public Builder setExpectedOutput(String value) {
                result.expectedOutput = value;
                return this;
            }

            public Builder setDescription(String value) {
                result.description = value;
                return this;
            }

            public TestCase build() {
                return result;
            }
        }
    }

    // 代码解释请求
    public static final class ExplainCodeRequest extends
            com.google.protobuf.GeneratedMessageV3 {

        private ExplainCodeRequest() {
            this.code = "";
            this.language = "";
            this.detailLevel = "";
        }

        private String code;
        private String language;
        private String detailLevel;

        public String getCode() { return code; }
        public String getLanguage() { return language; }
        public String getDetailLevel() { return detailLevel; }

        public static ExplainCodeRequest newBuilder() {
            return new Builder();
        }

        public static final class Builder {
            private final ExplainCodeRequest result = new ExplainCodeRequest();

            public Builder setCode(String value) {
                result.code = value;
                return this;
            }

            public Builder setLanguage(String value) {
                result.language = value;
                return this;
            }

            public Builder setDetailLevel(String value) {
                result.detailLevel = value;
                return this;
            }

            public ExplainCodeRequest build() {
                return result;
            }
        }
    }

    // 代码解释响应
    public static final class ExplainCodeResponse extends
            com.google.protobuf.GeneratedMessageV3 {

        private ExplainCodeResponse() {
            this.success = false;
            this.message = "";
            this.explanation = "";
        }

        private boolean success;
        private String message;
        private String explanation;
        private java.util.List<String> keyPoints = java.util.Collections.emptyList();

        public boolean getSuccess() { return success; }
        public String getMessage() { return message; }
        public String getExplanation() { return explanation; }
        public java.util.List<String> getKeyPointsList() { return keyPoints; }

        public static ExplainCodeResponse newBuilder() {
            return new Builder();
        }

        public static final class Builder {
            private final ExplainCodeResponse result = new ExplainCodeResponse();

            public Builder setSuccess(boolean value) {
                result.success = value;
                return this;
            }

            public Builder setMessage(String value) {
                result.message = value;
                return this;
            }

            public Builder setExplanation(String value) {
                result.explanation = value;
                return this;
            }

            public Builder setKeyPointsList(java.util.List<String> value) {
                result.keyPoints = value;
                return this;
            }

            public ExplainCodeResponse build() {
                return result;
            }
        }
    }
}
