<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    
    <groupId>cn.meowrain.aioj</groupId>
    <artifactId>aioj-backend-common-bom</artifactId>
    <version>${revision}</version>
    <packaging>pom</packaging>

    <name>aioj-common-bom</name>
    <description>AIOJ 依赖版本统一管理 (Bill of Materials)</description>

    <properties>
        <!-- 项目版本 -->
        <revision>1.0.0</revision>
        
        <!-- ==================== 框架版本 ==================== -->
        <spring-boot.version>3.5.7</spring-boot.version>
        <spring-cloud.version>2025.0.0</spring-cloud.version>
        <spring-cloud-alibaba.version>2025.0.0.0</spring-cloud-alibaba.version>
        <spring-security.version>6.5.6</spring-security.version>
        
        <!-- ==================== ORM & 数据库 ==================== -->
        <mybatis-plus.version>3.5.14</mybatis-plus.version>
        <mysql.version>9.4.0</mysql.version>
        
        <!-- ==================== 工具库 ==================== -->
        <hutool.version>5.8.41</hutool.version>
        <jackson.version>3.0.2</jackson.version>
        <gson.version>2.9.1</gson.version>
        <easyexcel.version>4.0.3</easyexcel.version>
        
        <!-- ==================== API文档 ==================== -->
        <springdoc.version>2.8.4</springdoc.version>
        <knife4j.version>4.5.0</knife4j.version>
        
        <!-- ==================== JWT ==================== -->
        <jjwt.version>0.13.0</jjwt.version>
        
        <!-- ==================== Spring Cloud Gateway ==================== -->
        <spring-cloud-gateway.version>4.3.2</spring-cloud-gateway.version>
        <spring-cloud-loadbalancer.version>4.3.0</spring-cloud-loadbalancer.version>
        
        <!-- ==================== 代码生成器 ==================== -->
        <freemarker.version>2.3.33</freemarker.version>
    </properties>

    <dependencyManagement>
        <dependencies>
            <!-- ==================== 内部模块版本管理 ==================== -->
            <dependency>
                <groupId>cn.meowrain.aioj</groupId>
                <artifactId>aioj-backend-common-core</artifactId>
                <version>${revision}</version>
            </dependency>
            <dependency>
                <groupId>cn.meowrain.aioj</groupId>
                <artifactId>aioj-backend-common-log</artifactId>
                <version>${revision}</version>
            </dependency>
            <dependency>
                <groupId>cn.meowrain.aioj</groupId>
                <artifactId>aioj-backend-common-mybatis</artifactId>
                <version>${revision}</version>
            </dependency>
            <dependency>
                <groupId>cn.meowrain.aioj</groupId>
                <artifactId>aioj-backend-common-feign</artifactId>
                <version>${revision}</version>
            </dependency>
            <dependency>
                <groupId>cn.meowrain.aioj</groupId>
                <artifactId>aioj-backend-common-starter</artifactId>
                <version>${revision}</version>
            </dependency>
            <dependency>
                <groupId>cn.meowrain.aioj</groupId>
                <artifactId>aioj-backend-upms-api</artifactId>
                <version>${revision}</version>
            </dependency>
            <dependency>
                <groupId>cn.meowrain.aioj</groupId>
                <artifactId>aioj-backend-upms-biz</artifactId>
                <version>${revision}</version>
            </dependency>
            <dependency>
                <groupId>cn.meowrain.aioj</groupId>
                <artifactId>aioj-backend-common-security</artifactId>
                <version>${revision}</version>
            </dependency>

            <!-- ==================== 第三方BOM导入 ==================== -->
            <!-- Jackson BOM -->
            <dependency>
                <groupId>tools.jackson</groupId>
                <artifactId>jackson-bom</artifactId>
                <version>${jackson.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            
            <!-- Hutool BOM -->
            <dependency>
                <groupId>cn.hutool</groupId>
                <artifactId>hutool-bom</artifactId>
                <version>${hutool.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            
            <!-- MyBatis Plus BOM -->
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-bom</artifactId>
                <version>${mybatis-plus.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <!-- ==================== 数据库 ==================== -->
            <dependency>
                <groupId>com.mysql</groupId>
                <artifactId>mysql-connector-j</artifactId>
                <version>${mysql.version}</version>
            </dependency>

            <!-- ==================== 工具库 ==================== -->
            <dependency>
                <groupId>com.google.code.gson</groupId>
                <artifactId>gson</artifactId>
                <version>${gson.version}</version>
            </dependency>
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>easyexcel</artifactId>
                <version>${easyexcel.version}</version>
            </dependency>

            <!-- ==================== API文档 ==================== -->
            <dependency>
                <groupId>org.springdoc</groupId>
                <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
                <version>${springdoc.version}</version>
            </dependency>
            <dependency>
                <groupId>com.github.xiaoymin</groupId>
                <artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
                <version>${knife4j.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.springdoc</groupId>
                        <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.springdoc</groupId>
                        <artifactId>springdoc-openapi-starter-webmvc-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.springdoc</groupId>
                        <artifactId>springdoc-openapi-starter-common</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>com.github.xiaoymin</groupId>
                <artifactId>knife4j-gateway-spring-boot-starter</artifactId>
                <version>${knife4j.version}</version>
            </dependency>

            <!-- ==================== JWT ==================== -->
            <dependency>
                <groupId>io.jsonwebtoken</groupId>
                <artifactId>jjwt-api</artifactId>
                <version>${jjwt.version}</version>
            </dependency>
            <dependency>
                <groupId>io.jsonwebtoken</groupId>
                <artifactId>jjwt-impl</artifactId>
                <version>${jjwt.version}</version>
            </dependency>
            <dependency>
                <groupId>io.jsonwebtoken</groupId>
                <artifactId>jjwt-jackson</artifactId>
                <version>${jjwt.version}</version>
            </dependency>

            <!-- ==================== Spring Cloud Gateway ==================== -->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-gateway-server-webflux</artifactId>
                <version>${spring-cloud-gateway.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-loadbalancer</artifactId>
                <version>${spring-cloud-loadbalancer.version}</version>
            </dependency>

            <!-- ==================== Spring Security Test ==================== -->
            <dependency>
                <groupId>org.springframework.security</groupId>
                <artifactId>spring-security-test</artifactId>
                <version>${spring-security.version}</version>
                <scope>test</scope>
            </dependency>

            <!-- ==================== 代码生成器 ==================== -->
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-generator</artifactId>
                <version>${mybatis-plus.version}</version>
            </dependency>
            <dependency>
                <groupId>org.freemarker</groupId>
                <artifactId>freemarker</artifactId>
                <version>${freemarker.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
</project>