Skip to content

Commit

Permalink
refactor: 사전 식물 필드 VO 래핑
Browse files Browse the repository at this point in the history
  • Loading branch information
Kim0914 committed Dec 28, 2023
1 parent c0dde1a commit 988a3d8
Show file tree
Hide file tree
Showing 21 changed files with 576 additions and 333 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
package com.official.pium.domain;

import com.official.pium.domain.vo.CareDetail;
import com.official.pium.domain.vo.Classification;
import com.official.pium.domain.vo.Property;
import jakarta.persistence.Column;
import jakarta.persistence.Embedded;
import jakarta.persistence.Entity;
Expand All @@ -24,87 +27,41 @@ public class DictionaryPlant extends BaseEntity {
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@Column(name = "name")
private String name;

@Column(name = "image_url")
private String imageUrl;

@Column(name = "family_name")
private String familyName;

@Column(name = "smell")
private String smell;

@Column(name = "poison")
private String poison;

@Column(name = "manage_level")
private String manageLevel;

@Column(name = "grow_speed")
private String growSpeed;

@Column(name = "require_temp")
private String requireTemp;

@Column(name = "minimum_temp")
private String minimumTemp;

@Column(name = "require_humidity")
private String requireHumidity;

@Column(name = "posting_place")
private String postingPlace;
@Embedded
private Classification classification;

@Column(name = "special_manage_info")
private String specialManageInfo;
@Embedded
private Property property;

@Embedded
private WaterCycle waterCycle;
private CareDetail careDetail;

@Builder
private DictionaryPlant(String name, String imageUrl, String familyName, String smell, String poison,
String manageLevel, String growSpeed, String requireTemp, String minimumTemp,
String requireHumidity, String postingPlace, String specialManageInfo,
WaterCycle waterCycle) {
this.name = name;
public DictionaryPlant(
String imageUrl,
Classification classification,
Property property,
CareDetail careDetail
) {
this.imageUrl = imageUrl;
this.familyName = familyName;
this.smell = smell;
this.poison = poison;
this.manageLevel = manageLevel;
this.growSpeed = growSpeed;
this.requireTemp = requireTemp;
this.minimumTemp = minimumTemp;
this.requireHumidity = requireHumidity;
this.postingPlace = postingPlace;
this.specialManageInfo = specialManageInfo;
this.waterCycle = waterCycle;
this.classification = classification;
this.property = property;
this.careDetail = careDetail;
}

public void updateDictionaryPlant(String name, String imageUrl, String familyName, String smell, String poison,
String manageLevel, String growSpeed, String requireTemp, String minimumTemp,
String requireHumidity, String postingPlace, String specialManageInfo,
String spring, String summer, String autumn, String winter) {
this.name = name;
public void updateDictionaryPlant(
String imageUrl,
Classification classification,
Property property,
CareDetail careDetail
) {
this.imageUrl = imageUrl;
this.familyName = familyName;
this.smell = smell;
this.poison = poison;
this.manageLevel = manageLevel;
this.growSpeed = growSpeed;
this.requireTemp = requireTemp;
this.minimumTemp = minimumTemp;
this.requireHumidity = requireHumidity;
this.postingPlace = postingPlace;
this.specialManageInfo = specialManageInfo;
this.waterCycle = WaterCycle.builder()
.spring(spring)
.summer(summer)
.autumn(autumn)
.winter(winter)
.build();
this.classification = classification;
this.property = property;
this.careDetail = careDetail;
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
package com.official.pium.domain.vo;

import com.official.pium.domain.WaterCycle;
import jakarta.persistence.Column;
import jakarta.persistence.Embeddable;
import jakarta.persistence.Embedded;
import lombok.AccessLevel;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Getter
@Embeddable
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class CareDetail {

@Embedded
private Temperature temperature;

@Column(name = "require_humidity")
private String requireHumidity;

@Column(name = "posting_place")
private String postingPlace;

@Column(name = "special_manage_info")
private String specialManageInfo;

@Embedded
private WaterCycle waterCycle;

@Builder
public CareDetail(
Temperature temperature,
String requireHumidity,
String postingPlace,
String specialManageInfo,
WaterCycle waterCycle
) {
this.temperature = temperature;
this.requireHumidity = requireHumidity;
this.postingPlace = postingPlace;
this.specialManageInfo = specialManageInfo;
this.waterCycle = waterCycle;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package com.official.pium.domain.vo;

import jakarta.persistence.Column;
import jakarta.persistence.Embeddable;
import lombok.AccessLevel;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Getter
@Embeddable
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class Classification {

@Column(name = "name")
private String name;

@Column(name = "family_name")
private String familyName;

@Builder
public Classification(String name, String familyName) {
this.name = name;
this.familyName = familyName;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package com.official.pium.domain.vo;

import jakarta.persistence.Column;
import jakarta.persistence.Embeddable;
import lombok.AccessLevel;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Getter
@Embeddable
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class Property {

@Column(name = "smell")
private String smell;

@Column(name = "poison")
private String poison;

@Column(name = "manage_level")
private String manageLevel;

@Column(name = "grow_speed")
private String growSpeed;

@Builder
public Property(String smell, String poison, String manageLevel, String growSpeed) {
this.smell = smell;
this.poison = poison;
this.manageLevel = manageLevel;
this.growSpeed = growSpeed;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package com.official.pium.domain.vo;

import jakarta.persistence.Column;
import jakarta.persistence.Embeddable;
import lombok.AccessLevel;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Getter
@Embeddable
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class Temperature {

@Column(name = "require_temp")
private String requireTemp;

@Column(name = "minimum_temp")
private String minimumTemp;

@Builder
public Temperature(String requireTemp, String minimumTemp) {
this.requireTemp = requireTemp;
this.minimumTemp = minimumTemp;
}
}

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,8 @@ private static SingleGardenResponse toSingleGardenResponse(Garden garden) {
.id(garden.getId())
.createdAt(garden.getCreatedAt())
.updatedAt(garden.getUpdatedAt())
.dictionaryPlantName(garden.getDictionaryPlant().getName())
.dictionaryPlantName(garden.getDictionaryPlant().getClassification()
.getName())
.content(garden.getContent())
.manageLevel(garden.getManageLevel())
.petPlant(toPetPlantInfo(garden))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ public static PetPlantResponse toPetPlantResponse(PetPlant petPlant, Long dday,
.daySince(daySince)
.dictionaryPlant(PetPlantResponse.DictionaryPlantResponse.builder()
.id(dictionaryPlant.getId())
.name(dictionaryPlant.getName())
.name(dictionaryPlant.getClassification().getName())
.build()
)
.build();
Expand All @@ -80,7 +80,7 @@ public static PetPlantResponse toPetPlantResponse(PetPlant petPlant, Long dday,
.daySince(daySince)
.dictionaryPlant(PetPlantResponse.DictionaryPlantResponse.builder()
.id(dictionaryPlant.getId())
.name(dictionaryPlant.getName())
.name(dictionaryPlant.getClassification().getName())
.build()
)
.secondLastWaterDate(secondLastWaterDate)
Expand All @@ -92,7 +92,7 @@ public static SinglePetPlantResponse toSinglePetPlantResponse(PetPlant petPlant,
.id(petPlant.getId())
.nickname(petPlant.getNickname())
.imageUrl(petPlant.getImageUrl())
.dictionaryPlantName(petPlant.getDictionaryPlant().getName())
.dictionaryPlantName(petPlant.getDictionaryPlant().getClassification().getName())
.birthDate(petPlant.getBirthDate())
.daySince(daySince)
.build();
Expand All @@ -103,7 +103,7 @@ public static ReminderResponse toReminderResponse(PetPlant petPlant, Long dday)
.petPlantId(petPlant.getId())
.image(petPlant.getImageUrl())
.nickName(petPlant.getNickname())
.dictionaryPlantName(petPlant.getDictionaryPlant().getName())
.dictionaryPlantName(petPlant.getDictionaryPlant().getClassification().getName())
.dday(dday)
.nextWaterDate(petPlant.getNextWaterDate())
.lastWaterDate(petPlant.getLastWaterDate())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,5 @@

public interface DictionaryPlantRepository extends JpaRepository<DictionaryPlant, Long> {

List<DictionaryPlant> findDictionaryPlantsByNameContains(String name);
List<DictionaryPlant> findDictionaryPlantsByClassification_NameContains(String name);
}
Loading

0 comments on commit 988a3d8

Please sign in to comment.