InquiryConverter.java
package com.hwhub.batch.infrastructure.mybatis.converter;
import com.hwhub.batch.domain.enums.LocaleType;
import com.hwhub.batch.domain.model.inquiry.InquiryMessageModel;
import com.hwhub.batch.domain.model.inquiry.InquiryModel;
import com.hwhub.batch.infrastructure.mybatis.custom.entity.InquiryWithMessagesEntity;
import com.hwhub.batch.infrastructure.mybatis.generated.entity.TInquiryMessage;
import java.util.Collections;
import java.util.List;
import org.springframework.stereotype.Component;
@Component
public final class InquiryConverter {
public static InquiryModel toModel(InquiryWithMessagesEntity entity) {
List<InquiryMessageModel> messages =
entity.getMessages() == null
? Collections.emptyList()
: entity.getMessages().stream().map(InquiryConverter::toMessageModel).toList();
String localeCode = entity.getUserLocale();
LocaleType locale;
try {
locale = LocaleType.fromCode(localeCode != null ? localeCode : "ja");
} catch (IllegalArgumentException e) {
locale = LocaleType.JA;
}
return InquiryModel.reconstruct(
entity.getInquiryId(),
entity.getUserId(),
entity.getTitle(),
entity.getStatus(),
messages,
locale);
}
public static InquiryMessageModel toMessageModel(TInquiryMessage entity) {
return InquiryMessageModel.reconstruct(
entity.getMessageId(),
entity.getInquiryId(),
entity.getSeq(),
entity.getSenderType(),
entity.getBody());
}
}