<?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>
  <parent>
    <groupId>org.squashtest.tm</groupId>
    <artifactId>squash-tm-tm</artifactId>
    <version>14.0.0.RC2</version>
  </parent>

  <artifactId>tm.rest-api</artifactId>
  <name>${project.groupId}.${project.artifactId}</name>
  <description>SquashTM REST API</description>

  <properties>
    <jackson-databind-nullable.version>0.2.6</jackson-databind-nullable.version>
    <openapi-generator.version>7.0.1</openapi-generator.version>
    <springdoc.version>2.8.9</springdoc.version>
  </properties>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>${project.groupId}</groupId>
        <artifactId>squash-tm-bom</artifactId>
        <version>${project.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <dependencies>
    <dependency>
      <groupId>org.openapitools</groupId>
      <artifactId>jackson-databind-nullable</artifactId>
      <version>${jackson-databind-nullable.version}</version>
    </dependency>

    <dependency>
      <groupId>org.springdoc</groupId>
      <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
      <version>${springdoc.version}</version>
    </dependency>

    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>tm.service</artifactId>
      <version>${project.version}</version>
    </dependency>

    <dependency>
      <groupId>com.tngtech.archunit</groupId>
      <artifactId>archunit-junit5</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <build>

    <resources>
      <resource>
        <filtering>true</filtering>
        <directory>src/main/resources</directory>
      </resource>

      <resource>
        <targetPath>.</targetPath>
        <filtering>false</filtering>
        <directory>${project.basedir}/../..</directory>
        <includes>
          <include>openapi.yaml</include>
        </includes>
      </resource>
    </resources>

    <testResources>
      <testResource>
        <filtering>false</filtering>
        <directory>${project.basedir}/src/test/resources</directory>
      </testResource>
    </testResources>

    <plugins>
      <plugin>
        <groupId>org.openapitools</groupId>
        <artifactId>openapi-generator-maven-plugin</artifactId>
        <version>${openapi-generator.version}</version>
        <executions>
          <execution>
            <goals>
              <goal>generate</goal>
            </goals>
            <configuration>
              <inputSpec>${project.basedir}/../../openapi.yaml</inputSpec>
              <generatorName>spring</generatorName>
              <configOptions>
                <useSpringBoot3>true</useSpringBoot3>
                <interfaceOnly>true</interfaceOnly>
                <useOneOfInterfaces>false</useOneOfInterfaces>
                <useLegacyDiscriminatorBehavior>false</useLegacyDiscriminatorBehavior>
                <skipDefaultInterface>true</skipDefaultInterface>
                <useTags>true</useTags>
                <dateLibrary>java8</dateLibrary>
                <additionalModelTypeAnnotations><![CDATA[@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL)]]></additionalModelTypeAnnotations>
              </configOptions>
              <templateDirectory>${project.basedir}/src/main/resources/openapi-generator-templates</templateDirectory>
              <apiPackage>org.squashtest.tm.rest.api</apiPackage>
              <modelPackage>org.squashtest.tm.rest.dto</modelPackage>
              <generateApiTests>false</generateApiTests>
              <generateModelTests>false</generateModelTests>
              <modelNameSuffix>DTO</modelNameSuffix>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <failOnWarning>false</failOnWarning>
          <generatedSourcesDirectory>${project.build.outputDirectory}/META-INF</generatedSourcesDirectory>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>
