-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #110 from ASAP-Lettering/ASAP-388
ASAP-388 실물 편지 임시 저장을 위한 키 발급 api 추가
- Loading branch information
Showing
14 changed files
with
287 additions
and
9 deletions.
There are no files selected for viewing
16 changes: 12 additions & 4 deletions
16
...ion-Module/src/main/kotlin/com/asap/application/letter/port/in/GenerateDraftKeyUsecase.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
7 changes: 7 additions & 0 deletions
7
.../src/main/kotlin/com/asap/application/letter/port/out/ReceiveDraftLetterManagementPort.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
package com.asap.application.letter.port.out | ||
|
||
import com.asap.domain.letter.entity.ReceiveDraftLetter | ||
|
||
interface ReceiveDraftLetterManagementPort { | ||
fun save(receiveDraftLetter: ReceiveDraftLetter): ReceiveDraftLetter | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
42 changes: 42 additions & 0 deletions
42
Domain-Module/src/main/kotlin/com/asap/domain/letter/entity/ReceiveDraftLetter.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
package com.asap.domain.letter.entity | ||
|
||
import com.asap.domain.common.BaseEntity | ||
import com.asap.domain.common.DomainId | ||
import java.time.LocalDateTime | ||
|
||
class ReceiveDraftLetter( | ||
id: DomainId, | ||
var content: String, | ||
var senderName: String, | ||
val ownerId: DomainId, | ||
var images: List<String>, | ||
var lastUpdated: LocalDateTime = LocalDateTime.now(), | ||
val type: ReceiveDraftLetterType, | ||
) : BaseEntity() { | ||
companion object { | ||
fun default(ownerId: DomainId) = | ||
ReceiveDraftLetter( | ||
id = DomainId.generate(), | ||
ownerId = ownerId, | ||
content = "", | ||
senderName = "", | ||
images = emptyList(), | ||
type = ReceiveDraftLetterType.PHYSICAL, | ||
) | ||
} | ||
|
||
fun update( | ||
content: String, | ||
senderName: String, | ||
images: List<String>, | ||
) { | ||
this.content = content | ||
this.senderName = senderName | ||
this.images = images | ||
this.lastUpdated = LocalDateTime.now() | ||
} | ||
} | ||
|
||
enum class ReceiveDraftLetterType{ | ||
PHYSICAL, | ||
} |
29 changes: 29 additions & 0 deletions
29
...e/Persistence/src/main/kotlin/com/asap/persistence/jpa/letter/ReceiveDraftLetterMapper.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
package com.asap.persistence.jpa.letter | ||
|
||
import com.asap.domain.common.DomainId | ||
import com.asap.domain.letter.entity.ReceiveDraftLetter | ||
import com.asap.persistence.jpa.letter.entity.ReceiveDraftLetterEntity | ||
|
||
object ReceiveDraftLetterMapper { | ||
fun toEntity(receiveDraftLetter: ReceiveDraftLetter): ReceiveDraftLetterEntity = | ||
ReceiveDraftLetterEntity( | ||
id = receiveDraftLetter.id.value, | ||
content = receiveDraftLetter.content, | ||
senderName = receiveDraftLetter.senderName, | ||
ownerId = receiveDraftLetter.ownerId.value, | ||
images = receiveDraftLetter.images, | ||
updatedAt = receiveDraftLetter.lastUpdated, | ||
type = receiveDraftLetter.type, | ||
) | ||
|
||
fun toDomain(receiveDraftLetterEntity: ReceiveDraftLetterEntity): ReceiveDraftLetter = | ||
ReceiveDraftLetter( | ||
id = DomainId(receiveDraftLetterEntity.id), | ||
content = receiveDraftLetterEntity.content, | ||
senderName = receiveDraftLetterEntity.senderName, | ||
ownerId = DomainId(receiveDraftLetterEntity.ownerId), | ||
images = receiveDraftLetterEntity.images, | ||
lastUpdated = receiveDraftLetterEntity.updatedAt, | ||
type = receiveDraftLetterEntity.type, | ||
) | ||
} |
18 changes: 18 additions & 0 deletions
18
.../kotlin/com/asap/persistence/jpa/letter/adapter/ReceiveDraftLetterManagementJpaAdapter.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
package com.asap.persistence.jpa.letter.adapter | ||
|
||
import com.asap.application.letter.port.out.ReceiveDraftLetterManagementPort | ||
import com.asap.domain.letter.entity.ReceiveDraftLetter | ||
import com.asap.persistence.jpa.letter.ReceiveDraftLetterMapper | ||
import com.asap.persistence.jpa.letter.repository.ReceiveDraftLetterJpaRepository | ||
import org.springframework.stereotype.Repository | ||
|
||
@Repository | ||
class ReceiveDraftLetterManagementJpaAdapter( | ||
private val receiveDraftLetterJpaRepository: ReceiveDraftLetterJpaRepository, | ||
) : ReceiveDraftLetterManagementPort { | ||
override fun save(receiveDraftLetter: ReceiveDraftLetter): ReceiveDraftLetter { | ||
val receiveDraftLetterEntity = ReceiveDraftLetterMapper.toEntity(receiveDraftLetter) | ||
return receiveDraftLetterJpaRepository.save(receiveDraftLetterEntity) | ||
.let { ReceiveDraftLetterMapper.toDomain(it) } | ||
} | ||
} |
60 changes: 60 additions & 0 deletions
60
...stence/src/main/kotlin/com/asap/persistence/jpa/letter/entity/ReceiveDraftLetterEntity.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
package com.asap.persistence.jpa.letter.entity | ||
|
||
import com.asap.domain.letter.entity.ReceiveDraftLetterType | ||
import com.asap.persistence.jpa.common.BaseEntity | ||
import com.asap.persistence.jpa.user.entity.UserEntity | ||
import jakarta.persistence.* | ||
import org.hibernate.annotations.JdbcTypeCode | ||
import org.hibernate.type.SqlTypes | ||
import java.time.LocalDateTime | ||
|
||
@Entity | ||
@Table( | ||
name = "receive_draft_letters" | ||
) | ||
class ReceiveDraftLetterEntity( | ||
id: String, | ||
content: String, | ||
senderName: String, | ||
ownerId: String, | ||
images: List<String>, | ||
updatedAt: LocalDateTime, | ||
type: ReceiveDraftLetterType | ||
) : BaseEntity(id) { | ||
|
||
var content: String = content | ||
var senderName: String = senderName | ||
|
||
@Column( | ||
name = "owner_id", | ||
nullable = false, | ||
) | ||
var ownerId: String = ownerId | ||
|
||
@ManyToOne(fetch = FetchType.LAZY) | ||
@JoinColumn( | ||
name = "owner_id", | ||
insertable = false, | ||
updatable = false, | ||
) | ||
lateinit var owner: UserEntity | ||
|
||
@JdbcTypeCode(SqlTypes.JSON) | ||
@Column( | ||
name = "images", | ||
nullable = false, | ||
columnDefinition = "text", | ||
) | ||
var images: List<String> = images | ||
|
||
override var updatedAt: LocalDateTime = updatedAt | ||
|
||
@Enumerated(EnumType.STRING) | ||
@Column( | ||
name = "type", | ||
nullable = false, | ||
columnDefinition = "VARCHAR(20)", | ||
) | ||
var type: ReceiveDraftLetterType = type | ||
|
||
} |
7 changes: 7 additions & 0 deletions
7
...main/kotlin/com/asap/persistence/jpa/letter/repository/ReceiveDraftLetterJpaRepository.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
package com.asap.persistence.jpa.letter.repository | ||
|
||
import com.asap.persistence.jpa.letter.entity.ReceiveDraftLetterEntity | ||
import org.springframework.data.jpa.repository.JpaRepository | ||
|
||
interface ReceiveDraftLetterJpaRepository : JpaRepository<ReceiveDraftLetterEntity, String>{ | ||
} |
15 changes: 15 additions & 0 deletions
15
...structure-Module/Persistence/src/main/resources/db/V1_15__create_receive_draft_letter.sql
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
CREATE TABLE receive_draft_letters | ||
( | ||
id VARCHAR(255) NOT NULL, | ||
created_at datetime NULL, | ||
updated_at datetime NULL, | ||
content VARCHAR(255) NULL, | ||
sender_name VARCHAR(255) NULL, | ||
owner_id VARCHAR(255) NOT NULL, | ||
images TEXT NOT NULL, | ||
type VARCHAR(20) NOT NULL, | ||
CONSTRAINT pk_receive_draft_letters PRIMARY KEY (id) | ||
); | ||
|
||
ALTER TABLE receive_draft_letters | ||
ADD CONSTRAINT FK_RECEIVE_DRAFT_LETTERS_ON_OWNER FOREIGN KEY (owner_id) REFERENCES user (id); |