mirror of
https://git.hmsn.ink/test/linkkf.git
synced 2026-03-20 00:02:17 +09:00
first
This commit is contained in:
11
src/main/kotlin/org/home/linkkf/SampleApplication.kt
Normal file
11
src/main/kotlin/org/home/linkkf/SampleApplication.kt
Normal file
@@ -0,0 +1,11 @@
|
||||
package org.home.linkkf
|
||||
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication
|
||||
import org.springframework.boot.runApplication
|
||||
|
||||
@SpringBootApplication
|
||||
class SampleApplication
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
runApplication<SampleApplication>(*args)
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package org.home.linkkf.config.filter
|
||||
|
||||
import ch.qos.logback.classic.spi.ILoggingEvent
|
||||
import ch.qos.logback.core.filter.Filter
|
||||
import ch.qos.logback.core.spi.FilterReply
|
||||
|
||||
|
||||
class LoggingFilter : Filter<ILoggingEvent?>() {
|
||||
override fun decide(p0: ILoggingEvent?): FilterReply? {
|
||||
if (p0!!.getMessage().contains("locale")) {
|
||||
return FilterReply.DENY
|
||||
} else {
|
||||
return FilterReply.ACCEPT
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
package org.home.linkkf.config.jasypt
|
||||
|
||||
import com.ulisesbocchio.jasyptspringboot.annotation.EnableEncryptableProperties
|
||||
import org.jasypt.encryption.StringEncryptor
|
||||
import org.jasypt.encryption.pbe.PooledPBEStringEncryptor
|
||||
import org.jasypt.encryption.pbe.config.SimpleStringPBEConfig
|
||||
import org.springframework.beans.factory.annotation.Value
|
||||
import org.springframework.context.annotation.Bean
|
||||
import org.springframework.context.annotation.Configuration
|
||||
|
||||
|
||||
@Configuration
|
||||
@EnableEncryptableProperties
|
||||
class JasyptConfigAES {
|
||||
@Value("\${jasypt.encryptor.key}")
|
||||
private val key: String? = null
|
||||
|
||||
@Bean("jasyptEncryptorAES")
|
||||
fun stringEncryptor(): StringEncryptor {
|
||||
val encryptor = PooledPBEStringEncryptor()
|
||||
val config = SimpleStringPBEConfig()
|
||||
|
||||
config.setPassword(key) // 암호화키
|
||||
config.setAlgorithm("PBEWITHHMACSHA512ANDAES_256") // 알고리즘
|
||||
config.setKeyObtentionIterations("1000") // 반복할 해싱 회수
|
||||
config.setPoolSize("1") // 인스턴스 pool
|
||||
config.setProviderName("SunJCE")
|
||||
config.setSaltGeneratorClassName("org.jasypt.salt.RandomSaltGenerator") // salt 생성 클래스
|
||||
config.setIvGeneratorClassName("org.jasypt.iv.RandomIvGenerator")
|
||||
config.setStringOutputType("base64") //인코딩 방식
|
||||
encryptor.setConfig(config)
|
||||
return encryptor
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
package org.home.linkkf.config.swagger
|
||||
|
||||
import io.swagger.v3.oas.models.Components
|
||||
import io.swagger.v3.oas.models.OpenAPI
|
||||
import io.swagger.v3.oas.models.info.Info
|
||||
import io.swagger.v3.oas.models.security.SecurityRequirement
|
||||
import io.swagger.v3.oas.models.security.SecurityScheme
|
||||
import org.springframework.context.annotation.Bean
|
||||
import org.springframework.context.annotation.Configuration
|
||||
|
||||
|
||||
@Configuration
|
||||
class SwaggerConfig {
|
||||
private val JWTSCHEMENAME = "jwtAuth"
|
||||
private val securityRequirement: SecurityRequirement? = SecurityRequirement().addList(JWTSCHEMENAME)
|
||||
|
||||
@Bean
|
||||
fun openAPI(): OpenAPI? {
|
||||
// return new OpenAPI()
|
||||
// .info(apiInfo())
|
||||
// .components(new Components().addSecuritySchemes("basicScheme", new SecurityScheme()
|
||||
// .type(SecurityScheme.Type.HTTP).scheme("basic")));
|
||||
// }
|
||||
|
||||
return OpenAPI()
|
||||
.info(apiInfo())
|
||||
.addSecurityItem(securityRequirement)
|
||||
.components(
|
||||
Components()
|
||||
.addSecuritySchemes(
|
||||
JWTSCHEMENAME, SecurityScheme()
|
||||
.name(JWTSCHEMENAME)
|
||||
.type(SecurityScheme.Type.HTTP)
|
||||
.scheme("bearer")
|
||||
.bearerFormat("JWT")
|
||||
.name("Authentication")
|
||||
)
|
||||
.addSecuritySchemes(
|
||||
"custom-header", SecurityScheme()
|
||||
.type(SecurityScheme.Type.APIKEY)
|
||||
.`in`(SecurityScheme.In.HEADER)
|
||||
.name("sabun")
|
||||
)
|
||||
)
|
||||
.addSecurityItem(SecurityRequirement().addList("custom-header"))
|
||||
}
|
||||
|
||||
|
||||
private fun apiInfo(): Info? {
|
||||
return Info()
|
||||
.title("소액계약거래")
|
||||
.description("소액계약거래 api")
|
||||
.version("1.0.0")
|
||||
}
|
||||
}
|
||||
21
src/main/kotlin/org/home/linkkf/controller/MainController.kt
Normal file
21
src/main/kotlin/org/home/linkkf/controller/MainController.kt
Normal file
@@ -0,0 +1,21 @@
|
||||
package org.home.linkkf.controller
|
||||
|
||||
import org.home.linkkf.service.UserService
|
||||
import org.springframework.beans.factory.annotation.Autowired
|
||||
import org.springframework.http.ResponseEntity
|
||||
import org.springframework.web.bind.annotation.RequestMapping
|
||||
import org.springframework.web.bind.annotation.RestController
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/api")
|
||||
class MainController {
|
||||
@Autowired
|
||||
lateinit var userService: UserService
|
||||
|
||||
@RequestMapping("/")
|
||||
fun main(): ResponseEntity<Any> {
|
||||
return ResponseEntity.ok(userService.getUser("bangae1"))
|
||||
}
|
||||
|
||||
fun add(a: Int, b: Int) = a + b
|
||||
}
|
||||
52
src/main/kotlin/org/home/linkkf/model/Adult.kt
Normal file
52
src/main/kotlin/org/home/linkkf/model/Adult.kt
Normal file
@@ -0,0 +1,52 @@
|
||||
package org.home.linkkf.model
|
||||
|
||||
import jakarta.persistence.Column
|
||||
import jakarta.persistence.Entity
|
||||
import jakarta.persistence.Id
|
||||
import jakarta.persistence.Table
|
||||
import jakarta.validation.constraints.Size
|
||||
import java.time.Instant
|
||||
|
||||
@Entity
|
||||
@Table(name = "adult", schema = "public")
|
||||
open class Adult {
|
||||
@Id
|
||||
@Column(name = "id", nullable = false)
|
||||
open var id: Int? = null
|
||||
|
||||
@Column(name = "duration")
|
||||
open var duration: Int? = null
|
||||
|
||||
@Column(name = "seek")
|
||||
open var seek: Int? = null
|
||||
|
||||
@Column(name = "ins_date")
|
||||
open var insDate: Instant? = null
|
||||
|
||||
@Size(max = 300)
|
||||
@Column(name = "title", length = 300)
|
||||
open var title: String? = null
|
||||
|
||||
@Size(max = 255)
|
||||
@Column(name = "file_type")
|
||||
open var fileType: String? = null
|
||||
|
||||
@Size(max = 255)
|
||||
@Column(name = "min")
|
||||
open var min: String? = null
|
||||
|
||||
@Size(max = 255)
|
||||
@Column(name = "platform")
|
||||
open var platform: String? = null
|
||||
|
||||
@Size(max = 255)
|
||||
@Column(name = "release_date")
|
||||
open var releaseDate: String? = null
|
||||
|
||||
@Size(max = 255)
|
||||
@Column(name = "thumb")
|
||||
open var thumb: String? = null
|
||||
|
||||
@Column(name = "url", length = Integer.MAX_VALUE)
|
||||
open var url: String? = null
|
||||
}
|
||||
31
src/main/kotlin/org/home/linkkf/model/AdultDuration.kt
Normal file
31
src/main/kotlin/org/home/linkkf/model/AdultDuration.kt
Normal file
@@ -0,0 +1,31 @@
|
||||
package org.home.linkkf.model
|
||||
|
||||
import jakarta.persistence.Column
|
||||
import jakarta.persistence.Entity
|
||||
import jakarta.persistence.Id
|
||||
import jakarta.persistence.Table
|
||||
import jakarta.validation.constraints.Size
|
||||
|
||||
@Entity
|
||||
@Table(name = "adult_duration", schema = "public")
|
||||
open class AdultDuration {
|
||||
@Id
|
||||
@Column(name = "id", nullable = false)
|
||||
open var id: Int? = null
|
||||
|
||||
@Column(name = "adult_id")
|
||||
open var adultId: Int? = null
|
||||
|
||||
@Column(name = "duration")
|
||||
open var duration: Int? = null
|
||||
|
||||
@Column(name = "seek")
|
||||
open var seek: Int? = null
|
||||
|
||||
@Column(name = "view")
|
||||
open var view: Boolean? = null
|
||||
|
||||
@Size(max = 20)
|
||||
@Column(name = "user_id", length = 20)
|
||||
open var userId: String? = null
|
||||
}
|
||||
19
src/main/kotlin/org/home/linkkf/model/AdultPlay.kt
Normal file
19
src/main/kotlin/org/home/linkkf/model/AdultPlay.kt
Normal file
@@ -0,0 +1,19 @@
|
||||
package org.home.linkkf.model
|
||||
|
||||
import jakarta.persistence.Column
|
||||
import jakarta.persistence.Entity
|
||||
import jakarta.persistence.Id
|
||||
import jakarta.persistence.Table
|
||||
import jakarta.validation.constraints.Size
|
||||
|
||||
@Entity
|
||||
@Table(name = "adult_play", schema = "public")
|
||||
open class AdultPlay {
|
||||
@Id
|
||||
@Size(max = 30)
|
||||
@Column(name = "user_id", nullable = false, length = 30)
|
||||
open var userId: String? = null
|
||||
|
||||
@Column(name = "adult_id")
|
||||
open var adultId: Int? = null
|
||||
}
|
||||
43
src/main/kotlin/org/home/linkkf/model/Anime.kt
Normal file
43
src/main/kotlin/org/home/linkkf/model/Anime.kt
Normal file
@@ -0,0 +1,43 @@
|
||||
package org.home.linkkf.model
|
||||
|
||||
import jakarta.persistence.Column
|
||||
import jakarta.persistence.Entity
|
||||
import jakarta.persistence.Id
|
||||
import jakarta.persistence.Table
|
||||
import jakarta.validation.constraints.Size
|
||||
import java.time.Instant
|
||||
|
||||
@Entity
|
||||
@Table(name = "anime", schema = "public")
|
||||
open class Anime {
|
||||
@Id
|
||||
@Column(name = "id", nullable = false)
|
||||
open var id: Int? = null
|
||||
|
||||
@Column(name = "content", length = Integer.MAX_VALUE)
|
||||
open var content: String? = null
|
||||
|
||||
@Size(max = 100)
|
||||
@Column(name = "eng_title", length = 100)
|
||||
open var engTitle: String? = null
|
||||
|
||||
@Column(name = "poster", length = Integer.MAX_VALUE)
|
||||
open var poster: String? = null
|
||||
|
||||
@Size(max = 100)
|
||||
@Column(name = "release_date", length = 100)
|
||||
open var releaseDate: String? = null
|
||||
|
||||
@Column(name = "server_url", length = Integer.MAX_VALUE)
|
||||
open var serverUrl: String? = null
|
||||
|
||||
@Column(name = "thumb", length = Integer.MAX_VALUE)
|
||||
open var thumb: String? = null
|
||||
|
||||
@Size(max = 100)
|
||||
@Column(name = "title", length = 100)
|
||||
open var title: String? = null
|
||||
|
||||
@Column(name = "upd_date")
|
||||
open var updDate: Instant? = null
|
||||
}
|
||||
38
src/main/kotlin/org/home/linkkf/model/AnimeCharacter.kt
Normal file
38
src/main/kotlin/org/home/linkkf/model/AnimeCharacter.kt
Normal file
@@ -0,0 +1,38 @@
|
||||
package org.home.linkkf.model
|
||||
|
||||
import jakarta.persistence.Column
|
||||
import jakarta.persistence.Entity
|
||||
import jakarta.persistence.Id
|
||||
import jakarta.persistence.Table
|
||||
import jakarta.validation.constraints.Size
|
||||
|
||||
@Entity
|
||||
@Table(name = "anime_character", schema = "public")
|
||||
open class AnimeCharacter {
|
||||
@Id
|
||||
@Column(name = "id", nullable = false)
|
||||
open var id: Int? = null
|
||||
|
||||
@Column(name = "anime_id")
|
||||
open var animeId: Int? = null
|
||||
|
||||
@Size(max = 50)
|
||||
@Column(name = "name_en", length = 50)
|
||||
open var nameEn: String? = null
|
||||
|
||||
@Size(max = 50)
|
||||
@Column(name = "name_jp", length = 50)
|
||||
open var nameJp: String? = null
|
||||
|
||||
@Size(max = 50)
|
||||
@Column(name = "name_kr", length = 50)
|
||||
open var nameKr: String? = null
|
||||
|
||||
@Size(max = 300)
|
||||
@Column(name = "image", length = 300)
|
||||
open var image: String? = null
|
||||
|
||||
@Size(max = 300)
|
||||
@Column(name = "thumb", length = 300)
|
||||
open var thumb: String? = null
|
||||
}
|
||||
22
src/main/kotlin/org/home/linkkf/model/AnimeCompany.kt
Normal file
22
src/main/kotlin/org/home/linkkf/model/AnimeCompany.kt
Normal file
@@ -0,0 +1,22 @@
|
||||
package org.home.linkkf.model
|
||||
|
||||
import jakarta.persistence.Column
|
||||
import jakarta.persistence.Entity
|
||||
import jakarta.persistence.Id
|
||||
import jakarta.persistence.Table
|
||||
import jakarta.validation.constraints.Size
|
||||
|
||||
@Entity
|
||||
@Table(name = "anime_company", schema = "public")
|
||||
open class AnimeCompany {
|
||||
@Id
|
||||
@Column(name = "id", nullable = false)
|
||||
open var id: Int? = null
|
||||
|
||||
@Column(name = "anime_id")
|
||||
open var animeId: Int? = null
|
||||
|
||||
@Size(max = 50)
|
||||
@Column(name = "name", length = 50)
|
||||
open var name: String? = null
|
||||
}
|
||||
28
src/main/kotlin/org/home/linkkf/model/AnimeDuration.kt
Normal file
28
src/main/kotlin/org/home/linkkf/model/AnimeDuration.kt
Normal file
@@ -0,0 +1,28 @@
|
||||
package org.home.linkkf.model
|
||||
|
||||
import jakarta.persistence.Column
|
||||
import jakarta.persistence.Entity
|
||||
import jakarta.persistence.Id
|
||||
import jakarta.persistence.Table
|
||||
import jakarta.validation.constraints.Size
|
||||
|
||||
@Entity
|
||||
@Table(name = "anime_duration", schema = "public")
|
||||
open class AnimeDuration {
|
||||
@Id
|
||||
@Column(name = "id", nullable = false)
|
||||
open var id: Int? = null
|
||||
|
||||
@Column(name = "duration")
|
||||
open var duration: Int? = null
|
||||
|
||||
@Column(name = "ep_id")
|
||||
open var epId: Int? = null
|
||||
|
||||
@Column(name = "seek")
|
||||
open var seek: Int? = null
|
||||
|
||||
@Size(max = 50)
|
||||
@Column(name = "user_id", length = 50)
|
||||
open var userId: String? = null
|
||||
}
|
||||
37
src/main/kotlin/org/home/linkkf/model/AnimeEpisode.kt
Normal file
37
src/main/kotlin/org/home/linkkf/model/AnimeEpisode.kt
Normal file
@@ -0,0 +1,37 @@
|
||||
package org.home.linkkf.model
|
||||
|
||||
import jakarta.persistence.*
|
||||
import jakarta.validation.constraints.NotNull
|
||||
import jakarta.validation.constraints.Size
|
||||
|
||||
@Entity
|
||||
@Table(name = "anime_episode", schema = "public")
|
||||
open class AnimeEpisode {
|
||||
@Id
|
||||
@Column(name = "id", nullable = false)
|
||||
open var id: Int? = null
|
||||
|
||||
@Size(max = 50)
|
||||
@Column(name = "air_date", length = 50)
|
||||
open var airDate: String? = null
|
||||
|
||||
@NotNull
|
||||
@ManyToOne(fetch = FetchType.LAZY, optional = false)
|
||||
@JoinColumn(name = "anime_id", nullable = false)
|
||||
open var anime: Anime? = null
|
||||
|
||||
@Size(max = 50)
|
||||
@Column(name = "ep", length = 50)
|
||||
open var ep: String? = null
|
||||
|
||||
@Size(max = 50)
|
||||
@Column(name = "ins_date", length = 50)
|
||||
open var insDate: String? = null
|
||||
|
||||
@Size(max = 200)
|
||||
@Column(name = "title", length = 200)
|
||||
open var title: String? = null
|
||||
|
||||
@Column(name = "url", length = Integer.MAX_VALUE)
|
||||
open var url: String? = null
|
||||
}
|
||||
22
src/main/kotlin/org/home/linkkf/model/AnimeGenre.kt
Normal file
22
src/main/kotlin/org/home/linkkf/model/AnimeGenre.kt
Normal file
@@ -0,0 +1,22 @@
|
||||
package org.home.linkkf.model
|
||||
|
||||
import jakarta.persistence.Column
|
||||
import jakarta.persistence.Entity
|
||||
import jakarta.persistence.Id
|
||||
import jakarta.persistence.Table
|
||||
import jakarta.validation.constraints.Size
|
||||
|
||||
@Entity
|
||||
@Table(name = "anime_genres", schema = "public")
|
||||
open class AnimeGenre {
|
||||
@Id
|
||||
@Column(name = "id", nullable = false)
|
||||
open var id: Int? = null
|
||||
|
||||
@Column(name = "anime_id")
|
||||
open var animeId: Int? = null
|
||||
|
||||
@Size(max = 50)
|
||||
@Column(name = "name", length = 50)
|
||||
open var name: String? = null
|
||||
}
|
||||
20
src/main/kotlin/org/home/linkkf/model/AnimeGroup.kt
Normal file
20
src/main/kotlin/org/home/linkkf/model/AnimeGroup.kt
Normal file
@@ -0,0 +1,20 @@
|
||||
package org.home.linkkf.model
|
||||
|
||||
import jakarta.persistence.*
|
||||
import jakarta.validation.constraints.Size
|
||||
|
||||
@Entity
|
||||
@Table(name = "anime_group", schema = "public")
|
||||
open class AnimeGroup {
|
||||
@Id
|
||||
@Column(name = "id", nullable = false)
|
||||
open var id: Int? = null
|
||||
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "anime_id")
|
||||
open var anime: Anime? = null
|
||||
|
||||
@Size(max = 50)
|
||||
@Column(name = "name", length = 50)
|
||||
open var name: String? = null
|
||||
}
|
||||
30
src/main/kotlin/org/home/linkkf/model/AnimePlay.kt
Normal file
30
src/main/kotlin/org/home/linkkf/model/AnimePlay.kt
Normal file
@@ -0,0 +1,30 @@
|
||||
package org.home.linkkf.model
|
||||
|
||||
import jakarta.persistence.Column
|
||||
import jakarta.persistence.Entity
|
||||
import jakarta.persistence.Id
|
||||
import jakarta.persistence.Table
|
||||
import jakarta.validation.constraints.NotNull
|
||||
import jakarta.validation.constraints.Size
|
||||
|
||||
@Entity
|
||||
@Table(name = "anime_play", schema = "public")
|
||||
open class AnimePlay {
|
||||
@Id
|
||||
@Column(name = "id", nullable = false)
|
||||
open var id: Int? = null
|
||||
|
||||
@NotNull
|
||||
@Column(name = "ep_id", nullable = false)
|
||||
open var epId: Int? = null
|
||||
|
||||
@Size(max = 50)
|
||||
@Column(name = "ins_date", length = 50)
|
||||
open var insDate: String? = null
|
||||
|
||||
@Column(name = "play_url", length = Integer.MAX_VALUE)
|
||||
open var playUrl: String? = null
|
||||
|
||||
@Column(name = "subtitle_url", length = Integer.MAX_VALUE)
|
||||
open var subtitleUrl: String? = null
|
||||
}
|
||||
23
src/main/kotlin/org/home/linkkf/model/AnimeProduce.kt
Normal file
23
src/main/kotlin/org/home/linkkf/model/AnimeProduce.kt
Normal file
@@ -0,0 +1,23 @@
|
||||
package org.home.linkkf.model
|
||||
|
||||
import jakarta.persistence.*
|
||||
import jakarta.validation.constraints.Size
|
||||
import org.hibernate.annotations.OnDelete
|
||||
import org.hibernate.annotations.OnDeleteAction
|
||||
|
||||
@Entity
|
||||
@Table(name = "anime_produce", schema = "public")
|
||||
open class AnimeProduce {
|
||||
@Id
|
||||
@Column(name = "id", nullable = false)
|
||||
open var id: Int? = null
|
||||
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@OnDelete(action = OnDeleteAction.CASCADE)
|
||||
@JoinColumn(name = "anime_id")
|
||||
open var anime: Anime? = null
|
||||
|
||||
@Size(max = 10)
|
||||
@Column(name = "year", length = 10)
|
||||
open var year: String? = null
|
||||
}
|
||||
23
src/main/kotlin/org/home/linkkf/model/AnimeSubtitle.kt
Normal file
23
src/main/kotlin/org/home/linkkf/model/AnimeSubtitle.kt
Normal file
@@ -0,0 +1,23 @@
|
||||
package org.home.linkkf.model
|
||||
|
||||
import jakarta.persistence.*
|
||||
import jakarta.validation.constraints.Size
|
||||
import org.hibernate.annotations.OnDelete
|
||||
import org.hibernate.annotations.OnDeleteAction
|
||||
|
||||
@Entity
|
||||
@Table(name = "anime_subtitle", schema = "public")
|
||||
open class AnimeSubtitle {
|
||||
@Id
|
||||
@Column(name = "id", nullable = false)
|
||||
open var id: Int? = null
|
||||
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@OnDelete(action = OnDeleteAction.CASCADE)
|
||||
@JoinColumn(name = "ep_id")
|
||||
open var ep: AnimeEpisode? = null
|
||||
|
||||
@Size(max = 300)
|
||||
@Column(name = "subtitle", length = 300)
|
||||
open var subtitle: String? = null
|
||||
}
|
||||
49
src/main/kotlin/org/home/linkkf/model/Book.kt
Normal file
49
src/main/kotlin/org/home/linkkf/model/Book.kt
Normal file
@@ -0,0 +1,49 @@
|
||||
package org.home.linkkf.model
|
||||
|
||||
import jakarta.persistence.Column
|
||||
import jakarta.persistence.Entity
|
||||
import jakarta.persistence.Id
|
||||
import jakarta.persistence.Table
|
||||
import jakarta.validation.constraints.Size
|
||||
import java.time.Instant
|
||||
|
||||
@Entity
|
||||
@Table(name = "book", schema = "public")
|
||||
open class Book {
|
||||
@Id
|
||||
@Column(name = "id", nullable = false)
|
||||
open var id: Int? = null
|
||||
|
||||
@Column(name = "complete")
|
||||
open var complete: Boolean? = null
|
||||
|
||||
@Column(name = "ins_date")
|
||||
open var insDate: Instant? = null
|
||||
|
||||
@Column(name = "overview", length = Integer.MAX_VALUE)
|
||||
open var overview: String? = null
|
||||
|
||||
@Size(max = 30)
|
||||
@Column(name = "platform", length = 30)
|
||||
open var platform: String? = null
|
||||
|
||||
@Size(max = 10)
|
||||
@Column(name = "scope", length = 10)
|
||||
open var scope: String? = null
|
||||
|
||||
@Size(max = 300)
|
||||
@Column(name = "thumb", length = 300)
|
||||
open var thumb: String? = null
|
||||
|
||||
@Size(max = 100)
|
||||
@Column(name = "title", length = 100)
|
||||
open var title: String? = null
|
||||
|
||||
@Size(max = 400)
|
||||
@Column(name = "url", length = 400)
|
||||
open var url: String? = null
|
||||
|
||||
@Size(max = 30)
|
||||
@Column(name = "writer", length = 30)
|
||||
open var writer: String? = null
|
||||
}
|
||||
17
src/main/kotlin/org/home/linkkf/model/BookContent.kt
Normal file
17
src/main/kotlin/org/home/linkkf/model/BookContent.kt
Normal file
@@ -0,0 +1,17 @@
|
||||
package org.home.linkkf.model
|
||||
|
||||
import jakarta.persistence.Column
|
||||
import jakarta.persistence.Entity
|
||||
import jakarta.persistence.Id
|
||||
import jakarta.persistence.Table
|
||||
|
||||
@Entity
|
||||
@Table(name = "book_content", schema = "public")
|
||||
open class BookContent {
|
||||
@Id
|
||||
@Column(name = "ep_id", nullable = false)
|
||||
open var id: Int? = null
|
||||
|
||||
@Column(name = "content", length = Integer.MAX_VALUE)
|
||||
open var content: String? = null
|
||||
}
|
||||
26
src/main/kotlin/org/home/linkkf/model/BookDuration.kt
Normal file
26
src/main/kotlin/org/home/linkkf/model/BookDuration.kt
Normal file
@@ -0,0 +1,26 @@
|
||||
package org.home.linkkf.model
|
||||
|
||||
import jakarta.persistence.Column
|
||||
import jakarta.persistence.EmbeddedId
|
||||
import jakarta.persistence.Entity
|
||||
import jakarta.persistence.Table
|
||||
import java.time.Instant
|
||||
|
||||
@Entity
|
||||
@Table(name = "book_duration", schema = "public")
|
||||
open class BookDuration {
|
||||
@EmbeddedId
|
||||
open var id: BookDurationId? = null
|
||||
|
||||
@Column(name = "book_id")
|
||||
open var bookId: Int? = null
|
||||
|
||||
@Column(name = "line")
|
||||
open var line: Int? = null
|
||||
|
||||
@Column(name = "view")
|
||||
open var view: Boolean? = null
|
||||
|
||||
@Column(name = "ins_date")
|
||||
open var insDate: Instant? = null
|
||||
}
|
||||
35
src/main/kotlin/org/home/linkkf/model/BookDurationId.kt
Normal file
35
src/main/kotlin/org/home/linkkf/model/BookDurationId.kt
Normal file
@@ -0,0 +1,35 @@
|
||||
package org.home.linkkf.model
|
||||
|
||||
import jakarta.persistence.Column
|
||||
import jakarta.persistence.Embeddable
|
||||
import jakarta.validation.constraints.NotNull
|
||||
import jakarta.validation.constraints.Size
|
||||
import org.hibernate.Hibernate
|
||||
import java.io.Serializable
|
||||
import java.util.*
|
||||
|
||||
@Embeddable
|
||||
open class BookDurationId : Serializable {
|
||||
@NotNull
|
||||
@Column(name = "ep_id", nullable = false)
|
||||
open var epId: Int? = null
|
||||
|
||||
@Size(max = 20)
|
||||
@NotNull
|
||||
@Column(name = "user_id", nullable = false, length = 20)
|
||||
open var userId: String? = null
|
||||
override fun hashCode(): Int = Objects.hash(epId, userId)
|
||||
override fun equals(other: Any?): Boolean {
|
||||
if (this === other) return true
|
||||
if (other == null || Hibernate.getClass(this) != Hibernate.getClass(other)) return false
|
||||
|
||||
other as BookDurationId
|
||||
|
||||
return epId == other.epId &&
|
||||
userId == other.userId
|
||||
}
|
||||
|
||||
companion object {
|
||||
private const val serialVersionUID = 0L
|
||||
}
|
||||
}
|
||||
29
src/main/kotlin/org/home/linkkf/model/BookEpisode.kt
Normal file
29
src/main/kotlin/org/home/linkkf/model/BookEpisode.kt
Normal file
@@ -0,0 +1,29 @@
|
||||
package org.home.linkkf.model
|
||||
|
||||
import jakarta.persistence.Column
|
||||
import jakarta.persistence.Entity
|
||||
import jakarta.persistence.Id
|
||||
import jakarta.persistence.Table
|
||||
import jakarta.validation.constraints.Size
|
||||
import java.time.Instant
|
||||
|
||||
@Entity
|
||||
@Table(name = "book_episode", schema = "public")
|
||||
open class BookEpisode {
|
||||
@Id
|
||||
@Column(name = "id", nullable = false)
|
||||
open var id: Int? = null
|
||||
|
||||
@Column(name = "book_id")
|
||||
open var bookId: Int? = null
|
||||
|
||||
@Column(name = "ep", length = Integer.MAX_VALUE)
|
||||
open var ep: String? = null
|
||||
|
||||
@Column(name = "ins_date")
|
||||
open var insDate: Instant? = null
|
||||
|
||||
@Size(max = 1)
|
||||
@Column(name = "kind", length = 1)
|
||||
open var kind: String? = null
|
||||
}
|
||||
23
src/main/kotlin/org/home/linkkf/model/BookGenre.kt
Normal file
23
src/main/kotlin/org/home/linkkf/model/BookGenre.kt
Normal file
@@ -0,0 +1,23 @@
|
||||
package org.home.linkkf.model
|
||||
|
||||
import jakarta.persistence.*
|
||||
import jakarta.validation.constraints.Size
|
||||
import org.hibernate.annotations.OnDelete
|
||||
import org.hibernate.annotations.OnDeleteAction
|
||||
|
||||
@Entity
|
||||
@Table(name = "book_genres", schema = "public")
|
||||
open class BookGenre {
|
||||
@Id
|
||||
@Column(name = "id", nullable = false)
|
||||
open var id: Int? = null
|
||||
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@OnDelete(action = OnDeleteAction.CASCADE)
|
||||
@JoinColumn(name = "book_id")
|
||||
open var book: Book? = null
|
||||
|
||||
@Size(max = 20)
|
||||
@Column(name = "name", length = 20)
|
||||
open var name: String? = null
|
||||
}
|
||||
31
src/main/kotlin/org/home/linkkf/model/BookImage.kt
Normal file
31
src/main/kotlin/org/home/linkkf/model/BookImage.kt
Normal file
@@ -0,0 +1,31 @@
|
||||
package org.home.linkkf.model
|
||||
|
||||
import jakarta.persistence.*
|
||||
import jakarta.validation.constraints.NotNull
|
||||
import jakarta.validation.constraints.Size
|
||||
import org.hibernate.annotations.OnDelete
|
||||
import org.hibernate.annotations.OnDeleteAction
|
||||
|
||||
@Entity
|
||||
@Table(name = "book_image", schema = "public")
|
||||
open class BookImage {
|
||||
@Id
|
||||
@Column(name = "id", nullable = false)
|
||||
open var id: Int? = null
|
||||
|
||||
@NotNull
|
||||
@ManyToOne(fetch = FetchType.LAZY, optional = false)
|
||||
@OnDelete(action = OnDeleteAction.CASCADE)
|
||||
@JoinColumn(name = "ep_id", nullable = false)
|
||||
open var ep: BookEpisode? = null
|
||||
|
||||
@Size(max = 20)
|
||||
@NotNull
|
||||
@Column(name = "filename", nullable = false, length = 20)
|
||||
open var filename: String? = null
|
||||
|
||||
@Size(max = 150)
|
||||
@NotNull
|
||||
@Column(name = "img_path", nullable = false, length = 150)
|
||||
open var imgPath: String? = null
|
||||
}
|
||||
19
src/main/kotlin/org/home/linkkf/model/Craw.kt
Normal file
19
src/main/kotlin/org/home/linkkf/model/Craw.kt
Normal file
@@ -0,0 +1,19 @@
|
||||
package org.home.linkkf.model
|
||||
|
||||
import jakarta.persistence.Column
|
||||
import jakarta.persistence.Entity
|
||||
import jakarta.persistence.Id
|
||||
import jakarta.persistence.Table
|
||||
import jakarta.validation.constraints.Size
|
||||
|
||||
@Entity
|
||||
@Table(name = "craw", schema = "public")
|
||||
open class Craw {
|
||||
@Id
|
||||
@Size(max = 10)
|
||||
@Column(name = "name", nullable = false, length = 10)
|
||||
open var name: String? = null
|
||||
|
||||
@Column(name = "yn")
|
||||
open var yn: Boolean? = null
|
||||
}
|
||||
40
src/main/kotlin/org/home/linkkf/model/Drama.kt
Normal file
40
src/main/kotlin/org/home/linkkf/model/Drama.kt
Normal file
@@ -0,0 +1,40 @@
|
||||
package org.home.linkkf.model
|
||||
|
||||
import jakarta.persistence.Column
|
||||
import jakarta.persistence.Entity
|
||||
import jakarta.persistence.Id
|
||||
import jakarta.persistence.Table
|
||||
import jakarta.validation.constraints.Size
|
||||
import java.time.Instant
|
||||
|
||||
@Entity
|
||||
@Table(name = "drama", schema = "public")
|
||||
open class Drama {
|
||||
@Id
|
||||
@Column(name = "id", nullable = false)
|
||||
open var id: Int? = null
|
||||
|
||||
@Column(name = "view")
|
||||
open var view: Boolean? = null
|
||||
|
||||
@Column(name = "ins_date")
|
||||
open var insDate: Instant? = null
|
||||
|
||||
@Column(name = "release_date")
|
||||
open var releaseDate: Instant? = null
|
||||
|
||||
@Size(max = 100)
|
||||
@Column(name = "cover", length = 100)
|
||||
open var cover: String? = null
|
||||
|
||||
@Size(max = 100)
|
||||
@Column(name = "title", length = 100)
|
||||
open var title: String? = null
|
||||
|
||||
@Size(max = 100)
|
||||
@Column(name = "url", length = 100)
|
||||
open var url: String? = null
|
||||
|
||||
@Column(name = "overview", length = Integer.MAX_VALUE)
|
||||
open var overview: String? = null
|
||||
}
|
||||
28
src/main/kotlin/org/home/linkkf/model/DramaCast.kt
Normal file
28
src/main/kotlin/org/home/linkkf/model/DramaCast.kt
Normal file
@@ -0,0 +1,28 @@
|
||||
package org.home.linkkf.model
|
||||
|
||||
import jakarta.persistence.*
|
||||
import jakarta.validation.constraints.Size
|
||||
|
||||
@Entity
|
||||
@Table(name = "drama_cast", schema = "public")
|
||||
open class DramaCast {
|
||||
@Id
|
||||
@Column(name = "id", nullable = false)
|
||||
open var id: Int? = null
|
||||
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "drama_id")
|
||||
open var drama: Drama? = null
|
||||
|
||||
@Size(max = 50)
|
||||
@Column(name = "name", length = 50)
|
||||
open var name: String? = null
|
||||
|
||||
@Size(max = 50)
|
||||
@Column(name = "\"real\"", length = 50)
|
||||
open var real: String? = null
|
||||
|
||||
@Size(max = 100)
|
||||
@Column(name = "thumb", length = 100)
|
||||
open var thumb: String? = null
|
||||
}
|
||||
32
src/main/kotlin/org/home/linkkf/model/DramaDuration.kt
Normal file
32
src/main/kotlin/org/home/linkkf/model/DramaDuration.kt
Normal file
@@ -0,0 +1,32 @@
|
||||
package org.home.linkkf.model
|
||||
|
||||
import jakarta.persistence.Column
|
||||
import jakarta.persistence.Entity
|
||||
import jakarta.persistence.Id
|
||||
import jakarta.persistence.Table
|
||||
import jakarta.validation.constraints.Size
|
||||
import java.time.Instant
|
||||
|
||||
@Entity
|
||||
@Table(name = "drama_duration", schema = "public")
|
||||
open class DramaDuration {
|
||||
@Id
|
||||
@Column(name = "id", nullable = false)
|
||||
open var id: Int? = null
|
||||
|
||||
@Column(name = "duration")
|
||||
open var duration: Int? = null
|
||||
|
||||
@Column(name = "ep_id")
|
||||
open var epId: Int? = null
|
||||
|
||||
@Column(name = "seek")
|
||||
open var seek: Int? = null
|
||||
|
||||
@Column(name = "ins_date")
|
||||
open var insDate: Instant? = null
|
||||
|
||||
@Size(max = 255)
|
||||
@Column(name = "user_id")
|
||||
open var userId: String? = null
|
||||
}
|
||||
32
src/main/kotlin/org/home/linkkf/model/DramaEpisode.kt
Normal file
32
src/main/kotlin/org/home/linkkf/model/DramaEpisode.kt
Normal file
@@ -0,0 +1,32 @@
|
||||
package org.home.linkkf.model
|
||||
|
||||
import jakarta.persistence.*
|
||||
import jakarta.validation.constraints.Size
|
||||
import java.time.Instant
|
||||
|
||||
@Entity
|
||||
@Table(name = "drama_episode", schema = "public")
|
||||
open class DramaEpisode {
|
||||
@Id
|
||||
@Column(name = "id", nullable = false)
|
||||
open var id: Int? = null
|
||||
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "drama_id")
|
||||
open var drama: Drama? = null
|
||||
|
||||
@Column(name = "release_date")
|
||||
open var releaseDate: Instant? = null
|
||||
|
||||
@Size(max = 100)
|
||||
@Column(name = "referer", length = 100)
|
||||
open var referer: String? = null
|
||||
|
||||
@Size(max = 100)
|
||||
@Column(name = "thumb", length = 100)
|
||||
open var thumb: String? = null
|
||||
|
||||
@Size(max = 100)
|
||||
@Column(name = "title", length = 100)
|
||||
open var title: String? = null
|
||||
}
|
||||
30
src/main/kotlin/org/home/linkkf/model/Favorite.kt
Normal file
30
src/main/kotlin/org/home/linkkf/model/Favorite.kt
Normal file
@@ -0,0 +1,30 @@
|
||||
package org.home.linkkf.model
|
||||
|
||||
import jakarta.persistence.Column
|
||||
import jakarta.persistence.Entity
|
||||
import jakarta.persistence.Id
|
||||
import jakarta.persistence.Table
|
||||
import jakarta.validation.constraints.Size
|
||||
import java.time.Instant
|
||||
|
||||
@Entity
|
||||
@Table(name = "favorite", schema = "public")
|
||||
open class Favorite {
|
||||
@Id
|
||||
@Column(name = "id", nullable = false)
|
||||
open var id: Int? = null
|
||||
|
||||
@Column(name = "favorite_id")
|
||||
open var favoriteId: Int? = null
|
||||
|
||||
@Size(max = 4)
|
||||
@Column(name = "kind", length = 4)
|
||||
open var kind: String? = null
|
||||
|
||||
@Column(name = "ins_date")
|
||||
open var insDate: Instant? = null
|
||||
|
||||
@Size(max = 20)
|
||||
@Column(name = "user_id", length = 20)
|
||||
open var userId: String? = null
|
||||
}
|
||||
77
src/main/kotlin/org/home/linkkf/model/Movie.kt
Normal file
77
src/main/kotlin/org/home/linkkf/model/Movie.kt
Normal file
@@ -0,0 +1,77 @@
|
||||
package org.home.linkkf.model
|
||||
|
||||
import jakarta.persistence.Column
|
||||
import jakarta.persistence.Entity
|
||||
import jakarta.persistence.Id
|
||||
import jakarta.persistence.Table
|
||||
import jakarta.validation.constraints.Size
|
||||
import java.time.Instant
|
||||
|
||||
@Entity
|
||||
@Table(name = "movie", schema = "public")
|
||||
open class Movie {
|
||||
@Id
|
||||
@Column(name = "id", nullable = false)
|
||||
open var id: Int? = null
|
||||
|
||||
@Size(max = 300)
|
||||
@Column(name = "backdrop_path", length = 300)
|
||||
open var backdropPath: String? = null
|
||||
|
||||
@Column(name = "duration")
|
||||
open var duration: Int? = null
|
||||
|
||||
@Size(max = 10)
|
||||
@Column(name = "fileext", length = 10)
|
||||
open var fileext: String? = null
|
||||
|
||||
@Size(max = 100)
|
||||
@Column(name = "filename", length = 100)
|
||||
open var filename: String? = null
|
||||
|
||||
@Size(max = 300)
|
||||
@Column(name = "filepath", length = 300)
|
||||
open var filepath: String? = null
|
||||
|
||||
@Column(name = "ins_date")
|
||||
open var insDate: Instant? = null
|
||||
|
||||
@Size(max = 10)
|
||||
@Column(name = "original_language", length = 10)
|
||||
open var originalLanguage: String? = null
|
||||
|
||||
@Column(name = "overview", length = Integer.MAX_VALUE)
|
||||
open var overview: String? = null
|
||||
|
||||
@Column(name = "popularity")
|
||||
open var popularity: Float? = null
|
||||
|
||||
@Size(max = 300)
|
||||
@Column(name = "poster_path", length = 300)
|
||||
open var posterPath: String? = null
|
||||
|
||||
@Size(max = 20)
|
||||
@Column(name = "release_date", length = 20)
|
||||
open var releaseDate: String? = null
|
||||
|
||||
@Size(max = 10)
|
||||
@Column(name = "runtime", length = 10)
|
||||
open var runtime: String? = null
|
||||
|
||||
@Column(name = "seek")
|
||||
open var seek: Int? = null
|
||||
|
||||
@Size(max = 300)
|
||||
@Column(name = "subtitle", length = 300)
|
||||
open var subtitle: String? = null
|
||||
|
||||
@Column(name = "tagline", length = Integer.MAX_VALUE)
|
||||
open var tagline: String? = null
|
||||
|
||||
@Size(max = 100)
|
||||
@Column(name = "title", length = 100)
|
||||
open var title: String? = null
|
||||
|
||||
@Column(name = "vote_average")
|
||||
open var voteAverage: Float? = null
|
||||
}
|
||||
28
src/main/kotlin/org/home/linkkf/model/MovieDuration.kt
Normal file
28
src/main/kotlin/org/home/linkkf/model/MovieDuration.kt
Normal file
@@ -0,0 +1,28 @@
|
||||
package org.home.linkkf.model
|
||||
|
||||
import jakarta.persistence.Column
|
||||
import jakarta.persistence.Entity
|
||||
import jakarta.persistence.Id
|
||||
import jakarta.persistence.Table
|
||||
import jakarta.validation.constraints.Size
|
||||
|
||||
@Entity
|
||||
@Table(name = "movie_duration", schema = "public")
|
||||
open class MovieDuration {
|
||||
@Id
|
||||
@Column(name = "id", nullable = false)
|
||||
open var id: Int? = null
|
||||
|
||||
@Column(name = "duration")
|
||||
open var duration: Int? = null
|
||||
|
||||
@Column(name = "movie_id")
|
||||
open var movieId: Int? = null
|
||||
|
||||
@Column(name = "seek")
|
||||
open var seek: Int? = null
|
||||
|
||||
@Size(max = 20)
|
||||
@Column(name = "user_id", length = 20)
|
||||
open var userId: String? = null
|
||||
}
|
||||
22
src/main/kotlin/org/home/linkkf/model/MovieGenre.kt
Normal file
22
src/main/kotlin/org/home/linkkf/model/MovieGenre.kt
Normal file
@@ -0,0 +1,22 @@
|
||||
package org.home.linkkf.model
|
||||
|
||||
import jakarta.persistence.Column
|
||||
import jakarta.persistence.Entity
|
||||
import jakarta.persistence.Id
|
||||
import jakarta.persistence.Table
|
||||
import jakarta.validation.constraints.Size
|
||||
|
||||
@Entity
|
||||
@Table(name = "movie_genres", schema = "public")
|
||||
open class MovieGenre {
|
||||
@Id
|
||||
@Column(name = "gen_id", nullable = false)
|
||||
open var id: Int? = null
|
||||
|
||||
@Column(name = "id")
|
||||
open var id1: Int? = null
|
||||
|
||||
@Size(max = 50)
|
||||
@Column(name = "name", length = 50)
|
||||
open var name: String? = null
|
||||
}
|
||||
30
src/main/kotlin/org/home/linkkf/model/Recent.kt
Normal file
30
src/main/kotlin/org/home/linkkf/model/Recent.kt
Normal file
@@ -0,0 +1,30 @@
|
||||
package org.home.linkkf.model
|
||||
|
||||
import jakarta.persistence.Column
|
||||
import jakarta.persistence.Entity
|
||||
import jakarta.persistence.Id
|
||||
import jakarta.persistence.Table
|
||||
import jakarta.validation.constraints.Size
|
||||
import java.time.Instant
|
||||
|
||||
@Entity
|
||||
@Table(name = "recent", schema = "public")
|
||||
open class Recent {
|
||||
@Id
|
||||
@Column(name = "id", nullable = false)
|
||||
open var id: Int? = null
|
||||
|
||||
@Column(name = "recent_id")
|
||||
open var recentId: Int? = null
|
||||
|
||||
@Size(max = 4)
|
||||
@Column(name = "kind", length = 4)
|
||||
open var kind: String? = null
|
||||
|
||||
@Size(max = 20)
|
||||
@Column(name = "user_id", length = 20)
|
||||
open var userId: String? = null
|
||||
|
||||
@Column(name = "ins_date")
|
||||
open var insDate: Instant? = null
|
||||
}
|
||||
19
src/main/kotlin/org/home/linkkf/model/Sequence.kt
Normal file
19
src/main/kotlin/org/home/linkkf/model/Sequence.kt
Normal file
@@ -0,0 +1,19 @@
|
||||
package org.home.linkkf.model
|
||||
|
||||
import jakarta.persistence.Column
|
||||
import jakarta.persistence.Entity
|
||||
import jakarta.persistence.Id
|
||||
import jakarta.persistence.Table
|
||||
import jakarta.validation.constraints.Size
|
||||
|
||||
@Entity
|
||||
@Table(name = "sequence", schema = "public")
|
||||
open class Sequence {
|
||||
@Id
|
||||
@Size(max = 255)
|
||||
@Column(name = "sequence_name", nullable = false)
|
||||
open var sequenceName: String? = null
|
||||
|
||||
@Column(name = "next_val")
|
||||
open var nextVal: Long? = null
|
||||
}
|
||||
20
src/main/kotlin/org/home/linkkf/model/Url.kt
Normal file
20
src/main/kotlin/org/home/linkkf/model/Url.kt
Normal file
@@ -0,0 +1,20 @@
|
||||
package org.home.linkkf.model
|
||||
|
||||
import jakarta.persistence.Column
|
||||
import jakarta.persistence.Entity
|
||||
import jakarta.persistence.Id
|
||||
import jakarta.persistence.Table
|
||||
import jakarta.validation.constraints.Size
|
||||
|
||||
@Entity
|
||||
@Table(name = "urls", schema = "public")
|
||||
open class Url {
|
||||
@Id
|
||||
@Size(max = 30)
|
||||
@Column(name = "name", nullable = false, length = 30)
|
||||
open var name: String? = null
|
||||
|
||||
@Size(max = 100)
|
||||
@Column(name = "url", length = 100)
|
||||
open var url: String? = null
|
||||
}
|
||||
47
src/main/kotlin/org/home/linkkf/model/User.kt
Normal file
47
src/main/kotlin/org/home/linkkf/model/User.kt
Normal file
@@ -0,0 +1,47 @@
|
||||
package org.home.linkkf.model
|
||||
|
||||
import jakarta.persistence.Column
|
||||
import jakarta.persistence.Entity
|
||||
import jakarta.persistence.Id
|
||||
import jakarta.persistence.Table
|
||||
import jakarta.validation.constraints.NotNull
|
||||
import jakarta.validation.constraints.Size
|
||||
|
||||
@Entity
|
||||
@Table(name = "users", schema = "public")
|
||||
open class User {
|
||||
@Id
|
||||
@Size(max = 20)
|
||||
@Column(name = "user_id", nullable = false, length = 20)
|
||||
open var userId: String? = null
|
||||
|
||||
@Size(max = 40)
|
||||
@NotNull
|
||||
@Column(name = "email", nullable = false, length = 40)
|
||||
open var email: String? = null
|
||||
|
||||
@Size(max = 50)
|
||||
@Column(name = "expire_date", length = 50)
|
||||
open var expireDate: String? = null
|
||||
|
||||
@Size(max = 200)
|
||||
@NotNull
|
||||
@Column(name = "password", nullable = false, length = 200)
|
||||
open var password: String? = null
|
||||
|
||||
@Column(name = "refresh_token", length = Integer.MAX_VALUE)
|
||||
open var refreshToken: String? = null
|
||||
|
||||
@Size(max = 10)
|
||||
@NotNull
|
||||
@Column(name = "role", nullable = false, length = 10)
|
||||
open var role: String? = null
|
||||
|
||||
@Column(name = "token", length = Integer.MAX_VALUE)
|
||||
open var token: String? = null
|
||||
|
||||
@Size(max = 20)
|
||||
@NotNull
|
||||
@Column(name = "user_name", nullable = false, length = 20)
|
||||
open var userName: String? = null
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
package org.home.linkkf.repository
|
||||
|
||||
import org.home.linkkf.model.Anime
|
||||
import org.springframework.data.jpa.repository.JpaRepository
|
||||
|
||||
interface AnimeRepository : JpaRepository<Anime, Int> {
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
package org.home.linkkf.repository
|
||||
|
||||
import org.home.linkkf.model.User
|
||||
import org.springframework.data.jpa.repository.JpaRepository
|
||||
|
||||
interface UserRepository : JpaRepository<User, String> {
|
||||
}
|
||||
7
src/main/kotlin/org/home/linkkf/service/UserService.kt
Normal file
7
src/main/kotlin/org/home/linkkf/service/UserService.kt
Normal file
@@ -0,0 +1,7 @@
|
||||
package org.home.linkkf.service
|
||||
|
||||
import org.home.linkkf.model.User
|
||||
|
||||
interface UserService {
|
||||
fun getUser(id: String): User
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package org.home.linkkf.service.impl
|
||||
|
||||
import org.home.linkkf.model.User
|
||||
import org.home.linkkf.repository.UserRepository
|
||||
import org.home.linkkf.service.UserService
|
||||
import org.springframework.beans.factory.annotation.Autowired
|
||||
import org.springframework.stereotype.Service
|
||||
|
||||
@Service
|
||||
class UserServiceImpl : UserService {
|
||||
@Autowired
|
||||
private lateinit var userRepository: UserRepository
|
||||
|
||||
override fun getUser(id : String): User {
|
||||
return userRepository.findById(id).get()
|
||||
}
|
||||
}
|
||||
43
src/main/resources/application-prod.yml
Normal file
43
src/main/resources/application-prod.yml
Normal file
@@ -0,0 +1,43 @@
|
||||
server:
|
||||
port: 8080
|
||||
servlet:
|
||||
encoding:
|
||||
charset: UTF-8
|
||||
enabled: true
|
||||
force: true
|
||||
jasypt:
|
||||
encryptor:
|
||||
key: 2025!
|
||||
spring:
|
||||
application:
|
||||
name: sample
|
||||
devtools:
|
||||
livereload:
|
||||
enabled: true
|
||||
remote:
|
||||
restart:
|
||||
enabled: false
|
||||
jpa:
|
||||
show-sql: false
|
||||
hibernate:
|
||||
ddl-auto: validate
|
||||
naming:
|
||||
physical-strategy: org.hibernate.boot.model.naming.CamelCaseToUnderscoresNamingStrategy
|
||||
open-in-view: false
|
||||
generate-ddl: true
|
||||
mvc:
|
||||
pathmatch:
|
||||
matching-strategy: ant_path_matcher
|
||||
datasource:
|
||||
hikari:
|
||||
username: bangae1
|
||||
password: fpdlwms1
|
||||
connection-timeout: 20000
|
||||
maximum-pool-size: 30
|
||||
data-source-properties:
|
||||
cachePrepStmts: true
|
||||
prepStmtCacheSize: 200
|
||||
prepStmtCacheSqlLimit: 2048
|
||||
useServerPrepStmts: true
|
||||
url: jdbc:log4jdbc:postgresql://hmsn.ink:35432/linkkf
|
||||
driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
|
||||
3
src/main/resources/application.yml
Normal file
3
src/main/resources/application.yml
Normal file
@@ -0,0 +1,3 @@
|
||||
spring:
|
||||
profiles:
|
||||
active: prod
|
||||
3
src/main/resources/logback-prod.properties
Normal file
3
src/main/resources/logback-prod.properties
Normal file
@@ -0,0 +1,3 @@
|
||||
log.config.path=./logs/
|
||||
log.config.filename=api_log
|
||||
log.level=warn
|
||||
144
src/main/resources/logback-spring.xml
Normal file
144
src/main/resources/logback-spring.xml
Normal file
@@ -0,0 +1,144 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- 60초마다 설정 파일의 변경을 확인 하여 변경시 갱신 -->
|
||||
<configuration scan="true" scanPeriod="60 seconds">
|
||||
<!--springProfile 태그를 사용하면 logback 설정파일에서 복수개의 프로파일을 설정할 수 있다.-->
|
||||
<springProfile name="prod">
|
||||
<property resource="logback-prod.properties"/>
|
||||
</springProfile>
|
||||
<springProfile name="dev">
|
||||
<property resource="logback-dev.properties"/>
|
||||
</springProfile>
|
||||
<!--Environment 내의 프로퍼티들을 개별적으로 설정할 수도 있다.-->
|
||||
<!-- <springProperty scope="context" name="LOG_LEVEL" source="logging.level.root"/> -->
|
||||
|
||||
<!-- log level -->
|
||||
<property name="LOG_LEVEL" value="${log.level}"/>
|
||||
<!-- log file path -->
|
||||
<property name="LOG_PATH" value="${log.config.path}"/>
|
||||
<!-- log file name -->
|
||||
<property name="LOG_FILE_NAME" value="${log.config.filename}"/>
|
||||
<!-- err log file name -->
|
||||
<property name="ERR_LOG_FILE_NAME" value="err_log"/>
|
||||
<!-- pattern -->
|
||||
<property name="LOG_PATTERN" value="%-5level %d{yy-MM-dd HH:mm:ss}[%thread] [%logger{0}:%line] - %msg%n"/>
|
||||
|
||||
<!-- Console Appender -->
|
||||
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<filter class="org.home.linkkf.config.filter.LoggingFilter"/>
|
||||
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
|
||||
<pattern>${LOG_PATTERN}</pattern>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<!-- File Appender -->
|
||||
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<filter class="org.home.linkkf.config.filter.LoggingFilter"/>
|
||||
<!-- 파일경로 설정 -->
|
||||
<file>${LOG_PATH}/${LOG_FILE_NAME}.log</file>
|
||||
|
||||
<!-- 출력패턴 설정-->
|
||||
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
|
||||
<pattern>${LOG_PATTERN}</pattern>
|
||||
</encoder>
|
||||
|
||||
<!-- Rolling 정책 -->
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||
<!-- .gz,.zip 등을 넣으면 자동 일자별 로그파일 압축 -->
|
||||
<fileNamePattern>${LOG_PATH}/${LOG_FILE_NAME}.%d{yyyy-MM-dd}_%i.log</fileNamePattern>
|
||||
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
|
||||
<!-- 파일당 최고 용량 kb, mb, gb -->
|
||||
<maxFileSize>10MB</maxFileSize>
|
||||
</timeBasedFileNamingAndTriggeringPolicy>
|
||||
<!-- 일자별 로그파일 최대 보관주기(~일), 해당 설정일 이상된 파일은 자동으로 제거-->
|
||||
<maxHistory>30</maxHistory>
|
||||
<!--<MinIndex>1</MinIndex>
|
||||
<MaxIndex>10</MaxIndex>-->
|
||||
</rollingPolicy>
|
||||
</appender>
|
||||
|
||||
<!-- 에러의 경우 파일에 로그 처리 -->
|
||||
<appender name="Error" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
||||
<level>error</level>
|
||||
<onMatch>ACCEPT</onMatch>
|
||||
<onMismatch>DENY</onMismatch>
|
||||
</filter>
|
||||
<file>${LOG_PATH}/${ERR_LOG_FILE_NAME}.log</file>
|
||||
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
|
||||
<pattern>${LOG_PATTERN}</pattern>
|
||||
</encoder>
|
||||
<!-- Rolling 정책 -->
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||
<!-- .gz,.zip 등을 넣으면 자동 일자별 로그파일 압축 -->
|
||||
<fileNamePattern>${LOG_PATH}/${ERR_LOG_FILE_NAME}.%d{yyyy-MM-dd}_%i.log</fileNamePattern>
|
||||
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
|
||||
<!-- 파일당 최고 용량 kb, mb, gb -->
|
||||
<maxFileSize>10MB</maxFileSize>
|
||||
</timeBasedFileNamingAndTriggeringPolicy>
|
||||
<!-- 일자별 로그파일 최대 보관주기(~일), 해당 설정일 이상된 파일은 자동으로 제거-->
|
||||
<maxHistory>60</maxHistory>
|
||||
</rollingPolicy>
|
||||
</appender>
|
||||
|
||||
<!-- root레벨 설정 -->
|
||||
<root level="${LOG_LEVEL}" additivity="false">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
<appender-ref ref="FILE"/>
|
||||
<appender-ref ref="Error"/>
|
||||
</root>
|
||||
|
||||
<!-- 특정패키지 로깅레벨 설정 -->
|
||||
<logger name="org.springframework" level="WARN" additivity="false">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
<appender-ref ref="FILE"/>
|
||||
<appender-ref ref="Error"/>
|
||||
</logger>
|
||||
|
||||
<!-- log4jdbc 옵션 설정 -->
|
||||
<logger name="jdbc" level="OFF" additivity="false">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
<appender-ref ref="FILE"/>
|
||||
<appender-ref ref="Error"/>
|
||||
</logger>
|
||||
<!-- sql문만 로깅할지 여부 -->
|
||||
<logger name="jdbc.sqlonly" level="${LOG_LEVEL}" additivity="false">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
<appender-ref ref="FILE"/>
|
||||
<appender-ref ref="Error"/>
|
||||
</logger>
|
||||
<!-- 쿼리문 수행시간 로깅 여부 -->
|
||||
<logger name="jdbc.sqltiming" level="OFF" additivity="false">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
<appender-ref ref="FILE"/>
|
||||
<appender-ref ref="Error"/>
|
||||
</logger>
|
||||
<!-- ResultSet외 모든 JDBC 호출 정보 로깅할지 여부 -->
|
||||
<logger name="jdbc.audit" level="OFF" additivity="false">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
<appender-ref ref="FILE"/>
|
||||
<appender-ref ref="Error"/>
|
||||
</logger>
|
||||
<!-- ResultSet 포함 모든 JDBC 호출 정보를 로깅 -->
|
||||
<logger name="jdbc.resultset" level="OFF" additivity="false">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
<appender-ref ref="FILE"/>
|
||||
<appender-ref ref="Error"/>
|
||||
</logger>
|
||||
<logger name="jdbc.resultsettable" level="OFF" additivity="false">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
<appender-ref ref="FILE"/>
|
||||
<appender-ref ref="Error"/>
|
||||
</logger>
|
||||
<!-- connection open close 로깅 여부 -->
|
||||
<logger name="jdbc.connection" level="OFF" additivity="false">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
<appender-ref ref="FILE"/>
|
||||
<appender-ref ref="Error"/>
|
||||
</logger>
|
||||
|
||||
<logger name="com.zaxxer.hikari.pool.HikariProxyResultSet" level="OFF" additivity="false">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
<appender-ref ref="FILE"/>
|
||||
<appender-ref ref="Error"/>
|
||||
</logger>
|
||||
</configuration>
|
||||
13
src/test/kotlin/org/home/linkkf/SampleApplicationTests.kt
Normal file
13
src/test/kotlin/org/home/linkkf/SampleApplicationTests.kt
Normal file
@@ -0,0 +1,13 @@
|
||||
package org.home.linkkf
|
||||
|
||||
import org.junit.jupiter.api.Test
|
||||
import org.springframework.boot.test.context.SpringBootTest
|
||||
|
||||
@SpringBootTest
|
||||
class SampleApplicationTests {
|
||||
|
||||
@Test
|
||||
fun contextLoads() {
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user