InquiryMessageModel.java

package com.hwhub.batch.domain.model.inquiry;

import com.hwhub.batch.domain.enums.SenderType;
import lombok.Getter;

@Getter
public class InquiryMessageModel {
  private final InquiryMessageId messageId;
  private final InquiryId inquiryId;
  private final int seq;
  private final SenderType senderType;
  private final String body;

  private InquiryMessageModel(
      InquiryMessageId messageId,
      InquiryId inquiryId,
      int seq,
      SenderType senderType,
      String body) {
    this.messageId = messageId;
    this.inquiryId = inquiryId;
    this.seq = seq;
    this.senderType = senderType;
    this.body = body;
  }

  public static InquiryMessageModel newMessage(
      InquiryId inquiryId, int seq, SenderType senderType, String body) {
    return new InquiryMessageModel(null, inquiryId, seq, senderType, body);
  }

  public static InquiryMessageModel reconstruct(
      Long messageId, Long inquiryId, int seq, String senderType, String body) {
    return new InquiryMessageModel(
        new InquiryMessageId(messageId),
        new InquiryId(inquiryId),
        seq,
        SenderType.fromCode(senderType),
        body);
  }
}