Skip to content
This repository was archived by the owner on Jul 7, 2025. It is now read-only.

Commit f414c25

Browse files
committed
익명 편지 전송 시 발신자 이름 지원 추가
- `AnonymousSendLetterRequest` 및 `AnonymousCommand`에 `senderName` 필드 추가. - 발신자 이름이 없는 경우 기본값 "Anonymous"를 사용하도록 `LetterCommandService` 수정. - `SendLetter` 엔터티와 관련 매퍼 및 JPA 엔터티, DB 테이블에 `senderName` 필드 추가. - `V1_21__add_sender_name_to_send_letter.sql` 마이그레이션 파일 작성.
1 parent 0e176ae commit f414c25

File tree

9 files changed

+26
-3
lines changed

9 files changed

+26
-3
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,3 +38,6 @@ out/
3838

3939
### Kotlin ###
4040
.kotlin
41+
42+
### claude ###
43+
CLAUDE.md

Application-Module/src/main/kotlin/com/asap/application/letter/port/in/SendLetterUsecase.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ interface SendLetterUsecase {
1515
)
1616

1717
data class AnonymousCommand(
18+
val senderName: String? = null,
1819
val receiverName: String,
1920
val content: String,
2021
val images: List<String>,

Application-Module/src/main/kotlin/com/asap/application/letter/service/LetterCommandService.kt

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ class LetterCommandService(
7070
letterCodeGenerator.generateCode(
7171
content = command.content,
7272
),
73+
senderName = command.senderName ?: ANONYMOUS_SENDER_NAME,
7374
)
7475

7576
sendLetterManagementPort.save(sendLetter)
@@ -111,9 +112,10 @@ class LetterCommandService(
111112
SenderInfo(
112113
senderId = sendLetter.senderId,
113114
senderName =
114-
sendLetter.senderId
115-
?.let { userManagementPort.getUserNotNull(it).username }
116-
.orEmpty(),
115+
sendLetter.senderName
116+
?: sendLetter.senderId
117+
?.let { userManagementPort.getUserNotNull(it).username }
118+
.orEmpty(),
117119
),
118120
receiver =
119121
ReceiverInfo(
@@ -273,4 +275,8 @@ class LetterCommandService(
273275
)
274276
spaceLetterManagementPort.save(spaceLetter)
275277
}
278+
279+
companion object {
280+
private const val ANONYMOUS_SENDER_NAME = "Anonymous"
281+
}
276282
}

Bootstrap-Module/src/main/kotlin/com/asap/bootstrap/web/letter/controller/LetterController.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -270,6 +270,7 @@ class LetterController(
270270
val response =
271271
sendLetterUsecase.sendAnonymous(
272272
SendLetterUsecase.AnonymousCommand(
273+
senderName = request.senderName,
273274
receiverName = request.receiverName,
274275
content = request.content,
275276
images = request.images,

Bootstrap-Module/src/main/kotlin/com/asap/bootstrap/web/letter/dto/AnonymousSendLetterRequest.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.asap.bootstrap.web.letter.dto
22

33
data class AnonymousSendLetterRequest(
4+
val senderName: String? = null,
45
val receiverName: String,
56
val content: String,
67
val images: List<String>,

Domain-Module/src/main/kotlin/com/asap/domain/letter/entity/SendLetter.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ class SendLetter(
1313
id: DomainId,
1414
val content: LetterContent,
1515
var senderId: DomainId?,
16+
var senderName: String?,
1617
var receiverName: String,
1718
var letterCode: String?,
1819
var status: LetterStatus,
@@ -37,6 +38,7 @@ class SendLetter(
3738
id = DomainId.generate(),
3839
content = content,
3940
senderId = senderId,
41+
senderName = null,
4042
receiverName = receiverName,
4143
letterCode = letterCode,
4244
status = status,
@@ -51,6 +53,7 @@ class SendLetter(
5153
content: LetterContent,
5254
receiverName: String,
5355
letterCode: String?,
56+
senderName: String,
5457
status: LetterStatus = LetterStatus.SENDING,
5558
receiverId: DomainId? = null,
5659
createdAt: LocalDateTime = LocalDateTime.now(),
@@ -60,6 +63,7 @@ class SendLetter(
6063
id = DomainId.generate(),
6164
content = content,
6265
senderId = null,
66+
senderName = senderName,
6367
receiverName = receiverName,
6468
letterCode = letterCode,
6569
status = status,

Infrastructure-Module/Persistence/src/main/kotlin/com/asap/persistence/jpa/letter/SendLetterMapper.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ object SendLetterMapper {
1818
receiverName = sendLetterEntity.receiverName,
1919
letterCode = sendLetterEntity.letterCode ?: "",
2020
senderId = sendLetterEntity.senderId?.let { DomainId(it) },
21+
senderName = sendLetterEntity.senderName,
2122
receiverId = sendLetterEntity.receiverId?.let { DomainId(it) },
2223
status = sendLetterEntity.letterStatus,
2324
createdAt = sendLetterEntity.createdAt,
@@ -32,6 +33,7 @@ object SendLetterMapper {
3233
templateType = sendLetter.content.templateType,
3334
receiverName = sendLetter.receiverName,
3435
senderId = sendLetter.senderId?.value,
36+
senderName = sendLetter.senderName,
3537
letterCode = sendLetter.letterCode,
3638
receiverId = sendLetter.receiverId?.value,
3739
letterStatus = sendLetter.status,

Infrastructure-Module/Persistence/src/main/kotlin/com/asap/persistence/jpa/letter/entity/SendLetterEntity.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ class SendLetterEntity(
2727
images: List<String>,
2828
templateType: Int,
2929
senderId: String?,
30+
senderName: String?,
3031
letterCode: String?,
3132
receiverId: String?,
3233
letterStatus: LetterStatus,
@@ -52,6 +53,9 @@ class SendLetterEntity(
5253
@Column(name = "sender_id")
5354
var senderId: String? = senderId
5455

56+
@Column(name = "sender_name")
57+
var senderName: String? = senderName
58+
5559
@ManyToOne(fetch = FetchType.LAZY)
5660
@JoinColumn(
5761
name = "sender_id",
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
ALTER TABLE send_letter ADD COLUMN sender_name VARCHAR(255) NULL;

0 commit comments

Comments
 (0)