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

Commit d92d506

Browse files
committed
ASAP-451 익명 편지 생성 로직 및 DB 스키마 수정
- `send_letter.sender_id`를 nullable로 수정: 도메인, 엔터티, 매퍼 및 DDL 변경. - 익명 편지 생성 팩토리 메서드 `createAnonymous` 추가.
1 parent 480a1a2 commit d92d506

4 files changed

Lines changed: 29 additions & 8 deletions

File tree

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

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import java.time.LocalDateTime
1212
class SendLetter(
1313
id: DomainId,
1414
val content: LetterContent,
15-
val senderId: DomainId,
15+
val senderId: DomainId? = null,
1616
var receiverName: String,
1717
var letterCode: String?,
1818
var status: LetterStatus,
@@ -46,6 +46,27 @@ class SendLetter(
4646
).also {
4747
it.registerEvent(SendLetterEvent.SendLetterCreatedEvent(it, draftId?.value))
4848
}
49+
50+
fun createAnonymous(
51+
content: LetterContent,
52+
receiverName: String,
53+
letterCode: String?,
54+
status: LetterStatus = LetterStatus.SENDING,
55+
receiverId: DomainId? = null,
56+
createdAt: LocalDateTime = LocalDateTime.now(),
57+
updatedAt: LocalDateTime = LocalDateTime.now(),
58+
): SendLetter =
59+
SendLetter(
60+
id = DomainId.generate(),
61+
content = content,
62+
senderId = null,
63+
receiverName = receiverName,
64+
letterCode = letterCode,
65+
status = status,
66+
receiverId = receiverId,
67+
createdAt = createdAt,
68+
updatedAt = updatedAt,
69+
)
4970
}
5071

5172
fun isSameReceiver(receiver: () -> User): Boolean {

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ object SendLetterMapper {
1717
),
1818
receiverName = sendLetterEntity.receiverName,
1919
letterCode = sendLetterEntity.letterCode ?: "",
20-
senderId = DomainId(sendLetterEntity.senderId),
20+
senderId = sendLetterEntity.senderId?.let { DomainId(it) },
2121
receiverId = sendLetterEntity.receiverId?.let { DomainId(it) },
2222
status = sendLetterEntity.letterStatus,
2323
createdAt = sendLetterEntity.createdAt,
@@ -31,7 +31,7 @@ object SendLetterMapper {
3131
images = sendLetter.content.images,
3232
templateType = sendLetter.content.templateType,
3333
receiverName = sendLetter.receiverName,
34-
senderId = sendLetter.senderId.value,
34+
senderId = sendLetter.senderId?.value,
3535
letterCode = sendLetter.letterCode,
3636
receiverId = sendLetter.receiverId?.value,
3737
letterStatus = sendLetter.status,

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

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ class SendLetterEntity(
2626
content: String,
2727
images: List<String>,
2828
templateType: Int,
29-
senderId: String,
29+
senderId: String?,
3030
letterCode: String?,
3131
receiverId: String?,
3232
letterStatus: LetterStatus,
@@ -49,17 +49,16 @@ class SendLetterEntity(
4949
var images: List<String> = images
5050
var templateType: Int = templateType
5151

52-
@Column(name = "sender_id", nullable = false)
53-
var senderId: String = senderId
52+
@Column(name = "sender_id")
53+
var senderId: String? = senderId
5454

5555
@ManyToOne(fetch = FetchType.LAZY)
5656
@JoinColumn(
5757
name = "sender_id",
58-
nullable = false,
5958
insertable = false,
6059
updatable = false,
6160
)
62-
lateinit var sender: UserEntity
61+
var sender: UserEntity? = null
6362

6463
@Column(name = "receiver_id")
6564
var receiverId: String? = receiverId
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
ALTER TABLE send_letter MODIFY COLUMN sender_id VARCHAR(255) NULL;

0 commit comments

Comments
 (0)