From fa69f2bcbf556274df17d21d2bf1118b8315397a Mon Sep 17 00:00:00 2001 From: TaeyeonRoyce Date: Thu, 25 Jan 2024 11:20:50 +0900 Subject: [PATCH 1/9] =?UTF-8?q?feat:=20Announcement=20=EB=8F=84=EB=A9=94?= =?UTF-8?q?=EC=9D=B8=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/announcement/Announcement.kt | 24 +++++++++++++++++++ .../announcement/AnnouncementRepository.kt | 5 ++++ 2 files changed, 29 insertions(+) create mode 100644 src/main/kotlin/com/petqua/domain/announcement/Announcement.kt create mode 100644 src/main/kotlin/com/petqua/domain/announcement/AnnouncementRepository.kt diff --git a/src/main/kotlin/com/petqua/domain/announcement/Announcement.kt b/src/main/kotlin/com/petqua/domain/announcement/Announcement.kt new file mode 100644 index 00000000..f9c0916f --- /dev/null +++ b/src/main/kotlin/com/petqua/domain/announcement/Announcement.kt @@ -0,0 +1,24 @@ +package com.petqua.domain.announcement + +import jakarta.persistence.* +import org.springframework.data.annotation.CreatedDate +import org.springframework.data.annotation.LastModifiedDate +import java.time.LocalDateTime + +@Entity +class Announcement( + @Id @GeneratedValue(strategy = GenerationType.IDENTITY) + val id: Long = 0L, + + @Column(nullable = false) + val title: String, + + @Column(nullable = false) + val linkUrl: String, + + @CreatedDate + val createAt: LocalDateTime = LocalDateTime.now(), // TODO: BaseEntity 상속 + + @LastModifiedDate + val updateAt: LocalDateTime = LocalDateTime.now(), // TODO: BaseEntity 상속 +) diff --git a/src/main/kotlin/com/petqua/domain/announcement/AnnouncementRepository.kt b/src/main/kotlin/com/petqua/domain/announcement/AnnouncementRepository.kt new file mode 100644 index 00000000..40ba5fd5 --- /dev/null +++ b/src/main/kotlin/com/petqua/domain/announcement/AnnouncementRepository.kt @@ -0,0 +1,5 @@ +package com.petqua.domain.announcement + +import org.springframework.data.jpa.repository.JpaRepository + +interface AnnouncementRepository : JpaRepository From 7ab8026a81c750986fa06738d27cdef3ffcef26f Mon Sep 17 00:00:00 2001 From: TaeyeonRoyce Date: Thu, 25 Jan 2024 11:28:53 +0900 Subject: [PATCH 2/9] =?UTF-8?q?feat:=20Announcement=20=EC=A1=B0=ED=9A=8C?= =?UTF-8?q?=20=EB=A1=9C=EC=A7=81=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../announcement/AnnouncementDtos.kt | 24 ++++++++++ .../announcement/AnnouncementService.kt | 20 ++++++++ .../petqua/common/cofig/CacheConfiguration.kt | 2 +- .../announcement/AnnouncementServiceTest.kt | 47 +++++++++++++++++++ 4 files changed, 92 insertions(+), 1 deletion(-) create mode 100644 src/main/kotlin/com/petqua/application/announcement/AnnouncementDtos.kt create mode 100644 src/main/kotlin/com/petqua/application/announcement/AnnouncementService.kt create mode 100644 src/test/kotlin/com/petqua/application/announcement/AnnouncementServiceTest.kt diff --git a/src/main/kotlin/com/petqua/application/announcement/AnnouncementDtos.kt b/src/main/kotlin/com/petqua/application/announcement/AnnouncementDtos.kt new file mode 100644 index 00000000..9aae7bb4 --- /dev/null +++ b/src/main/kotlin/com/petqua/application/announcement/AnnouncementDtos.kt @@ -0,0 +1,24 @@ +package com.petqua.application.announcement + +import com.petqua.domain.announcement.Announcement +import java.time.LocalDateTime + +data class FindAnnouncementResult( + val id: Long, + val title: String, + val linkUrl: String, + val createAt: LocalDateTime, + val updateAt: LocalDateTime, +) { + companion object { + fun from(announcement: Announcement): FindAnnouncementResult { + return FindAnnouncementResult( + id = announcement.id, + title = announcement.title, + linkUrl = announcement.linkUrl, + createAt = announcement.createAt, + updateAt = announcement.updateAt, + ) + } + } +} diff --git a/src/main/kotlin/com/petqua/application/announcement/AnnouncementService.kt b/src/main/kotlin/com/petqua/application/announcement/AnnouncementService.kt new file mode 100644 index 00000000..683f4dda --- /dev/null +++ b/src/main/kotlin/com/petqua/application/announcement/AnnouncementService.kt @@ -0,0 +1,20 @@ +package com.petqua.application.announcement + +import com.petqua.domain.announcement.AnnouncementRepository +import org.springframework.cache.annotation.Cacheable +import org.springframework.stereotype.Service +import org.springframework.transaction.annotation.Transactional + +@Transactional +@Service +class AnnouncementService( + private val announcementRepository: AnnouncementRepository, +) { + + @Cacheable("announcements") + @Transactional(readOnly = true) + fun getAnnouncementsList(): List { + val announcements = announcementRepository.findAll() + return announcements.map { FindAnnouncementResult.from(it) } + } +} diff --git a/src/main/kotlin/com/petqua/common/cofig/CacheConfiguration.kt b/src/main/kotlin/com/petqua/common/cofig/CacheConfiguration.kt index ae1bb709..021c8fd9 100644 --- a/src/main/kotlin/com/petqua/common/cofig/CacheConfiguration.kt +++ b/src/main/kotlin/com/petqua/common/cofig/CacheConfiguration.kt @@ -14,7 +14,7 @@ class CacheConfiguration { @Bean fun cacheManager(): CacheManager { val cacheManager = ConcurrentMapCacheManager() - cacheManager.setCacheNames(listOf("banners")) + cacheManager.setCacheNames(listOf("banners", "announcements")) return cacheManager } } diff --git a/src/test/kotlin/com/petqua/application/announcement/AnnouncementServiceTest.kt b/src/test/kotlin/com/petqua/application/announcement/AnnouncementServiceTest.kt new file mode 100644 index 00000000..fcee82aa --- /dev/null +++ b/src/test/kotlin/com/petqua/application/announcement/AnnouncementServiceTest.kt @@ -0,0 +1,47 @@ +package com.petqua.application.announcement + +import com.petqua.domain.announcement.Announcement +import com.petqua.domain.announcement.AnnouncementRepository +import io.kotest.core.spec.style.BehaviorSpec +import io.kotest.matchers.shouldBe +import org.mockito.Mockito.atMost +import org.mockito.Mockito.verify +import org.springframework.boot.test.context.SpringBootTest +import org.springframework.boot.test.context.SpringBootTest.WebEnvironment.NONE +import org.springframework.boot.test.mock.mockito.SpyBean +import org.springframework.test.context.TestConstructor +import org.springframework.test.context.TestConstructor.AutowireMode.ALL + +@TestConstructor(autowireMode = ALL) +@SpringBootTest(webEnvironment = NONE) +class AnnouncementServiceTest( + private var announcementService: AnnouncementService, + @SpyBean private var announcementRepository: AnnouncementRepository, +) : BehaviorSpec({ + + Given("공지사항 조회 테스트") { + announcementRepository.saveAll( + listOf( + Announcement(title = "titleA", linkUrl = "linkUrlA"), + Announcement(title = "titleB", linkUrl = "linkUrlB"), + Announcement(title = "titleC", linkUrl = "linkUrlC"), + ) + ) + + When("공지사항을 전체 조회 하면") { + val results = announcementService.getAnnouncementsList() + + Then("모든 공지사항이 조회 된다") { + results.size shouldBe 3 + } + } + + When("공지사항이 캐싱 되어 있으면") { + repeat(5) { announcementService.getAnnouncementsList() } + + Then("퀴리가 발생 하지 않는다") { + verify(announcementRepository, atMost(1)).findAll() + } + } + } +}) From c42e5c8beb7cb86cf1add9b1348accd917551bbe Mon Sep 17 00:00:00 2001 From: TaeyeonRoyce Date: Thu, 25 Jan 2024 11:29:58 +0900 Subject: [PATCH 3/9] =?UTF-8?q?feat:=20Announcement=20=EC=A1=B0=ED=9A=8C?= =?UTF-8?q?=20API=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../announcement/AnnouncementController.kt | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 src/main/kotlin/com/petqua/presentation/announcement/AnnouncementController.kt diff --git a/src/main/kotlin/com/petqua/presentation/announcement/AnnouncementController.kt b/src/main/kotlin/com/petqua/presentation/announcement/AnnouncementController.kt new file mode 100644 index 00000000..674f6bd6 --- /dev/null +++ b/src/main/kotlin/com/petqua/presentation/announcement/AnnouncementController.kt @@ -0,0 +1,21 @@ +package com.petqua.presentation.announcement + +import com.petqua.application.announcement.AnnouncementService +import com.petqua.application.announcement.FindAnnouncementResult +import org.springframework.http.ResponseEntity +import org.springframework.web.bind.annotation.GetMapping +import org.springframework.web.bind.annotation.RequestMapping +import org.springframework.web.bind.annotation.RestController + +@RequestMapping("/announcement") +@RestController +class AnnouncementController( + private val announcementService: AnnouncementService +) { + + @GetMapping + fun getAnnouncements(): ResponseEntity> { + val announcements = announcementService.getAnnouncementsList() + return ResponseEntity.ok(announcements) + } +} From f6a57f698cd53e7ddc3188e91f072fac19cd2f63 Mon Sep 17 00:00:00 2001 From: TaeyeonRoyce Date: Fri, 26 Jan 2024 16:40:05 +0900 Subject: [PATCH 4/9] =?UTF-8?q?style:=20method,=20dto=20naming=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../application/announcement/AnnouncementDtos.kt | 6 +++--- .../application/announcement/AnnouncementService.kt | 4 ++-- .../announcement/AnnouncementController.kt | 10 +++++----- .../announcement/AnnouncementServiceTest.kt | 4 ++-- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/main/kotlin/com/petqua/application/announcement/AnnouncementDtos.kt b/src/main/kotlin/com/petqua/application/announcement/AnnouncementDtos.kt index 9aae7bb4..6ad45956 100644 --- a/src/main/kotlin/com/petqua/application/announcement/AnnouncementDtos.kt +++ b/src/main/kotlin/com/petqua/application/announcement/AnnouncementDtos.kt @@ -3,7 +3,7 @@ package com.petqua.application.announcement import com.petqua.domain.announcement.Announcement import java.time.LocalDateTime -data class FindAnnouncementResult( +data class AnnouncementResponse( val id: Long, val title: String, val linkUrl: String, @@ -11,8 +11,8 @@ data class FindAnnouncementResult( val updateAt: LocalDateTime, ) { companion object { - fun from(announcement: Announcement): FindAnnouncementResult { - return FindAnnouncementResult( + fun from(announcement: Announcement): AnnouncementResponse { + return AnnouncementResponse( id = announcement.id, title = announcement.title, linkUrl = announcement.linkUrl, diff --git a/src/main/kotlin/com/petqua/application/announcement/AnnouncementService.kt b/src/main/kotlin/com/petqua/application/announcement/AnnouncementService.kt index 683f4dda..1474aef6 100644 --- a/src/main/kotlin/com/petqua/application/announcement/AnnouncementService.kt +++ b/src/main/kotlin/com/petqua/application/announcement/AnnouncementService.kt @@ -13,8 +13,8 @@ class AnnouncementService( @Cacheable("announcements") @Transactional(readOnly = true) - fun getAnnouncementsList(): List { + fun readAll(): List { val announcements = announcementRepository.findAll() - return announcements.map { FindAnnouncementResult.from(it) } + return announcements.map { AnnouncementResponse.from(it) } } } diff --git a/src/main/kotlin/com/petqua/presentation/announcement/AnnouncementController.kt b/src/main/kotlin/com/petqua/presentation/announcement/AnnouncementController.kt index 674f6bd6..8b984c66 100644 --- a/src/main/kotlin/com/petqua/presentation/announcement/AnnouncementController.kt +++ b/src/main/kotlin/com/petqua/presentation/announcement/AnnouncementController.kt @@ -1,21 +1,21 @@ package com.petqua.presentation.announcement +import com.petqua.application.announcement.AnnouncementResponse import com.petqua.application.announcement.AnnouncementService -import com.petqua.application.announcement.FindAnnouncementResult import org.springframework.http.ResponseEntity import org.springframework.web.bind.annotation.GetMapping import org.springframework.web.bind.annotation.RequestMapping import org.springframework.web.bind.annotation.RestController -@RequestMapping("/announcement") +@RequestMapping("/announcements") @RestController class AnnouncementController( private val announcementService: AnnouncementService ) { @GetMapping - fun getAnnouncements(): ResponseEntity> { - val announcements = announcementService.getAnnouncementsList() - return ResponseEntity.ok(announcements) + fun readAll(): ResponseEntity> { + val response = announcementService.readAll() + return ResponseEntity.ok(response) } } diff --git a/src/test/kotlin/com/petqua/application/announcement/AnnouncementServiceTest.kt b/src/test/kotlin/com/petqua/application/announcement/AnnouncementServiceTest.kt index fcee82aa..969862ed 100644 --- a/src/test/kotlin/com/petqua/application/announcement/AnnouncementServiceTest.kt +++ b/src/test/kotlin/com/petqua/application/announcement/AnnouncementServiceTest.kt @@ -29,7 +29,7 @@ class AnnouncementServiceTest( ) When("공지사항을 전체 조회 하면") { - val results = announcementService.getAnnouncementsList() + val results = announcementService.readAll() Then("모든 공지사항이 조회 된다") { results.size shouldBe 3 @@ -37,7 +37,7 @@ class AnnouncementServiceTest( } When("공지사항이 캐싱 되어 있으면") { - repeat(5) { announcementService.getAnnouncementsList() } + repeat(5) { announcementService.readAll() } Then("퀴리가 발생 하지 않는다") { verify(announcementRepository, atMost(1)).findAll() From 1273b66949c8b26458a3bd26b77e6675abfa9304 Mon Sep 17 00:00:00 2001 From: TaeyeonRoyce Date: Fri, 26 Jan 2024 16:54:22 +0900 Subject: [PATCH 5/9] =?UTF-8?q?test:=20=EA=B3=B5=EC=A7=80=EC=82=AC?= =?UTF-8?q?=ED=95=AD=20=EC=A1=B0=ED=9A=8C=20api=20test=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AnnouncementControllerTest.kt | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 src/test/kotlin/com/petqua/presentation/announcement/AnnouncementControllerTest.kt diff --git a/src/test/kotlin/com/petqua/presentation/announcement/AnnouncementControllerTest.kt b/src/test/kotlin/com/petqua/presentation/announcement/AnnouncementControllerTest.kt new file mode 100644 index 00000000..3804e7d7 --- /dev/null +++ b/src/test/kotlin/com/petqua/presentation/announcement/AnnouncementControllerTest.kt @@ -0,0 +1,49 @@ +package com.petqua.presentation.announcement + +import com.petqua.application.announcement.AnnouncementResponse +import com.petqua.domain.announcement.Announcement +import com.petqua.domain.announcement.AnnouncementRepository +import com.petqua.test.ApiTestConfig +import io.restassured.module.kotlin.extensions.Extract +import io.restassured.module.kotlin.extensions.Given +import io.restassured.module.kotlin.extensions.Then +import io.restassured.module.kotlin.extensions.When +import org.assertj.core.api.SoftAssertions.assertSoftly +import org.springframework.http.HttpStatus + +class AnnouncementControllerTest( + private val announcementRepository: AnnouncementRepository +) : ApiTestConfig() { + + init { + Given("공지 사항이 존재할 때") { + val announcements = announcementRepository.saveAll( + listOf( + Announcement(title = "announcementsA", linkUrl = "linkUrlA"), + Announcement(title = "announcementsB", linkUrl = "linkUrlB") + ) + ) + + When("공지 사항 목록을 조회하면") { + val response = Given { + log().all() + } When { + get("/announcements") + } Then { + log().all() + } Extract { + response() + } + + Then("모든 공지 사항 목록이 반환된다.") { + val responseData = response.`as`(Array::class.java) + + assertSoftly { + it.assertThat(response.statusCode).isEqualTo(HttpStatus.OK.value()) + it.assertThat(responseData.size).isEqualTo(2) + } + } + } + } + } +} From 313a2b3d8953929ffc161c64c4a78fd636e186d8 Mon Sep 17 00:00:00 2001 From: TaeyeonRoyce Date: Fri, 26 Jan 2024 21:11:18 +0900 Subject: [PATCH 6/9] =?UTF-8?q?refactor:=20=EB=B6=88=ED=95=84=EC=9A=94?= =?UTF-8?q?=ED=95=9C=20=EC=9D=91=EB=8B=B5=20=ED=95=84=EB=93=9C=20=EC=A0=9C?= =?UTF-8?q?=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/petqua/application/announcement/AnnouncementDtos.kt | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/main/kotlin/com/petqua/application/announcement/AnnouncementDtos.kt b/src/main/kotlin/com/petqua/application/announcement/AnnouncementDtos.kt index 6ad45956..0bfca711 100644 --- a/src/main/kotlin/com/petqua/application/announcement/AnnouncementDtos.kt +++ b/src/main/kotlin/com/petqua/application/announcement/AnnouncementDtos.kt @@ -1,14 +1,11 @@ package com.petqua.application.announcement import com.petqua.domain.announcement.Announcement -import java.time.LocalDateTime data class AnnouncementResponse( val id: Long, val title: String, val linkUrl: String, - val createAt: LocalDateTime, - val updateAt: LocalDateTime, ) { companion object { fun from(announcement: Announcement): AnnouncementResponse { @@ -16,8 +13,6 @@ data class AnnouncementResponse( id = announcement.id, title = announcement.title, linkUrl = announcement.linkUrl, - createAt = announcement.createAt, - updateAt = announcement.updateAt, ) } } From 5bf6e7ba9b48400ba7ca3f8a923f970b6e805a61 Mon Sep 17 00:00:00 2001 From: TaeyeonRoyce Date: Fri, 26 Jan 2024 22:18:46 +0900 Subject: [PATCH 7/9] =?UTF-8?q?test:=20test=20=ED=8C=A8=ED=82=A4=EC=A7=80?= =?UTF-8?q?=20=EC=9D=B4=EB=8F=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../petqua/application/{ => product}/ProductServiceTest.kt | 3 +-- .../presentation/{ => product}/ProductControllerTest.kt | 6 +++--- 2 files changed, 4 insertions(+), 5 deletions(-) rename src/test/kotlin/com/petqua/application/{ => product}/ProductServiceTest.kt (96%) rename src/test/kotlin/com/petqua/presentation/{ => product}/ProductControllerTest.kt (99%) diff --git a/src/test/kotlin/com/petqua/application/ProductServiceTest.kt b/src/test/kotlin/com/petqua/application/product/ProductServiceTest.kt similarity index 96% rename from src/test/kotlin/com/petqua/application/ProductServiceTest.kt rename to src/test/kotlin/com/petqua/application/product/ProductServiceTest.kt index f7e58a62..ccfeb9d2 100644 --- a/src/test/kotlin/com/petqua/application/ProductServiceTest.kt +++ b/src/test/kotlin/com/petqua/application/product/ProductServiceTest.kt @@ -1,6 +1,5 @@ -package com.petqua.application +package com.petqua.application.product -import com.petqua.application.product.ProductService import com.petqua.application.product.dto.ProductDetailResponse import com.petqua.application.product.dto.ProductReadRequest import com.petqua.application.product.dto.ProductsResponse diff --git a/src/test/kotlin/com/petqua/presentation/ProductControllerTest.kt b/src/test/kotlin/com/petqua/presentation/product/ProductControllerTest.kt similarity index 99% rename from src/test/kotlin/com/petqua/presentation/ProductControllerTest.kt rename to src/test/kotlin/com/petqua/presentation/product/ProductControllerTest.kt index 5271a1b5..5b1a2f85 100644 --- a/src/test/kotlin/com/petqua/presentation/ProductControllerTest.kt +++ b/src/test/kotlin/com/petqua/presentation/product/ProductControllerTest.kt @@ -1,4 +1,4 @@ -package com.petqua.presentation +package com.petqua.presentation.product import com.petqua.application.product.dto.ProductDetailResponse import com.petqua.application.product.dto.ProductsResponse @@ -20,6 +20,8 @@ import io.restassured.module.kotlin.extensions.Extract import io.restassured.module.kotlin.extensions.Given import io.restassured.module.kotlin.extensions.Then import io.restassured.module.kotlin.extensions.When +import java.math.BigDecimal +import kotlin.Long.Companion.MIN_VALUE import org.assertj.core.api.SoftAssertions.assertSoftly import org.springframework.boot.test.context.SpringBootTest import org.springframework.boot.test.context.SpringBootTest.WebEnvironment.RANDOM_PORT @@ -27,8 +29,6 @@ import org.springframework.boot.test.web.server.LocalServerPort import org.springframework.http.HttpStatus import org.springframework.http.HttpStatus.BAD_REQUEST import org.springframework.http.HttpStatus.NOT_FOUND -import java.math.BigDecimal -import kotlin.Long.Companion.MIN_VALUE @SpringBootTest(webEnvironment = RANDOM_PORT) class ProductControllerTest( From c70c5622d2f5356fc2cba08d1ba8e22d55a1f8e4 Mon Sep 17 00:00:00 2001 From: TaeyeonRoyce Date: Fri, 26 Jan 2024 22:28:50 +0900 Subject: [PATCH 8/9] =?UTF-8?q?test:=20ProductControllerTest=EC=97=90=20Ap?= =?UTF-8?q?iTestConfig=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/test/kotlin/com/petqua/test/ApiTestConfig.kt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/test/kotlin/com/petqua/test/ApiTestConfig.kt b/src/test/kotlin/com/petqua/test/ApiTestConfig.kt index 13ca24a2..da7538c7 100644 --- a/src/test/kotlin/com/petqua/test/ApiTestConfig.kt +++ b/src/test/kotlin/com/petqua/test/ApiTestConfig.kt @@ -11,12 +11,16 @@ import org.springframework.boot.test.web.server.LocalServerPort abstract class ApiTestConfig : BehaviorSpec() { @LocalServerPort - protected val port: Int = RestAssured.port + protected var port: Int = 0 @Autowired private lateinit var dataCleaner: DataCleaner init { + this.beforeTest { + RestAssured.port = this.port + } + afterContainer { dataCleaner.clean() } From 62c298ea9a0c7e6b4be5aebdc5dfeebfc67f64e8 Mon Sep 17 00:00:00 2001 From: TaeyeonRoyce Date: Sat, 27 Jan 2024 17:21:18 +0900 Subject: [PATCH 9/9] =?UTF-8?q?refactor:=20BaseEntity=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../petqua/domain/announcement/Announcement.kt | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/src/main/kotlin/com/petqua/domain/announcement/Announcement.kt b/src/main/kotlin/com/petqua/domain/announcement/Announcement.kt index f9c0916f..1167eee6 100644 --- a/src/main/kotlin/com/petqua/domain/announcement/Announcement.kt +++ b/src/main/kotlin/com/petqua/domain/announcement/Announcement.kt @@ -1,9 +1,11 @@ package com.petqua.domain.announcement -import jakarta.persistence.* -import org.springframework.data.annotation.CreatedDate -import org.springframework.data.annotation.LastModifiedDate -import java.time.LocalDateTime +import com.petqua.common.domain.BaseEntity +import jakarta.persistence.Column +import jakarta.persistence.Entity +import jakarta.persistence.GeneratedValue +import jakarta.persistence.GenerationType +import jakarta.persistence.Id @Entity class Announcement( @@ -15,10 +17,4 @@ class Announcement( @Column(nullable = false) val linkUrl: String, - - @CreatedDate - val createAt: LocalDateTime = LocalDateTime.now(), // TODO: BaseEntity 상속 - - @LastModifiedDate - val updateAt: LocalDateTime = LocalDateTime.now(), // TODO: BaseEntity 상속 -) +) : BaseEntity()