From 384e17e79c771df5ab5dec2b2afa426cffe55109 Mon Sep 17 00:00:00 2001 From: zihluwang Date: Thu, 23 Apr 2026 16:10:05 +0800 Subject: [PATCH] feat: add AccessoryResponse and TuningResponse DTOs for accessory and tuning data representation --- .../domain/dto/AccessoryResponse.java | 22 +++++++++++++++++++ .../domain/dto/ModificationResponse.java | 4 ++++ .../domain/dto/TuningResponse.java | 16 ++++++++++++++ 3 files changed, 42 insertions(+) create mode 100644 src/main/java/com/onixbyte/deltaforceguide/domain/dto/AccessoryResponse.java create mode 100644 src/main/java/com/onixbyte/deltaforceguide/domain/dto/TuningResponse.java diff --git a/src/main/java/com/onixbyte/deltaforceguide/domain/dto/AccessoryResponse.java b/src/main/java/com/onixbyte/deltaforceguide/domain/dto/AccessoryResponse.java new file mode 100644 index 0000000..421410d --- /dev/null +++ b/src/main/java/com/onixbyte/deltaforceguide/domain/dto/AccessoryResponse.java @@ -0,0 +1,22 @@ +package com.onixbyte.deltaforceguide.domain.dto; + +import com.onixbyte.deltaforceguide.domain.entity.Accessory; + +import java.util.List; + +public record AccessoryResponse( + String slotName, + String accessoryName, + List tunings +) { + public static AccessoryResponse from(Accessory accessory) { + return new AccessoryResponse( + accessory.getSlotName(), + accessory.getAccessoryName(), + accessory.getTunings() == null + ? List.of() + : accessory.getTunings().stream().map(TuningResponse::from).toList() + ); + } +} + diff --git a/src/main/java/com/onixbyte/deltaforceguide/domain/dto/ModificationResponse.java b/src/main/java/com/onixbyte/deltaforceguide/domain/dto/ModificationResponse.java index 7eb6384..c4d4492 100644 --- a/src/main/java/com/onixbyte/deltaforceguide/domain/dto/ModificationResponse.java +++ b/src/main/java/com/onixbyte/deltaforceguide/domain/dto/ModificationResponse.java @@ -10,6 +10,7 @@ public record ModificationResponse( String name, String code, List tags, + List accessories, String note, String author, String videoUrl @@ -21,6 +22,9 @@ public record ModificationResponse( modification.getName(), modification.getCode(), modification.getTags(), + modification.getAccessories() == null + ? List.of() + : modification.getAccessories().stream().map(AccessoryResponse::from).toList(), modification.getNote(), modification.getAuthor(), modification.getVideoUrl() diff --git a/src/main/java/com/onixbyte/deltaforceguide/domain/dto/TuningResponse.java b/src/main/java/com/onixbyte/deltaforceguide/domain/dto/TuningResponse.java new file mode 100644 index 0000000..3f6febf --- /dev/null +++ b/src/main/java/com/onixbyte/deltaforceguide/domain/dto/TuningResponse.java @@ -0,0 +1,16 @@ +package com.onixbyte.deltaforceguide.domain.dto; + +import com.onixbyte.deltaforceguide.domain.entity.Tuning; + +public record TuningResponse( + String tuningName, + Double tuningValue +) { + public static TuningResponse from(Tuning tuning) { + return new TuningResponse( + tuning.getTuningName(), + tuning.getTuningValue() + ); + } +} +