diff --git a/build.gradle.kts b/build.gradle.kts index 10fcbf9d..bfec98c1 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -39,6 +39,7 @@ dependencies { implementation("org.springdoc:springdoc-openapi-starter-webmvc-ui:2.8.9") // DB + implementation("com.github.f4b6a3:tsid-creator:5.2.6") runtimeOnly("com.h2database:h2") runtimeOnly("com.mysql:mysql-connector-j") diff --git a/src/main/kotlin/roomescape/common/config/TsidConfig.kt b/src/main/kotlin/roomescape/common/config/TsidConfig.kt new file mode 100644 index 00000000..ea84f02c --- /dev/null +++ b/src/main/kotlin/roomescape/common/config/TsidConfig.kt @@ -0,0 +1,17 @@ +package roomescape.common.config + +import com.github.f4b6a3.tsid.TsidFactory +import org.springframework.beans.factory.annotation.Value +import org.springframework.context.annotation.Bean +import org.springframework.context.annotation.Configuration + +@Configuration +class TsidConfig { + @Value("\${POD_NAME:app-0}") + private lateinit var podName: String + + @Bean + fun tsidFactory(): TsidFactory = TsidFactory(podName.substringAfterLast("-").toInt()) +} + +fun TsidFactory.next(): Long = this.create().toLong() \ No newline at end of file