InquiryConverter.java
package com.hwhub.backend.infrastructure.mybatis.converter;
import com.hwhub.backend.domain.enums.InquiryCategory;
import com.hwhub.backend.domain.enums.InquiryStatus;
import com.hwhub.backend.domain.model.inquiry.InquiryAdmin;
import com.hwhub.backend.domain.model.inquiry.InquiryId;
import com.hwhub.backend.domain.model.inquiry.InquiryMessageModel;
import com.hwhub.backend.domain.model.inquiry.InquiryModel;
import com.hwhub.backend.domain.model.inquiry.InquirySummary;
import com.hwhub.backend.infrastructure.mybatis.custom.entity.AdminInquiryEntity;
import com.hwhub.backend.infrastructure.mybatis.custom.entity.InquiryWithMessagesEntity;
import com.hwhub.backend.infrastructure.mybatis.generated.entity.TInquiry;
import com.hwhub.backend.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) {
if (entity == null) {
return null;
}
List<InquiryMessageModel> messageModels =
entity.getMessages() == null
? Collections.emptyList()
: entity.getMessages().stream().map(InquiryConverter::toMessageModel).toList();
return InquiryModel.reconstruct(
entity.getInquiryId(),
entity.getUserId(),
entity.getCategory(),
entity.getStatus(),
entity.getTitle(),
messageModels,
DateConverter.toLocalDateTime(entity.getCreatedAt()));
}
public static InquirySummary toSummary(TInquiry entity) {
if (entity == null) {
return null;
}
return new InquirySummary(
new InquiryId(entity.getInquiryId()),
InquiryCategory.fromCode(entity.getCategory()),
InquiryStatus.fromCode(entity.getStatus()),
entity.getTitle(),
DateConverter.toLocalDateTime(entity.getCreatedAt()));
}
public static InquiryAdmin toModel4Admin(AdminInquiryEntity entity) {
if (entity == null) {
return null;
}
return new InquiryAdmin(
entity.getInquiryId(),
entity.getUserId(),
entity.getUserEmail(),
entity.getUserDisplayName(),
entity.getCategory(),
entity.getStatus(),
entity.getTitle(),
entity.getCreatedAt(),
entity.getUpdatedAt(),
entity.getTotalMessageCount(),
entity.getUserMessageCount(),
entity.getAiMessageCount(),
entity.getStaffMessageCount());
}
public static TInquiry toEntity(InquiryModel inquiry) {
if (inquiry == null) {
return null;
}
TInquiry entity = new TInquiry();
if (inquiry.getInquiryId() != null) {
entity.setInquiryId(inquiry.getInquiryId().value());
}
entity.setUserId(inquiry.getUserId());
entity.setCategory(inquiry.getCategory().getCode());
entity.setStatus(inquiry.getStatus().getCode());
entity.setTitle(inquiry.getTitle());
return entity;
}
public static InquiryMessageModel toMessageModel(TInquiryMessage entity) {
if (entity == null) {
return null;
}
return InquiryMessageModel.reconstruct(
entity.getMessageId(),
entity.getInquiryId(),
entity.getSeq(),
entity.getSenderType(),
entity.getBody(),
DateConverter.toLocalDateTime(entity.getCreatedAt()));
}
public static TInquiryMessage toMessageEntity(InquiryMessageModel message) {
if (message == null) {
return null;
}
TInquiryMessage entity = new TInquiryMessage();
if (message.getMessageId() != null) {
entity.setMessageId(message.getMessageId().value());
}
if (message.getInquiryId() != null) {
entity.setInquiryId(message.getInquiryId().value());
}
entity.setSeq(message.getSeq());
entity.setSenderType(message.getSenderType().getCode());
entity.setBody(message.getBody());
return entity;
}
}