diff --git a/backend/.gitignore b/backend/.gitignore index 64ce27d1f..6e5902f19 100644 --- a/backend/.gitignore +++ b/backend/.gitignore @@ -2,6 +2,10 @@ # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 +build +.gradle +.gradle/**/* + # User-specific stuff .idea/**/workspace.xml .idea/**/tasks.xml diff --git a/backend/.gradle/6.8.3/fileHashes/fileHashes.lock b/backend/.gradle/6.8.3/fileHashes/fileHashes.lock index aa5895aba..91fa0e741 100644 Binary files a/backend/.gradle/6.8.3/fileHashes/fileHashes.lock and b/backend/.gradle/6.8.3/fileHashes/fileHashes.lock differ diff --git a/backend/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/backend/.gradle/buildOutputCleanup/buildOutputCleanup.lock index 477ff4e56..406a84072 100644 Binary files a/backend/.gradle/buildOutputCleanup/buildOutputCleanup.lock and b/backend/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ diff --git a/backend/.gradle/buildOutputCleanup/cache.properties b/backend/.gradle/buildOutputCleanup/cache.properties index ba7cfe071..54578b563 100644 --- a/backend/.gradle/buildOutputCleanup/cache.properties +++ b/backend/.gradle/buildOutputCleanup/cache.properties @@ -1,2 +1,2 @@ -#Tue Apr 20 01:45:16 KST 2021 -gradle.version=6.8.3 +#Thu Apr 29 14:48:25 KST 2021 +gradle.version=7.0 diff --git a/backend/.gradle/checksums/checksums.lock b/backend/.gradle/checksums/checksums.lock index fd6d57e62..fa673f4e3 100644 Binary files a/backend/.gradle/checksums/checksums.lock and b/backend/.gradle/checksums/checksums.lock differ diff --git a/backend/README.md b/backend/README.md index a70de8974..e214342c6 100644 --- a/backend/README.md +++ b/backend/README.md @@ -5,3 +5,13 @@ ## API 배포 링크 http://3.37.26.82:8080/swagger-ui.html + +## 로컬 IntelliJ 로 실행하는 법 + +Edit Configurations 에서 Active profile 을 "dev" 혹은 "prod" 로 설정하자 + +## 빌드한 jar 를 실행하는 법 + +```sh +java -jar SideDish-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev +``` diff --git a/backend/build.gradle b/backend/build.gradle index ee7b74215..06d34179f 100644 --- a/backend/build.gradle +++ b/backend/build.gradle @@ -17,7 +17,9 @@ dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' developmentOnly 'org.springframework.boot:spring-boot-devtools' testImplementation 'org.springframework.boot:spring-boot-starter-test' + runtimeOnly 'mysql:mysql-connector-java' + runtimeOnly 'com.h2database:h2' // swagger implementation 'io.springfox:springfox-swagger2:2.9.2' diff --git a/backend/gradle/wrapper/gradle-wrapper.properties b/backend/gradle/wrapper/gradle-wrapper.properties index 442d9132e..f371643ee 100644 --- a/backend/gradle/wrapper/gradle-wrapper.properties +++ b/backend/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/backend/gradlew b/backend/gradlew old mode 100644 new mode 100755 diff --git a/backend/gradlew.bat b/backend/gradlew.bat index 107acd32c..ac1b06f93 100644 --- a/backend/gradlew.bat +++ b/backend/gradlew.bat @@ -1,89 +1,89 @@ -@rem -@rem Copyright 2015 the original author or authors. -@rem -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem https://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. -@rem - -@if "%DEBUG%" == "" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Resolve any "." and ".." in APP_HOME to make it shorter. -for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto execute - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto execute - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* - -:end -@rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/backend/src/main/java/com/codesquad/sidedish/SideDish/SideDishApplication.java b/backend/src/main/java/com/codesquad/sidedish/SideDish/SideDishApplication.java index 60bdbe314..42166d35c 100644 --- a/backend/src/main/java/com/codesquad/sidedish/SideDish/SideDishApplication.java +++ b/backend/src/main/java/com/codesquad/sidedish/SideDish/SideDishApplication.java @@ -6,11 +6,7 @@ import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration; import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration; -// FIXME: DB 연동을 무효화하기 위해서 임시로 exclude 함, 나중에 수정할 예정 -@SpringBootApplication(exclude = { - DataSourceAutoConfiguration.class, - DataSourceTransactionManagerAutoConfiguration.class, - HibernateJpaAutoConfiguration.class}) +@SpringBootApplication public class SideDishApplication { public static void main(String[] args) { diff --git a/backend/src/main/java/com/codesquad/sidedish/SideDish/controller/DishController.java b/backend/src/main/java/com/codesquad/sidedish/SideDish/controller/DishController.java index 72666101c..33e43a3e3 100644 --- a/backend/src/main/java/com/codesquad/sidedish/SideDish/controller/DishController.java +++ b/backend/src/main/java/com/codesquad/sidedish/SideDish/controller/DishController.java @@ -7,10 +7,7 @@ import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import java.util.List; @@ -53,24 +50,34 @@ public ResponseEntity getDetailQuantity(@ApiParam("요리의 식별 return ResponseEntity.ok().body(quantityDto); } + @PatchMapping("/detail/{detailHash}/{count}") + @ApiOperation(value = "주문하기", notes = "주문하기") + public ResponseEntity orderDish(@ApiParam("요리의 식별자") @PathVariable("detailHash") String detailHash, @PathVariable("count") int count) { + if (dishService.order(detailHash, count)) { + return ResponseEntity.ok().body("주문완료"); + } + return ResponseEntity.ok().body("주문불가"); + } + @GetMapping("/main") @ApiOperation(value = "메인 요리", notes = "메인 요리의 목록을 반환합니다.") public ResponseEntity> getMainList() { - List dishes = dishService.getList(1); + List dishes = dishService.getList(1L); + return ResponseEntity.ok().body(dishes); + } + + @GetMapping("/soup") + @ApiOperation(value = "국물 요리", notes = "국물 요리의 목록을 반환합니다.") + public ResponseEntity> getSoupList() { + List dishes = dishService.getList(2L); return ResponseEntity.ok().body(dishes); } @GetMapping("/side") @ApiOperation(value = "반찬 요리", notes = "반찬 요리의 목록을 반환합니다.") public ResponseEntity> getSideList() { - List dishes = dishService.getList(3); + List dishes = dishService.getList(3L); return ResponseEntity.ok().body(dishes); } - @GetMapping("/soup") - @ApiOperation(value = "국물 요리", notes = "국물 요리의 목록을 반환합니다.") - public ResponseEntity> getSoupList() { - List dishes = dishService.getList(2); - return ResponseEntity.ok().body(dishes); - } } diff --git a/backend/src/main/java/com/codesquad/sidedish/SideDish/domain/Category.java b/backend/src/main/java/com/codesquad/sidedish/SideDish/domain/Category.java index c25d3fcd1..6048b61ea 100644 --- a/backend/src/main/java/com/codesquad/sidedish/SideDish/domain/Category.java +++ b/backend/src/main/java/com/codesquad/sidedish/SideDish/domain/Category.java @@ -1,11 +1,14 @@ package com.codesquad.sidedish.SideDish.domain; +import org.springframework.data.annotation.Id; + public class Category { - private final long id; + @Id + private final Long id; private final String categoryName; private final String endPoint; - public Category(long id, String categoryName, String endPoint) { + public Category(Long id, String categoryName, String endPoint) { this.id = id; this.categoryName = categoryName; this.endPoint = endPoint; @@ -22,4 +25,13 @@ public String getCategoryName() { public String getEndPoint() { return endPoint; } + + @Override + public String toString() { + return "Category{" + + "id=" + id + + ", categoryName='" + categoryName + '\'' + + ", endPoint='" + endPoint + '\'' + + '}'; + } } diff --git a/backend/src/main/java/com/codesquad/sidedish/SideDish/domain/CategoryMockRepository.java b/backend/src/main/java/com/codesquad/sidedish/SideDish/domain/CategoryMockRepository.java deleted file mode 100644 index cdf6378dc..000000000 --- a/backend/src/main/java/com/codesquad/sidedish/SideDish/domain/CategoryMockRepository.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.codesquad.sidedish.SideDish.domain; - -import java.util.Arrays; -import java.util.List; - -public class CategoryMockRepository implements CategoryRepository { - private final List categories = Arrays.asList( - new Category(1, "모두가 좋아하는 든든한 메인요리", "/main"), - new Category(2, "뜨끈하고 시원한 국물요리", "/soup"), - new Category(3, "밥도둑이 여기있다! 반찬요리", "/side") - ); - - @Override - public List findAll() { - return categories; - } -} diff --git a/backend/src/main/java/com/codesquad/sidedish/SideDish/domain/CategoryRepository.java b/backend/src/main/java/com/codesquad/sidedish/SideDish/domain/CategoryRepository.java index 8d24c53bd..281dbb5e1 100644 --- a/backend/src/main/java/com/codesquad/sidedish/SideDish/domain/CategoryRepository.java +++ b/backend/src/main/java/com/codesquad/sidedish/SideDish/domain/CategoryRepository.java @@ -1,7 +1,12 @@ package com.codesquad.sidedish.SideDish.domain; +import org.springframework.data.jdbc.repository.query.Query; +import org.springframework.data.repository.CrudRepository; + import java.util.List; -public interface CategoryRepository { +public interface CategoryRepository extends CrudRepository { + @Override + @Query("SELECT * from sidedish.category") List findAll(); } diff --git a/backend/src/main/java/com/codesquad/sidedish/SideDish/domain/Delivery.java b/backend/src/main/java/com/codesquad/sidedish/SideDish/domain/Delivery.java new file mode 100644 index 000000000..733298492 --- /dev/null +++ b/backend/src/main/java/com/codesquad/sidedish/SideDish/domain/Delivery.java @@ -0,0 +1,33 @@ +package com.codesquad.sidedish.SideDish.domain; + +import java.util.Objects; + +public class Delivery { + private String deliveryType; + + public Delivery(String deliveryType) { + this.deliveryType = deliveryType; + } + + public String getDeliveryType() { + return deliveryType; + } + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Delivery delivery = (Delivery) o; + return Objects.equals(deliveryType, delivery.deliveryType); + } + + @Override + public int hashCode() { + return Objects.hash(deliveryType); + } +} diff --git a/backend/src/main/java/com/codesquad/sidedish/SideDish/domain/DeliveryRepository.java b/backend/src/main/java/com/codesquad/sidedish/SideDish/domain/DeliveryRepository.java new file mode 100644 index 000000000..b30d0e936 --- /dev/null +++ b/backend/src/main/java/com/codesquad/sidedish/SideDish/domain/DeliveryRepository.java @@ -0,0 +1,11 @@ +package com.codesquad.sidedish.SideDish.domain; + +import org.springframework.data.jdbc.repository.query.Query; +import org.springframework.data.repository.CrudRepository; + +import java.util.List; + +public interface DeliveryRepository extends CrudRepository { + @Query("SELECT delivery.* from sidedish.delivery INNER JOIN sidedish.dish_delivery ON delivery.id = dish_delivery.delivery WHERE dish_delivery.dish = :detailHash;") + List findAllByDish(String detailHash); +} diff --git a/backend/src/main/java/com/codesquad/sidedish/SideDish/domain/Dish.java b/backend/src/main/java/com/codesquad/sidedish/SideDish/domain/Dish.java index 27faf8853..746adf22f 100644 --- a/backend/src/main/java/com/codesquad/sidedish/SideDish/domain/Dish.java +++ b/backend/src/main/java/com/codesquad/sidedish/SideDish/domain/Dish.java @@ -1,152 +1,41 @@ package com.codesquad.sidedish.SideDish.domain; import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; -import java.util.List; +import java.util.Objects; public class Dish { private final String detailHash; private final String image; private final String title; private final String description; - private final List deliveryTypes; - private final int price; - private final int salePrice; - private final List badges; - - private final List thumbImages; - private final int point; + private final Integer price; + private final Integer salePrice; + private final Integer point; private final String deliveryInfo; - private final int deliveryFee; - private final List detailImages; - - private final long categoryId; - private final int quantity; - - // FIXME: 하드 코딩되었지만, AuditingEntityListener 로 자동화해야함 - private final LocalDateTime modifiedDateTime = LocalDateTime.of(2021, 4, 24, 21, 57); - - private Dish(Builder builder) { - this.detailHash = builder.detailHash; - this.image = builder.image; - this.deliveryTypes = builder.deliveryTypes; - this.title = builder.title; - this.description = builder.description; - this.price = builder.price; - this.salePrice = builder.salePrice; - this.badges = builder.badges; - - this.thumbImages = builder.thumbImages; - this.point = builder.point; - this.deliveryInfo = builder.deliveryInfo; - this.deliveryFee = builder.deliveryFee; - this.detailImages = builder.detailImages; - - this.categoryId = builder.categoryId; - this.quantity = builder.quantity; - } - - public static class Builder { - private String detailHash; - private String image; - private String title; - private String description; - private List deliveryTypes; - private int price; - private int salePrice; - private List badges; - - private List thumbImages; - private int point; - private String deliveryInfo; - private int deliveryFee; - private List detailImages; - - private long categoryId; - private int quantity; - - public Dish build() { - return new Dish(this); - } - - public Builder detailHash(String detailHash) { - this.detailHash = detailHash; - return this; - } - - public Builder image(String image) { - this.image = image; - return this; - } - - public Builder title(String title) { - this.title = title; - return this; - } - - public Builder description(String description) { - this.description = description; - return this; - } - - public Builder deliveryTypes(List deliveryTypes) { - this.deliveryTypes = deliveryTypes; - return this; - } - - public Builder price(int price) { - this.price = price; - return this; - } - - public Builder salePrice(int salePrice) { - this.salePrice = salePrice; - return this; - } - - public Builder badges(List badges) { - this.badges = badges; - return this; - } - - - public Builder thumbImages(List thumbImages) { - this.thumbImages = thumbImages; - return this; - } - - public Builder point(int point) { - this.point = point; - return this; - } - - public Builder deliveryInfo(String deliveryInfo) { - this.deliveryInfo = deliveryInfo; - return this; - } - - public Builder deliveryFee(int deliveryFee) { - this.deliveryFee = deliveryFee; - return this; - } - - public Builder detailImages(List detailSection) { - this.detailImages = detailSection; - return this; - } - - public Builder categoryId(long categoryId) { - this.categoryId = categoryId; - return this; - } - - public Builder quantity(int quantity) { - this.quantity = quantity; - return this; - } + private final Integer deliveryFee; + private final Long categoryId; + private Integer quantity; + private final LocalDateTime currentDateTime; + + public Dish(String detailHash, String image, String title, String description, Integer price, Integer salePrice, Integer point, String deliveryInfo, Integer deliveryFee, Long categoryId, Integer quantity, LocalDateTime currentDateTime) { + this.detailHash = detailHash; + this.image = image; + this.title = title; + this.description = description; + this.price = price; + this.salePrice = salePrice; + this.point = point; + this.deliveryInfo = deliveryInfo; + this.deliveryFee = deliveryFee; + this.categoryId = categoryId; + this.quantity = quantity; + this.currentDateTime = currentDateTime; + } + + public void order(int count) { + this.quantity -= count; } - public String getDetailHash() { return detailHash; } @@ -163,27 +52,15 @@ public String getDescription() { return description; } - public List getDeliveryTypes() { - return deliveryTypes; - } - - public int getPrice() { + public Integer getPrice() { return price; } - public int getSalePrice() { + public Integer getSalePrice() { return salePrice; } - public List getBadges() { - return badges; - } - - public List getThumbImages() { - return thumbImages; - } - - public int getPoint() { + public Integer getPoint() { return point; } @@ -191,28 +68,40 @@ public String getDeliveryInfo() { return deliveryInfo; } - public int getDeliveryFee() { + public Integer getDeliveryFee() { return deliveryFee; } - public List getDetailImages() { - return detailImages; - } - - - public long getCategoryId() { + public Long getCategoryId() { return categoryId; } - public int getQuantity() { + public Integer getQuantity() { return quantity; } + public LocalDateTime getCurrentDateTime() { + return currentDateTime; + } + public boolean refreshable(long lastUpdated) { - LocalDateTime parsedDateTime = LocalDateTime.parse( - String.format("20%d", lastUpdated), - DateTimeFormatter.ofPattern("yyyyMMddHHmm") - ); - return modifiedDateTime.isAfter(parsedDateTime); + return false; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Dish dish = (Dish) o; + return Objects.equals(detailHash, dish.detailHash) && Objects.equals(image, dish.image) && Objects.equals(title, dish.title) && Objects.equals(description, dish.description) && Objects.equals(price, dish.price) && Objects.equals(salePrice, dish.salePrice) && Objects.equals(point, dish.point) && Objects.equals(deliveryInfo, dish.deliveryInfo) && Objects.equals(deliveryFee, dish.deliveryFee) && Objects.equals(categoryId, dish.categoryId) && Objects.equals(quantity, dish.quantity) && Objects.equals(currentDateTime, dish.currentDateTime); + } + + @Override + public int hashCode() { + return Objects.hash(detailHash, image, title, description, price, salePrice, point, deliveryInfo, deliveryFee, categoryId, quantity, currentDateTime); } } diff --git a/backend/src/main/java/com/codesquad/sidedish/SideDish/domain/DishDao.java b/backend/src/main/java/com/codesquad/sidedish/SideDish/domain/DishDao.java new file mode 100644 index 000000000..cecbb8495 --- /dev/null +++ b/backend/src/main/java/com/codesquad/sidedish/SideDish/domain/DishDao.java @@ -0,0 +1,72 @@ +package com.codesquad.sidedish.SideDish.domain; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.jdbc.core.PreparedStatementCreator; +import org.springframework.jdbc.core.PreparedStatementSetter; +import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate; +import org.springframework.stereotype.Repository; + +import javax.sql.DataSource; +import java.sql.PreparedStatement; +import java.sql.SQLException; +import java.sql.Timestamp; +import java.util.Date; +import java.util.Optional; + +@Repository +public class DishDao { + private Logger logger = LoggerFactory.getLogger(DishDao.class); + + private JdbcTemplate jdbcTemplate; + private NamedParameterJdbcTemplate namedParameterJdbcTemplate; + + @Autowired + public DishDao(DataSource dataSource) { + jdbcTemplate = new JdbcTemplate(dataSource); + namedParameterJdbcTemplate = new NamedParameterJdbcTemplate(dataSource); + } + + + public DishList findAllByCategoryId(Long categoryId) { + String sql = "SELECT dish.*, delivery.delivery_type, sale.badge, sale.sale_type, sale.sale_value from sidedish.dish" + + " LEFT OUTER JOIN sidedish.dish_delivery ON dish.detail_hash = dish_delivery.dish" + + " LEFT OUTER JOIN sidedish.delivery ON delivery.id = dish_delivery.delivery" + + " LEFT OUTER JOIN sidedish.dish_sale ON dish.detail_hash = dish_sale.dish" + + " LEFT OUTER JOIN sidedish.sale ON sale.id = dish_sale.sale" + + " WHERE dish.category_id = ?" + categoryId; + + PreparedStatementSetter pstmSetter = ps -> { + ps.setLong(1, categoryId); + }; + + DishList dishList = new DishList(); + jdbcTemplate.query(sql, pstmSetter,(rs, rowNum) -> { + Dish dish = new Dish( + rs.getString("detail_hash"), + rs.getString("image"), + rs.getString("title"), + rs.getString("description"), + rs.getInt("price"), + rs.getInt("sale_price"), + rs.getInt("point"), + rs.getString("delivery_info"), + rs.getInt("delivery_fee"), + rs.getLong("category_id"), + rs.getInt("quantity"), + Optional.ofNullable(rs.getTimestamp("current_date_time")).orElse(new Timestamp(new Date().getTime())).toLocalDateTime() + ); + + Delivery delivery = new Delivery(rs.getString("delivery_type")); + Sale sale = new Sale(rs.getString("badge"), + rs.getString("sale_type"), + rs.getInt("sale_value")); + dishList.addDish(dish, delivery, sale); + + return null; + }); + return dishList; + } +} diff --git a/backend/src/main/java/com/codesquad/sidedish/SideDish/domain/DishList.java b/backend/src/main/java/com/codesquad/sidedish/SideDish/domain/DishList.java new file mode 100644 index 000000000..b05641d50 --- /dev/null +++ b/backend/src/main/java/com/codesquad/sidedish/SideDish/domain/DishList.java @@ -0,0 +1,37 @@ +package com.codesquad.sidedish.SideDish.domain; + +import java.util.HashMap; +import java.util.LinkedHashSet; +import java.util.Map; +import java.util.Set; + +public class DishList { + private final Set dishes = new LinkedHashSet<>(); + private final Map> deliveriesMap = new HashMap<>(); + private final Map> salesMap = new HashMap<>(); + + public void addDish(Dish dish, Delivery delivery, Sale sale) { + dishes.add(dish); + + Set deliveries = getDeliveries(dish); + Set sales = getSales(dish); + + deliveries.add(delivery); + sales.add(sale); + + deliveriesMap.put(dish, deliveries); + salesMap.put(dish, sales); + } + + public Set getDishes() { + return dishes; + } + + public Set getDeliveries(Dish dish) { + return deliveriesMap.getOrDefault(dish, new LinkedHashSet<>()); + } + + public Set getSales(Dish dish) { + return salesMap.getOrDefault(dish, new LinkedHashSet<>()); + } +} diff --git a/backend/src/main/java/com/codesquad/sidedish/SideDish/domain/DishMockRepository.java b/backend/src/main/java/com/codesquad/sidedish/SideDish/domain/DishMockRepository.java deleted file mode 100644 index d57a07409..000000000 --- a/backend/src/main/java/com/codesquad/sidedish/SideDish/domain/DishMockRepository.java +++ /dev/null @@ -1,217 +0,0 @@ -package com.codesquad.sidedish.SideDish.domain; - -import java.util.Arrays; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; - -import static com.codesquad.sidedish.SideDish.domain.Dish.Builder; - -public class DishMockRepository implements DishRepository { - Map dishes = new LinkedHashMap<>(); - - public DishMockRepository() { - dishes.put("HBDEF", new Builder() - .detailHash("HBDEF") - .categoryId(1) // 메인요리 - .title("[미노리키친] 규동 250g") - .description("일본인의 소울푸드! 한국인도 좋아하는 소고기덮밥") - .badges(Arrays.asList("이벤트특가", "메인특가")) - .salePrice(5200) - .price(6500) - .point(52) - .quantity(5) - .deliveryFee(2500) - .deliveryTypes(Arrays.asList("새벽배송", "전국택배")) - .deliveryInfo("서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가) [화 · 수 · 목 · 금 · 토] 수령 가능한 상품입니다.") - .image("http://public.codesquad.kr/jk/storeapp/data/2d3f99a9a35601f4e98837bc4d39b2c8.jpg") - .thumbImages(Arrays.asList( - "http://public.codesquad.kr/jk/storeapp/data/detail/HBDEF/4cce011a4a352c22cd399a60271b4921.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/HBDEF/6ef14155afc5b47e8c9efd762f7a6096.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/HBDEF/8744504ff3bc315f901dca1f26fe63a1.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/HBDEF/e30bd6de9340fc05db3cd1d1329b2c56.jpg")) - .detailImages(Arrays.asList( - "http://public.codesquad.kr/jk/storeapp/data/detail/HBDEF/9c2c53b40a11b79c90549a058c2da4b7.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/HBDEF/70b0c77d3ef5cdd6269588685bbefe43.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/HBDEF/72f1049b047f65f42a267d5bbd1e6204.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/HBDEF/768afd17faa8bf3461b8160ba0aa26bf.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/HBDEF/95816f09d3294641f2e0feacaa739991.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/HBDEF/2450219a4686d9d6d579fc04020929b4.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/HBDEF/4971475295545ec336c9479fabb25364.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/HBDEF/a8c434715709fe855f3ea1554ec362b6.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/HBDEF/b2b3d0d2107ab91b16e0eb804cd84bc9.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/HBDEF/c0dd6887c9d9368604fc70d7fc3c4598.jpg" - )) - .build()); - - dishes.put("HDF73", new Builder() - .detailHash("HDF73") - .categoryId(1) // 메인요리 - .title("[빅마마의밥친구] 아삭 고소한 연근고기조림 250g") - .description("편식하는 아이도 좋아하는 건강한 연근조림") - .price(5500) - .point(55) - .quantity(5) - .deliveryFee(2500) - .deliveryTypes(Arrays.asList("새벽배송", "전국택배")) - .deliveryInfo("서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가) [화 · 수 · 목 · 금 · 토] 수령 가능한 상품입니다.") - .image("http://public.codesquad.kr/jk/storeapp/data/7674311a02ba7c88675f3186ddaeef9e.jpg") - .thumbImages(Arrays.asList( - "http://public.codesquad.kr/jk/storeapp/data/detail/HDF73/0f95f44ea8e2e7930321def493753a48.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/HDF73/2d408898494ac950d7d2cfd6c36d59c2.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/HDF73/62c8bb77facfc9c3be81f9bf45b27f2a.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/HDF73/f6d73afc0ebc1efa71eaea32e9d846f2.jpg")) - .detailImages(Arrays.asList( - "http://public.codesquad.kr/jk/storeapp/data/detail/HDF73/9bd9158fb5ffbc46708b7928ee50708e.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/HDF73/5f73c5c80b62ef63c8a8eecefe32fc29.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/HDF73/9bd9158fb5ffbc46708b7928ee50708e.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/HDF73/0253cdebc4972fefd6b94458024fe765.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/HDF73/3299da0677b50c8c519adc0335271c49.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/HDF73/0642265b65dcc2490ab164ff428cbfe2.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/HDF73/695683493c1ae475a175475f50d3259f.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/HDF73/c8f9bed4f5c07585b869e3d171904a93.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/HDF73/d2e3274c95c832bc9bfbcebbd548f61b.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/HDF73/d9e4fa00652483d74b46317d38159a2f.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/HDF73/d7799b67683128642453f9e2b4c8ce84.jpg" - )) - .build()); - - dishes.put("HAA47", new Builder() - .detailHash("HAA47") - .categoryId(2) // 국. 찌개 - .title("[집밥의완성] 스키야키 1.5kg (2~3인분)") - .description("진한 풍미의 일본식 전골, 스키야키") - .badges(Arrays.asList("이벤트특가")) - .salePrice(10000) - .price(19800) - .point(100) - .quantity(5) - .deliveryFee(2500) - .deliveryTypes(Arrays.asList("새벽배송", "전국택배")) - .deliveryInfo("서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가) [화 · 수 · 목 · 금 · 토] 수령 가능한 상품입니다.") - .image("http://public.codesquad.kr/jk/storeapp/data/detail/HAA47/4e96f386d5a5c4459bc0ac6ffd0c1fce.jpg") - .thumbImages(Arrays.asList( - "http://public.codesquad.kr/jk/storeapp/data/detail/HAA47/4e96f386d5a5c4459bc0ac6ffd0c1fce.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/HAA47/00327d0df92e29bad02e7387349bed53.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/HAA47/781fea32c56eb102429902a2f62cbaf3.jpg")) - .detailImages(Arrays.asList( - "http://public.codesquad.kr/jk/storeapp/data/detail/HAA47/edd7a54096d6df1b8bc8b318cea0191c.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/HAA47/fb8e6e21faa8284021c1b1c7a1ae1281.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/HAA47/36a0566d2fb69a4bcea946727181836d.jpg" - )) - .build()); - - dishes.put("H26C7", new Builder() - .detailHash("H26C7") - .categoryId(2) // 국. 찌개 - .title("[모이세] 육개장 1팩(600g)") - .description("제주3대해장국 맛집의 인기메뉴") - .badges(Arrays.asList("론칭특가")) - .salePrice(4400) - .price(5500) - .point(44) - .quantity(5) - .deliveryFee(2500) - .deliveryTypes(Arrays.asList("새벽배송", "전국택배")) - .deliveryInfo("서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가) [화 · 수 · 목 · 금 · 토] 수령 가능한 상품입니다.") - .image("http://public.codesquad.kr/jk/storeapp/data/8fd330b5f5dbccbcbf4f5731e5e9e29b.jpg") - .thumbImages(Arrays.asList( - "http://public.codesquad.kr/jk/storeapp/data/detail/H26C7/2ad963a9f63d371826748c852a0025c3.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/H26C7/f945d8ac1dccc3f931bcaf35de5de582.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/H26C7/bacb0b8186371bfafbd92dbeec718e13.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/H26C7/b96b02e9a956c6d5ad1e10eb14ba81e0.jpg")) - .detailImages(Arrays.asList( - "http://public.codesquad.kr/jk/storeapp/data/detail/H26C7/3d67aabd2751620367e1d1ac3e3d7ef2.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/H26C7/855b42b4e80162e6930f06aa80bd1272.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/H26C7/1966de56cf138639d5d50d4bf2db8e72.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/H26C7/b3dd54082745d1188f3a6e582e7cd993.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/H26C7/4a6fd1fd1116c14aa6aef5e6851ab6a9.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/H26C7/7e12275d669102d0269278a7c91ab49d.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/H26C7/ab34ea3755f59a21662266eb62b7bc4b.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/H26C7/b0a70ff59a3b5360b6246b507693c4d4.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/H26C7/dc772923b4a2e053f1baf68fa28a48ee.jpg" - )) - .build()); - - dishes.put("H602F", new Builder() - .detailHash("H602F") - .categoryId(3) // 반찬 - .title("[미노리키친] 일본식 우엉조림(킨피라고보) 80g") - .description("한국식 우엉조림과는 다른 진한 감칠맛") - .price(3300) - .point(33) - .quantity(5) - .deliveryFee(2500) - .deliveryTypes(Arrays.asList("새벽배송", "전국택배")) - .deliveryInfo("서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가) [화 · 수 · 목 · 금 · 토] 수령 가능한 상품입니다.") - .image("http://public.codesquad.kr/jk/storeapp/data/422befe07f7e2860b9a83a8d7049ec2e.jpg") - .thumbImages(Arrays.asList( - "http://public.codesquad.kr/jk/storeapp/data/detail/H602F/c8c8045696b4692107ef28c8b445ca42.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/H602F/edc6bae2e2663f05b4e8eb5a2b95d68f.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/H602F/c935f5913dc66b11ebceeef85485c438.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/H602F/7c1e24867611394f04b37d05593e21ba.jpg")) - .detailImages(Arrays.asList( - "http://public.codesquad.kr/jk/storeapp/data/detail/H602F/670e7deefe1d84a4f4e058655fbd4d7c.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/H602F/1898cda038e92454395b8ffca8cd4393.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/H602F/49516d302dad870fbdd75cf98a01eae4.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/H602F/c1bb6fe4f72fcea27ea989ae48c61c86.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/H602F/49afed8d3ec417b39ce8de456fc6661c.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/H602F/e62762e63f3e12dc2857a065badf1eea.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/H602F/31103ab946bff52b709ec6891e768c05.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/H602F/f84dc16f4f6d97661bd13d587a72d6b1.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/H602F/fd3f49614f731a0610a5409c0deb3c60.jpg" - )) - .build()); - - dishes.put("H0FC6", new Builder() - .detailHash("H0FC6") - .categoryId(3) // 반찬 - .title("[마더앤찬] 명란치즈계란말이 230g") - .description("아이반찬으로 최고 계란말이") - .badges(Arrays.asList("이벤트특가")) - .salePrice(3870) - .price(4300) - .point(38) - .quantity(5) - .deliveryFee(2500) - .deliveryTypes(Arrays.asList("새벽배송", "전국택배")) - .deliveryInfo("서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가) [화 · 수 · 목 · 금 · 토] 수령 가능한 상품입니다.") - .image("http://public.codesquad.kr/jk/storeapp/data/f6817349118d4c671da8dca9065649a9.jpg") - .thumbImages(Arrays.asList( - "http://public.codesquad.kr/jk/storeapp/data/detail/H0FC6/43c38eeffa556554c9b06301eb3e85b2.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/H0FC6/92f556b605c4a84813070d7214c4f336.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/H0FC6/538b8ab021c7814aa4af860d94f81287.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/H0FC6/adaef08ab0680b087096afa0f0070fad.jpg")) - .detailImages(Arrays.asList( - "http://public.codesquad.kr/jk/storeapp/data/detail/H0FC6/341b8605fa224ec1808c4f169097d170.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/H0FC6/0228d4cb660a3cca06952917bd024dcb.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/H0FC6/e027227f61a93b6473e8c4bbd5c3de74.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/H0FC6/03ac0b09199421bb61727c667c2361f6.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/H0FC6/cbe4a3e12b7bdba5cf410e0e19dcf1ca.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/H0FC6/b58fa5791b67db106524b48442cb1c6a.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/H0FC6/82cfe0332f0e1c927a23b79f1d152430.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/H0FC6/390ca9ad5a574cbe7f3f6e26871f6690.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/H0FC6/e113889a6120357c8e6196802a9f155b.jpg", - "http://public.codesquad.kr/jk/storeapp/data/detail/H0FC6/967e8e1ef357e9722b796e2bcb09ba3d.jpg" - )) - .build()); - - - // TODO: main(메인) 2개, soup(국) 2개, side(반찬) 2개 예시 하드코딩으로 채워넣기 - dishes.put("", new Builder() - .build()); - } - - @Override - public List findAllByCategoryId(long categoryId) { - return dishes.values().stream() - .filter(dish -> dish.getCategoryId() == categoryId) - .collect(Collectors.toList()); - } - - @Override - public Dish findByDetailHash(String detailHash) { - return dishes.get(detailHash); - } -} diff --git a/backend/src/main/java/com/codesquad/sidedish/SideDish/domain/DishRepository.java b/backend/src/main/java/com/codesquad/sidedish/SideDish/domain/DishRepository.java index bb0c6f9d4..6625f54e1 100644 --- a/backend/src/main/java/com/codesquad/sidedish/SideDish/domain/DishRepository.java +++ b/backend/src/main/java/com/codesquad/sidedish/SideDish/domain/DishRepository.java @@ -1,9 +1,19 @@ package com.codesquad.sidedish.SideDish.domain; +import org.springframework.data.jdbc.repository.query.Modifying; +import org.springframework.data.jdbc.repository.query.Query; +import org.springframework.data.repository.CrudRepository; + import java.util.List; -public interface DishRepository { - List findAllByCategoryId(long categoryId); +public interface DishRepository extends CrudRepository { + @Query("SELECT * from sidedish.dish WHERE dish.category_id = :categoryId") + List findAllByCategoryId(Long categoryId); + @Query("SELECT * from sidedish.dish WHERE dish.detail_hash = :detailHash") Dish findByDetailHash(String detailHash); + + @Modifying + @Query("UPDATE sidedish.dish SET dish.quantity = :quantity WHERE dish.detail_hash = :detailHash") + void updateDish(int quantity, String detailHash); } diff --git a/backend/src/main/java/com/codesquad/sidedish/SideDish/domain/Image.java b/backend/src/main/java/com/codesquad/sidedish/SideDish/domain/Image.java new file mode 100644 index 000000000..beb8a7a1f --- /dev/null +++ b/backend/src/main/java/com/codesquad/sidedish/SideDish/domain/Image.java @@ -0,0 +1,21 @@ +package com.codesquad.sidedish.SideDish.domain; + +public class Image { + private String imageUrl; + + private String type; + + public Image(String imageUrl, String type) { + this.imageUrl = imageUrl; + this.type = type; + } + + public String getImageUrl() { + return imageUrl; + } + + public String getType() { + return type; + } + +} diff --git a/backend/src/main/java/com/codesquad/sidedish/SideDish/domain/ImageRepository.java b/backend/src/main/java/com/codesquad/sidedish/SideDish/domain/ImageRepository.java new file mode 100644 index 000000000..69d2a5e60 --- /dev/null +++ b/backend/src/main/java/com/codesquad/sidedish/SideDish/domain/ImageRepository.java @@ -0,0 +1,14 @@ +package com.codesquad.sidedish.SideDish.domain; + +import org.springframework.data.jdbc.repository.query.Query; +import org.springframework.data.repository.CrudRepository; + +import java.util.List; + +public interface ImageRepository extends CrudRepository { + @Query("SELECT image.* from sidedish.image INNER JOIN sidedish.dish_image ON image.id = dish_image.image WHERE image.type = 'thumb' AND dish_image.dish = :detailHash;") + List findThumbImagesByDish(String detailHash); + + @Query("SELECT image.* from sidedish.image INNER JOIN sidedish.dish_image ON image.id = dish_image.image WHERE image.type = 'detail' AND dish_image.dish = :detailHash;") + List findDetailImagesByDish(String detailHash); +} diff --git a/backend/src/main/java/com/codesquad/sidedish/SideDish/domain/Sale.java b/backend/src/main/java/com/codesquad/sidedish/SideDish/domain/Sale.java new file mode 100644 index 000000000..9e382c23d --- /dev/null +++ b/backend/src/main/java/com/codesquad/sidedish/SideDish/domain/Sale.java @@ -0,0 +1,45 @@ +package com.codesquad.sidedish.SideDish.domain; + +import java.util.Objects; + +public class Sale { + private String badge; + private String saleType; + private int saleValue; + + + public Sale(String badge, String saleType, int saleValue) { + this.badge = badge; + this.saleType = saleType; + this.saleValue = saleValue; + } + + public String getBadge() { + return badge; + } + + public String getSaleType() { + return saleType; + } + + public int getSaleValue() { + return saleValue; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Sale sale = (Sale) o; + return saleValue == sale.saleValue && Objects.equals(badge, sale.badge) && Objects.equals(saleType, sale.saleType); + } + + @Override + public int hashCode() { + return Objects.hash(badge, saleType, saleValue); + } +} diff --git a/backend/src/main/java/com/codesquad/sidedish/SideDish/domain/SaleRepository.java b/backend/src/main/java/com/codesquad/sidedish/SideDish/domain/SaleRepository.java new file mode 100644 index 000000000..f14aedd18 --- /dev/null +++ b/backend/src/main/java/com/codesquad/sidedish/SideDish/domain/SaleRepository.java @@ -0,0 +1,11 @@ +package com.codesquad.sidedish.SideDish.domain; + +import org.springframework.data.jdbc.repository.query.Query; +import org.springframework.data.repository.CrudRepository; + +import java.util.List; + +public interface SaleRepository extends CrudRepository { + @Query("SELECT sale.* from sidedish.sale INNER JOIN sidedish.dish_sale ON sale.id = dish_sale.sale WHERE dish_sale.dish = :detailHash;") + List findAllByDish(String detailHash); +} diff --git a/backend/src/main/java/com/codesquad/sidedish/SideDish/dto/CategoryDto.java b/backend/src/main/java/com/codesquad/sidedish/SideDish/dto/CategoryDto.java index 5df022600..254ddbaa8 100644 --- a/backend/src/main/java/com/codesquad/sidedish/SideDish/dto/CategoryDto.java +++ b/backend/src/main/java/com/codesquad/sidedish/SideDish/dto/CategoryDto.java @@ -3,11 +3,11 @@ import com.codesquad.sidedish.SideDish.domain.Category; public class CategoryDto { - private final long id; + private final Long id; private final String categoryName; private final String endPoint; - private CategoryDto(long id, String categoryName, String endPoint) { + private CategoryDto(Long id, String categoryName, String endPoint) { this.id = id; this.categoryName = categoryName; this.endPoint = endPoint; @@ -21,7 +21,7 @@ public static CategoryDto from(Category category) { ); } - public long getId() { + public Long getId() { return id; } diff --git a/backend/src/main/java/com/codesquad/sidedish/SideDish/dto/DishDetailDto.java b/backend/src/main/java/com/codesquad/sidedish/SideDish/dto/DishDetailDto.java index 5a0ec4c05..688ae6d25 100644 --- a/backend/src/main/java/com/codesquad/sidedish/SideDish/dto/DishDetailDto.java +++ b/backend/src/main/java/com/codesquad/sidedish/SideDish/dto/DishDetailDto.java @@ -1,14 +1,16 @@ package com.codesquad.sidedish.SideDish.dto; import com.codesquad.sidedish.SideDish.domain.Dish; +import com.codesquad.sidedish.SideDish.domain.Image; import java.util.List; +import java.util.stream.Collectors; public class DishDetailDto { private final List thumbImages; - private final int point; + private final Integer point; private final String deliveryInfo; - private int deliveryFee; + private Integer deliveryFee; private final List detailImages; private DishDetailDto(Builder builder) { @@ -19,21 +21,25 @@ private DishDetailDto(Builder builder) { this.detailImages = builder.detailImages; } - public static DishDetailDto from(Dish dish) { + public static DishDetailDto from(Dish dish, List thumbImages, List detailImages) { return new Builder() - .thumbImages(dish.getThumbImages()) + .thumbImages(imagesToUrls(thumbImages)) .point(dish.getPoint()) .deliveryInfo(dish.getDeliveryInfo()) .deliveryFee(dish.getDeliveryFee()) - .detailImages(dish.getDetailImages()) + .detailImages(imagesToUrls(detailImages)) .build(); } + private static List imagesToUrls(List images) { + return images.stream().map(Image::getImageUrl).collect(Collectors.toList()); + } + private static class Builder { private List thumbImages; - private int point; + private Integer point; private String deliveryInfo; - private int deliveryFee; + private Integer deliveryFee; private List detailImages; public DishDetailDto build() { @@ -46,7 +52,7 @@ public Builder thumbImages(List thumbImages) { return this; } - public Builder point(int point) { + public Builder point(Integer point) { this.point = point; return this; } @@ -56,7 +62,7 @@ public Builder deliveryInfo(String deliveryInfo) { return this; } - public Builder deliveryFee(int deliveryFee) { + public Builder deliveryFee(Integer deliveryFee) { this.deliveryFee = deliveryFee; return this; } @@ -71,7 +77,7 @@ public List getThumbImages() { return thumbImages; } - public int getPoint() { + public Integer getPoint() { return point; } @@ -79,7 +85,7 @@ public String getDeliveryInfo() { return deliveryInfo; } - public int getDeliveryFee() { + public Integer getDeliveryFee() { return deliveryFee; } diff --git a/backend/src/main/java/com/codesquad/sidedish/SideDish/dto/DishDto.java b/backend/src/main/java/com/codesquad/sidedish/SideDish/dto/DishDto.java index ccc4b400a..94a0893d1 100644 --- a/backend/src/main/java/com/codesquad/sidedish/SideDish/dto/DishDto.java +++ b/backend/src/main/java/com/codesquad/sidedish/SideDish/dto/DishDto.java @@ -1,8 +1,12 @@ package com.codesquad.sidedish.SideDish.dto; + +import com.codesquad.sidedish.SideDish.domain.Delivery; import com.codesquad.sidedish.SideDish.domain.Dish; +import com.codesquad.sidedish.SideDish.domain.Sale; import java.util.List; +import java.util.stream.Collectors; public class DishDto { private final String detailHash; @@ -10,8 +14,8 @@ public class DishDto { private final String title; private final String description; private final List deliveryTypes; - private final int price; - private final int salePrice; + private final Integer price; + private final Integer salePrice; private final List badges; private DishDto(Builder builder) { @@ -25,16 +29,16 @@ private DishDto(Builder builder) { this.badges = builder.badges; } - public static DishDto from(Dish dish) { + public static DishDto from(Dish dish, List deliveries, List sales) { return new Builder() .detailHash(dish.getDetailHash()) .image(dish.getImage()) .title(dish.getTitle()) .description(dish.getDescription()) - .deliveryTypes(dish.getDeliveryTypes()) + .deliveryTypes(deliveries.stream().map(Delivery::getDeliveryType).collect(Collectors.toList())) .price(dish.getPrice()) .salePrice(dish.getSalePrice()) - .badges(dish.getBadges()) + .badges(sales.stream().map(Sale::getBadge).collect(Collectors.toList())) .build(); } @@ -44,8 +48,8 @@ public static class Builder { private String title; private String description; private List deliveryTypes; - private int price; - private int salePrice; + private Integer price; + private Integer salePrice; private List badges; public DishDto build() { @@ -78,12 +82,12 @@ public Builder deliveryTypes(List deliveryTypes) { return this; } - public Builder price(int price) { + public Builder price(Integer price) { this.price = price; return this; } - public Builder salePrice(int salePrice) { + public Builder salePrice(Integer salePrice) { this.salePrice = salePrice; return this; } @@ -114,11 +118,11 @@ public String getDescription() { return description; } - public int getPrice() { + public Integer getPrice() { return price; } - public int getSalePrice() { + public Integer getSalePrice() { return salePrice; } diff --git a/backend/src/main/java/com/codesquad/sidedish/SideDish/dto/QuantityDto.java b/backend/src/main/java/com/codesquad/sidedish/SideDish/dto/QuantityDto.java index 64335b4f4..93358ba11 100644 --- a/backend/src/main/java/com/codesquad/sidedish/SideDish/dto/QuantityDto.java +++ b/backend/src/main/java/com/codesquad/sidedish/SideDish/dto/QuantityDto.java @@ -1,15 +1,16 @@ package com.codesquad.sidedish.SideDish.dto; + import com.codesquad.sidedish.SideDish.domain.Dish; public class QuantityDto { - private final int quantity; + private final Integer quantity; - private QuantityDto(int quantity) { + private QuantityDto(Integer quantity) { this.quantity = quantity; } - public int getQuantity() { + public Integer getQuantity() { return quantity; } diff --git a/backend/src/main/java/com/codesquad/sidedish/SideDish/dto/RefreshDto.java b/backend/src/main/java/com/codesquad/sidedish/SideDish/dto/RefreshDto.java index 9fc67a500..a093d7f58 100644 --- a/backend/src/main/java/com/codesquad/sidedish/SideDish/dto/RefreshDto.java +++ b/backend/src/main/java/com/codesquad/sidedish/SideDish/dto/RefreshDto.java @@ -1,13 +1,13 @@ package com.codesquad.sidedish.SideDish.dto; public class RefreshDto { - private final boolean refreshable; + private final Boolean refreshable; - public RefreshDto(boolean refreshable) { + public RefreshDto(Boolean refreshable) { this.refreshable = refreshable; } - public boolean isRefreshable() { + public Boolean isRefreshable() { return refreshable; } } diff --git a/backend/src/main/java/com/codesquad/sidedish/SideDish/service/CategoryService.java b/backend/src/main/java/com/codesquad/sidedish/SideDish/service/CategoryService.java index 90c13dc60..42dd88a30 100644 --- a/backend/src/main/java/com/codesquad/sidedish/SideDish/service/CategoryService.java +++ b/backend/src/main/java/com/codesquad/sidedish/SideDish/service/CategoryService.java @@ -1,6 +1,5 @@ package com.codesquad.sidedish.SideDish.service; -import com.codesquad.sidedish.SideDish.domain.CategoryMockRepository; import com.codesquad.sidedish.SideDish.domain.CategoryRepository; import com.codesquad.sidedish.SideDish.dto.CategoryDto; import org.springframework.stereotype.Service; @@ -16,10 +15,6 @@ public CategoryService(CategoryRepository categoryRepository) { this.categoryRepository = categoryRepository; } - public CategoryService() { - this(new CategoryMockRepository()); - } - public List getList() { return categoryRepository.findAll() .stream().map(CategoryDto::from) diff --git a/backend/src/main/java/com/codesquad/sidedish/SideDish/service/DishService.java b/backend/src/main/java/com/codesquad/sidedish/SideDish/service/DishService.java index 25cb1cab6..3366e5bf2 100644 --- a/backend/src/main/java/com/codesquad/sidedish/SideDish/service/DishService.java +++ b/backend/src/main/java/com/codesquad/sidedish/SideDish/service/DishService.java @@ -1,8 +1,6 @@ package com.codesquad.sidedish.SideDish.service; -import com.codesquad.sidedish.SideDish.domain.Dish; -import com.codesquad.sidedish.SideDish.domain.DishMockRepository; -import com.codesquad.sidedish.SideDish.domain.DishRepository; +import com.codesquad.sidedish.SideDish.domain.*; import com.codesquad.sidedish.SideDish.dto.DishDetailDto; import com.codesquad.sidedish.SideDish.dto.DishDto; import com.codesquad.sidedish.SideDish.dto.QuantityDto; @@ -10,6 +8,7 @@ import com.codesquad.sidedish.SideDish.exception.DishNotFoundException; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; import java.util.Optional; import java.util.stream.Collectors; @@ -17,15 +16,37 @@ @Service public class DishService { private final DishRepository dishRepository; + private final ImageRepository imageRepository; + private final DeliveryRepository deliveryRepository; + private final SaleRepository saleRepository; + private final DishDao dishDao; - public DishService(DishRepository dishRepository) { + public DishService(DishRepository dishRepository, ImageRepository imageRepository, DeliveryRepository deliveryRepository, SaleRepository saleRepository, DishDao dishDao) { this.dishRepository = dishRepository; + this.imageRepository = imageRepository; + this.deliveryRepository = deliveryRepository; + this.saleRepository = saleRepository; + this.dishDao = dishDao; } - public DishService() { - this(new DishMockRepository()); + public List getList(Long categoryId) { + DishList dishList = dishDao.findAllByCategoryId(categoryId); + return dishList.getDishes().stream() + .map(dish -> DishDto.from(dish, new ArrayList<>(dishList.getDeliveries(dish)), new ArrayList<>(dishList.getSales(dish)))) + .collect(Collectors.toList()); +// return dishRepository.findAllByCategoryId(categoryId) +// .stream().map(this::convert) +// .collect(Collectors.toList()); } +// private DishDto convert(Dish dish) { +// String detailHash = dish.getDetailHash(); +// List deliveries = deliveryRepository.findAllByDish(detailHash); +// List sales = saleRepository.findAllByDish(detailHash); +// return DishDto.from(dish, deliveries, sales); +// } + + public RefreshDto getDetailRefreshable(String detailHash, long lastUpdated) { Dish dish = dishRepository.findByDetailHash(detailHash); boolean refreshable = dish.refreshable(lastUpdated); @@ -37,13 +58,10 @@ public QuantityDto getDetailQuantity(String detailHash) { } public DishDetailDto getDetail(String detailHash) { - return DishDetailDto.from(getDish(detailHash)); - } - - public List getList(long categoryId) { - return dishRepository.findAllByCategoryId(categoryId) - .stream().map(DishDto::from) - .collect(Collectors.toList()); + Dish dish = dishRepository.findByDetailHash(detailHash); + List thumbImages = imageRepository.findThumbImagesByDish(detailHash); + List detailImages = imageRepository.findDetailImagesByDish(detailHash); + return DishDetailDto.from(dish, thumbImages, detailImages); } private Dish getDish(String detailHash) { @@ -51,4 +69,17 @@ private Dish getDish(String detailHash) { return Optional.ofNullable(dish) .orElseThrow(() -> new DishNotFoundException(detailHash)); } + + public boolean order(String detailHash, int count) { + Dish dish = getDish(detailHash); + QuantityDto quantityDto = getDetailQuantity(detailHash); + if (quantityDto.getQuantity() > count) { + int upqua = quantityDto.getQuantity() - count; + dish.order(count); + dishRepository.updateDish(upqua, detailHash); + return true; + } + return false; + } + } diff --git a/backend/src/main/resources/application-dev.properties b/backend/src/main/resources/application-dev.properties new file mode 100644 index 000000000..37e8ba34c --- /dev/null +++ b/backend/src/main/resources/application-dev.properties @@ -0,0 +1,9 @@ +spring.config.import=classpath:common.properties + +# h2 관련 설정 +spring.datasource.driver-class-name=org.h2.Driver +spring.datasource.initialization-mode=always +spring.datasource.url=jdbc:h2:~/test;DB_CLOSE_DELAY=- 1;DB_CLOSE_ON_EXIT=FALSE;MODE=MySQL;DATABASE_TO_LOWER=TRUE;CASE_INSENSITIVE_IDENTIFIERS=TRUE +spring.datasource.schema=classpath:dev/schema-h2.sql +spring.datasource.username=sa +spring.datasource.password= diff --git a/backend/src/main/resources/application.properties b/backend/src/main/resources/application-prod.properties similarity index 71% rename from backend/src/main/resources/application.properties rename to backend/src/main/resources/application-prod.properties index 466a1cd2e..f76f65c08 100644 --- a/backend/src/main/resources/application.properties +++ b/backend/src/main/resources/application-prod.properties @@ -1,7 +1,9 @@ +spring.config.import=classpath:common.properties + +# mysql 관련 설정 +spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver +spring.datasource.initialization-mode=always spring.datasource.url=jdbc:mysql://localhost:3306/sidedish?autoReconnect=true&useUnicode=true&characterEncoding=UTF8&serverTimeZone=Asia/Seoul +spring.datasource.schema=classpath:prod/schema.sql spring.datasource.username=bat spring.datasource.password=bat1234 -spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver -spring.datasource.schema=classpath:schema.sql -spring.datasource.initialization-mode=always -spring.jackson.serialization.INDENT_OUTPUT=true diff --git a/backend/src/main/resources/common.properties b/backend/src/main/resources/common.properties new file mode 100644 index 000000000..bf2e12e8b --- /dev/null +++ b/backend/src/main/resources/common.properties @@ -0,0 +1,7 @@ +# logging 관련 설정 +logging.level.com.codesquad. = DEBUG +logging.level.sql=DEBUG +logging.level.org.springframework.jdbc.core=DEBUG + +# jackson 관련 설정 +spring.jackson.serialization.INDENT_OUTPUT=true diff --git a/backend/src/main/resources/dev/schema-h2.sql b/backend/src/main/resources/dev/schema-h2.sql new file mode 100644 index 000000000..a8b344a25 --- /dev/null +++ b/backend/src/main/resources/dev/schema-h2.sql @@ -0,0 +1,343 @@ +SET MODE MySQL; +DROP ALL OBJECTS; + +-- ----------------------------------------------------- +-- Schema mydb +-- ----------------------------------------------------- +-- ----------------------------------------------------- +-- Schema sidedish +-- ----------------------------------------------------- +DROP SCHEMA IF EXISTS `sidedish` ; + +-- ----------------------------------------------------- +-- Schema sidedish +-- ----------------------------------------------------- +CREATE SCHEMA IF NOT EXISTS `sidedish`; +USE `sidedish` ; + + +-- ----------------------------------------------------- +-- Table `sidedish`.`menu` +-- ----------------------------------------------------- +DROP TABLE IF EXISTS `sidedish`.`category` ; + +CREATE TABLE IF NOT EXISTS `sidedish`.`category` ( + `id` INT(11) NOT NULL AUTO_INCREMENT, + `category_name` VARCHAR(45) NOT NULL, + `end_point` VARCHAR(45) NOT NULL, + PRIMARY KEY (`id`)) + ENGINE = InnoDB + DEFAULT CHARACTER SET = utf8; + + +-- ----------------------------------------------------- +-- Table `sidedish`.`dish` +-- ----------------------------------------------------- +DROP TABLE IF EXISTS `sidedish`.`dish` ; + +CREATE TABLE IF NOT EXISTS `sidedish`.`dish` ( + `detail_hash` VARCHAR(50), + `image` VARCHAR(100), + `title` VARCHAR(50), + `description` VARCHAR(100), + `price` INT(11), + `sale_price` INT(11), + `point` INT(11), + `delivery_info` VARCHAR(50), + `delivery_fee` INT(11), + `category_id` INT(11), + `quantity` INT(11), + `current_date_time` TIMESTAMP, + PRIMARY KEY (`detail_hash`)) + ENGINE = InnoDB + DEFAULT CHARACTER SET = utf8; + +-- ----------------------------------------------------- +-- Table `sidedish`.`delivery` +-- ----------------------------------------------------- +DROP TABLE IF EXISTS `sidedish`.`delivery` ; + +CREATE TABLE IF NOT EXISTS `sidedish`.`delivery` ( + `id` INT(11) NOT NULL, + `delivery_type` VARCHAR(45) NOT NULL, + PRIMARY KEY (`id`)) + ENGINE = InnoDB + DEFAULT CHARACTER SET = utf8; + +-- ----------------------------------------------------- +-- Table `sidedish`.`dish_delivery` +-- ----------------------------------------------------- +DROP TABLE IF EXISTS `sidedish`.`dish_delivery` ; + +CREATE TABLE IF NOT EXISTS `sidedish`.`dish_delivery`( + `id` INT AUTO_INCREMENT PRIMARY KEY, + `dish` VARCHAR (50), + `delivery` INT, + CONSTRAINT dish_delivery_dish_foreign_key FOREIGN KEY (`dish`) REFERENCES `dish` (detail_hash), + CONSTRAINT dish_delivery_delivery_foreign_key FOREIGN KEY (`delivery`) REFERENCES `delivery` (id) +); + + +-- ----------------------------------------------------- +-- Table `sidedish`.`sale` +-- ----------------------------------------------------- +DROP TABLE IF EXISTS `sidedish`.`sale` ; + +CREATE TABLE IF NOT EXISTS `sidedish`.`sale` ( + `id` INT(11) NOT NULL, + `badge` VARCHAR(45) NOT NULL, + `sale_type` VARCHAR(45) NOT NULL, + `sale_value` INT(11) NOT NULL, + PRIMARY KEY (`id`)) + ENGINE = InnoDB + DEFAULT CHARACTER SET = utf8; + + +-- ----------------------------------------------------- +-- Table `sidedish`.`dish_sale` +-- ----------------------------------------------------- +DROP TABLE IF EXISTS `sidedish`.`dish_sale` ; + +CREATE TABLE IF NOT EXISTS `sidedish`.`dish_sale`( + `id` INT AUTO_INCREMENT PRIMARY KEY, + `dish` VARCHAR (50), + `sale` INT, + CONSTRAINT dish_sale_dish_foreign_key FOREIGN KEY (`dish`) REFERENCES `dish` (detail_hash), + CONSTRAINT dish_sale_sale_foreign_key FOREIGN KEY (`sale`) REFERENCES `sale` (id) +); + + +DROP TABLE IF EXISTS `sidedish`.`image` ; + +CREATE TABLE IF NOT EXISTS `sidedish`.`image` ( + `id` INT(11) AUTO_INCREMENT NOT NULL, + `image_url` VARCHAR(100) NOT NULL, + `type` VARCHAR(45) NOT NULL, + PRIMARY KEY (`id`)) + ENGINE = InnoDB + DEFAULT CHARACTER SET = utf8; + + +-- ----------------------------------------------------- +-- Table `sidedish`.`dish_sale` +-- ----------------------------------------------------- +DROP TABLE IF EXISTS `sidedish`.`dish_image` ; + +CREATE TABLE IF NOT EXISTS `sidedish`.`dish_image`( + `id` INT AUTO_INCREMENT PRIMARY KEY, + `dish` VARCHAR (50), + `image` INT, + CONSTRAINT dish_image_dish_foreign_key FOREIGN KEY (`dish`) REFERENCES `dish` (detail_hash), + CONSTRAINT dish_image_image_foreign_key FOREIGN KEY (`image`) REFERENCES `image` (id) +); + + +INSERT INTO sidedish.category + (id, category_name, end_point) +VALUES + (1, '메인요리', '/main'), + (2, '국.찌개', '/soup'), + (3, '반찬', '/side'); + + +INSERT INTO sidedish.dish + (detail_hash, image, title, description, price, sale_price,point, delivery_info, delivery_fee, category_id, quantity) +VALUES + ('HBDEF', 'http://public.codesquad.kr/jk/storeapp/data/2d3f99a9a35601f4e98837bc4d39b2c8.jpg', '[미노리키친] 규동 250g', '일본인의 소울푸드! 한국인도 좋아하는 소고기덮밥', 6000, 5200, 52,'서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 1, 5), + ('HDF73', 'http://public.codesquad.kr/jk/storeapp/data/7674311a02ba7c88675f3186ddaeef9e.jpg', '[빅마마의밥친구] 아삭 고소한 연근고기조림 250g', '편식하는 아이도 좋아하는 건강한 연근조림', 5500, null, 55, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 1, 5), + ('HF778', 'http://public.codesquad.kr/jk/storeapp/data/cad8eee316cf7151e07638aa57b32a9d.jpg', '[소중한식사] 골뱅이무침 195g', '매콤새콤달콤, 반찬으로도 안주로도 좋은', 7000, 6300, 63, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 1, 5), + ('HFB53', 'http://public.codesquad.kr/jk/storeapp/data/b6beada6b89af950289003d929936d9c.jpg', '[옹가솜씨] 꽁치간장조림 240g', '[옹가솜씨] 꽁치간장조림 240g', 5800, null, 58, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 1, 5), + ('H077F', 'http://public.codesquad.kr/jk/storeapp/data/0221110ead70dfd455e40703bbdd6252.jpg', '[마더앤찬] 코다리구이 320g', '큼지막하고 살집 많은 동태 한 마리로 만든 코다리구이입니다.', 7500, 6750, 67, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 1, 5), + ('H4665', 'http://public.codesquad.kr/jk/storeapp/data/385f4106ac26f6e4fe7c640714f405a5.jpg', '[남도애꽃] 반건조 문어조림 120g', '씹을수록 감칠맛나는 문어살의 쫄깃함', 4600, null, 46, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 1, 5), + ('H1AA9', 'http://public.codesquad.kr/jk/storeapp/data/2455226945d52f5aefd51f35d663bb16.jpg', '[마샐미디쉬] 매콤마늘쫑 해산물볶음 180g', '탱글탱글한 새우와 오징어를 마늘쫑과 함께 매콤하게 볶아냈어요.', 6900, 6210, 62, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 1, 5), + ('HEDFB', 'http://public.codesquad.kr/jk/storeapp/data/bc3b777115e8377a48c7bd762fe5fdc9.jpg', '[빅마마의밥친구] 비빔오징어 150g', '달콤한 신야초발효액이 포인트!', 5000, null, 50, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 1, 5), + + ('H72C3', 'http://public.codesquad.kr/jk/storeapp/data/d1fccf125f0a78113d0e06cb888f2e74.jpg', '[수하동] 특곰탕 850g', '100% 한우양지로 끓여낸 70년전통의 서울식곰탕', 15000, 14200, 142, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 2, 5), + ('HA6EE', 'http://public.codesquad.kr/jk/storeapp/data/c069bc32cb37727c59e1f0c2839311a0.jpg', '[빅마마의밥친구] 된장찌개 900g', '항아리에서 숙성시킨 집된장으로만 맛을내 짜지 않은 된장찌개', 10000, null, 100, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 2, 5), + ('H8CD0', 'http://public.codesquad.kr/jk/storeapp/data/f31fc3f5828c27ff60e4cf89a862d31c.jpg', '[탐나는밥상] 동태탕 1000g', '칼칼한 국물이 속 풀기에 딱 좋은 동태탕', 14000, null, 140, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 2, 5), + ('HE2E9', 'http://public.codesquad.kr/jk/storeapp/data/6edbb16da52708e8533b85fbf743f882.jpg', '[국물닷컴] 치즈부대찌개 600g', '안주용 부대찌개와는 달라 밥말아먹기 딱 좋은', 4300, null, 43, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 2, 5), + ('HAA47', 'http://public.codesquad.kr/jk/storeapp/data/892f3e7f043bfa7dbbcd58f88eecac36.jpg', '[집밥의완성] 스키야키 1.5kg (2~3인분)', '진한 풍미의 일본식 전골, 스키야키', 10000, null, 100, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 2, 5), + ('H3254', 'http://public.codesquad.kr/jk/storeapp/data/ae571e13d18fd4f0f40d685d2c8fe8f1.jpg', '[새로미부산어묵] 프리미엄 어묵탕세트', '밀가루 0% 프리미엄 어묵에 어묵스프까지 드려요!', 18000, 14400, 144, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 2, 5), + ('H26C7', 'http://public.codesquad.kr/jk/storeapp/data/8fd330b5f5dbccbcbf4f5731e5e9e29b.jpg', '[모이세] 육개장 1팩(600g)', '제주3대해장국 맛집의 인기메뉴', 5000, 4400, 44, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 2, 5), + ('HFFF9', 'http://public.codesquad.kr/jk/storeapp/data/2416b58044d49f0d3a24256f8e76163b.jpg', '[마더앤찬] 명란감자국 630ml', '간간한 저염명란과 고소한 감자가 조화로운 국이에요', 7000, 6300, 63, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 2, 5), + + ('HBBCC', 'http://public.codesquad.kr/jk/storeapp/data/fdb0d5fcfb86e332505785225a6d9ade.jpg', '[마샐미디쉬] 유자소스 연근무침 250g', '향긋한 유자향과 아삭한 연근', 6500, null, 65, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 3, 5), + ('H1939', 'http://public.codesquad.kr/jk/storeapp/data/e5646e5fc09a01a9243979b229e0572b.jpg', '[동네부엌] 쇠고기야채장조림 200g', '부드러운 고기부터 밥비벼먹기 딱좋은 국물까지', 7400, null, 74, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 3, 5), + ('H8EA5', 'http://public.codesquad.kr/jk/storeapp/data/4cfd1954861ebd18b5b53e558a8e902e.jpg', '[소중한식사] 도라지초무침 150g', '새콤달콤 입맛 돋우는', 4000, null, 40, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 3, 5), + ('H602F', 'http://public.codesquad.kr/jk/storeapp/data/422befe07f7e2860b9a83a8d7049ec2e.jpg', '[미노리키친] 일본식 우엉조림(킨피라고보) 80g', '한국식 우엉조림과는 다른 진한 감칠맛', 3300, null, 33, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 3, 5), + + ('H9F0B', 'http://public.codesquad.kr/jk/storeapp/data/d0b5d2be962947d9534e2140d1b34b2d.jpg', '[빅마마의밥친구] 갈치포무침 150g', '쉽게 접할수 없는 꼬순내가득 갈치포 무침', 7000, null, 70, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 3, 5), + ('H0FC6', 'http://public.codesquad.kr/jk/storeapp/data/f6817349118d4c671da8dca9065649a9.jpg', '[마더앤찬] 명란치즈계란말이 230g', '아이반찬으로 최고 계란말이', 3870, null, 38, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 3, 5), + ('HCCFE', 'http://public.codesquad.kr/jk/storeapp/data/757878b14ee5a8d5af905c154fc38f01.jpg', '[옹가솜씨] 달걀곤약조림 330g', '칼로리 부담 쭉쭉 내린', 5800, null, 58, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 3, 5), + ('HB9C1', 'http://public.codesquad.kr/jk/storeapp/data/043cf496f07899e7515f761e29d1ffa9.jpg', '[너의반찬] 미소된장 고추무침 200g', '고소한 양념 때문에 손이 자꾸 가요', 4500, null, 45, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 3, 5); + +INSERT INTO sidedish.image + (id, image_url, type) +VALUES + (1, 'http://public.codesquad.kr/jk/storeapp/data/detail/HBDEF/4cce011a4a352c22cd399a60271b4921.jpg', 'thumb'), + (2, 'http://public.codesquad.kr/jk/storeapp/data/detail/HBDEF/6ef14155afc5b47e8c9efd762f7a6096.jpg', 'thumb'), + (3, 'http://public.codesquad.kr/jk/storeapp/data/detail/HBDEF/8744504ff3bc315f901dca1f26fe63a1.jpg', 'thumb'), + (4, 'http://public.codesquad.kr/jk/storeapp/data/detail/HBDEF/e30bd6de9340fc05db3cd1d1329b2c56.jpg', 'thumb'), + (5, 'http://public.codesquad.kr/jk/storeapp/data/detail/HBDEF/9c2c53b40a11b79c90549a058c2da4b7.jpg', 'detail'), + (6, 'http://public.codesquad.kr/jk/storeapp/data/detail/HBDEF/70b0c77d3ef5cdd6269588685bbefe43.jpg', 'detail'), + (7, 'http://public.codesquad.kr/jk/storeapp/data/detail/HBDEF/72f1049b047f65f42a267d5bbd1e6204.jpg', 'detail'), + (8, 'http://public.codesquad.kr/jk/storeapp/data/detail/HBDEF/768afd17faa8bf3461b8160ba0aa26bf.jpg', 'detail'), + (9, 'http://public.codesquad.kr/jk/storeapp/data/detail/HBDEF/95816f09d3294641f2e0feacaa739991.jpg', 'detail'), + (10, 'http://public.codesquad.kr/jk/storeapp/data/detail/HBDEF/2450219a4686d9d6d579fc04020929b4.jpg', 'detail'), + (11, 'http://public.codesquad.kr/jk/storeapp/data/detail/HBDEF/4971475295545ec336c9479fabb25364.jpg', 'detail'), + (12, 'http://public.codesquad.kr/jk/storeapp/data/detail/HBDEF/a8c434715709fe855f3ea1554ec362b6.jpg', 'detail'), + (13, 'http://public.codesquad.kr/jk/storeapp/data/detail/HBDEF/b2b3d0d2107ab91b16e0eb804cd84bc9.jpg', 'detail'), + (14, 'http://public.codesquad.kr/jk/storeapp/data/detail/HBDEF/c0dd6887c9d9368604fc70d7fc3c4598.jpg', 'detail'), + + (15, 'http://public.codesquad.kr/jk/storeapp/data/detail/HDF73/0f95f44ea8e2e7930321def493753a48.jpg', 'thumb'), + (16, 'http://public.codesquad.kr/jk/storeapp/data/detail/HDF73/2d408898494ac950d7d2cfd6c36d59c2.jpg', 'thumb'), + (17, 'http://public.codesquad.kr/jk/storeapp/data/detail/HDF73/62c8bb77facfc9c3be81f9bf45b27f2a.jpg', 'thumb'), + (18, 'http://public.codesquad.kr/jk/storeapp/data/detail/HDF73/f6d73afc0ebc1efa71eaea32e9d846f2.jpg', 'thumb'), + (19, 'http://public.codesquad.kr/jk/storeapp/data/detail/HDF73/9bd9158fb5ffbc46708b7928ee50708e.jpg', 'detail'), + (20, 'http://public.codesquad.kr/jk/storeapp/data/detail/HDF73/5f73c5c80b62ef63c8a8eecefe32fc29.jpg', 'detail'), + (21, 'http://public.codesquad.kr/jk/storeapp/data/detail/HDF73/9bd9158fb5ffbc46708b7928ee50708e.jpg', 'detail'), + (22, 'http://public.codesquad.kr/jk/storeapp/data/detail/HDF73/0253cdebc4972fefd6b94458024fe765.jpg', 'detail'), + (23, 'http://public.codesquad.kr/jk/storeapp/data/detail/HDF73/3299da0677b50c8c519adc0335271c49.jpg', 'detail'), + (24, 'http://public.codesquad.kr/jk/storeapp/data/detail/HDF73/0642265b65dcc2490ab164ff428cbfe2.jpg', 'detail'), + (25, 'http://public.codesquad.kr/jk/storeapp/data/detail/HDF73/695683493c1ae475a175475f50d3259f.jpg', 'detail'), + (26, 'http://public.codesquad.kr/jk/storeapp/data/detail/HDF73/c8f9bed4f5c07585b869e3d171904a93.jpg', 'detail'), + (27, 'http://public.codesquad.kr/jk/storeapp/data/detail/HDF73/d2e3274c95c832bc9bfbcebbd548f61b.jpg', 'detail'), + (28, 'http://public.codesquad.kr/jk/storeapp/data/detail/HDF73/d9e4fa00652483d74b46317d38159a2f.jpg', 'detail'), + (29, 'http://public.codesquad.kr/jk/storeapp/data/detail/HDF73/d7799b67683128642453f9e2b4c8ce84.jpg', 'detail'), + + + (30, 'http://public.codesquad.kr/jk/storeapp/data/detail/HAA47/4e96f386d5a5c4459bc0ac6ffd0c1fce.jpg', 'thumb'), + (31, 'http://public.codesquad.kr/jk/storeapp/data/detail/HAA47/00327d0df92e29bad02e7387349bed53.jpg', 'thumb'), + (32, 'http://public.codesquad.kr/jk/storeapp/data/detail/HAA47/781fea32c56eb102429902a2f62cbaf3.jpg', 'thumb'), + (33, 'http://public.codesquad.kr/jk/storeapp/data/detail/HAA47/edd7a54096d6df1b8bc8b318cea0191c.jpg', 'detail'), + (34, 'http://public.codesquad.kr/jk/storeapp/data/detail/HAA47/fb8e6e21faa8284021c1b1c7a1ae1281.jpg', 'detail'), + (35, 'http://public.codesquad.kr/jk/storeapp/data/detail/HAA47/36a0566d2fb69a4bcea946727181836d.jpg', 'detail'), + + (36, 'http://public.codesquad.kr/jk/storeapp/data/detail/H26C7/2ad963a9f63d371826748c852a0025c3.jpg', 'thumb'), + (37,'http://public.codesquad.kr/jk/storeapp/data/detail/H26C7/f945d8ac1dccc3f931bcaf35de5de582.jpg', 'thumb'), + (38,'http://public.codesquad.kr/jk/storeapp/data/detail/H26C7/bacb0b8186371bfafbd92dbeec718e13.jpg', 'thumb'), + (39,'http://public.codesquad.kr/jk/storeapp/data/detail/H26C7/b96b02e9a956c6d5ad1e10eb14ba81e0.jpg', 'thumb'), + (40,'http://public.codesquad.kr/jk/storeapp/data/detail/H26C7/3d67aabd2751620367e1d1ac3e3d7ef2.jpg', 'detail'), + (41,'http://public.codesquad.kr/jk/storeapp/data/detail/H26C7/855b42b4e80162e6930f06aa80bd1272.jpg', 'detail'), + (42,'http://public.codesquad.kr/jk/storeapp/data/detail/H26C7/1966de56cf138639d5d50d4bf2db8e72.jpg', 'detail'), + (43,'http://public.codesquad.kr/jk/storeapp/data/detail/H26C7/b3dd54082745d1188f3a6e582e7cd993.jpg', 'detail'), + (44,'http://public.codesquad.kr/jk/storeapp/data/detail/H26C7/4a6fd1fd1116c14aa6aef5e6851ab6a9.jpg', 'detail'), + (45,'http://public.codesquad.kr/jk/storeapp/data/detail/H26C7/7e12275d669102d0269278a7c91ab49d.jpg', 'detail'), + (46,'http://public.codesquad.kr/jk/storeapp/data/detail/H26C7/ab34ea3755f59a21662266eb62b7bc4b.jpg', 'detail'), + (47,'http://public.codesquad.kr/jk/storeapp/data/detail/H26C7/b0a70ff59a3b5360b6246b507693c4d4.jpg', 'detail'), + (48,'http://public.codesquad.kr/jk/storeapp/data/detail/H26C7/dc772923b4a2e053f1baf68fa28a48ee.jpg', 'detail'), + + (49, 'http://public.codesquad.kr/jk/storeapp/data/detail/H602F/c8c8045696b4692107ef28c8b445ca42.jpg', 'thumb'), + (50, 'http://public.codesquad.kr/jk/storeapp/data/detail/H602F/edc6bae2e2663f05b4e8eb5a2b95d68f.jpg', 'thumb'), + (51, 'http://public.codesquad.kr/jk/storeapp/data/detail/H602F/c935f5913dc66b11ebceeef85485c438.jpg', 'thumb'), + (52, 'http://public.codesquad.kr/jk/storeapp/data/detail/H602F/7c1e24867611394f04b37d05593e21ba.jpg', 'thumb'), + (53, 'http://public.codesquad.kr/jk/storeapp/data/detail/H602F/670e7deefe1d84a4f4e058655fbd4d7c.jpg', 'detail'), + (54, 'http://public.codesquad.kr/jk/storeapp/data/detail/H602F/1898cda038e92454395b8ffca8cd4393.jpg', 'detail'), + (55, 'http://public.codesquad.kr/jk/storeapp/data/detail/H602F/49516d302dad870fbdd75cf98a01eae4.jpg', 'detail'), + (56, 'http://public.codesquad.kr/jk/storeapp/data/detail/H602F/c1bb6fe4f72fcea27ea989ae48c61c86.jpg', 'detail'), + (57, 'http://public.codesquad.kr/jk/storeapp/data/detail/H602F/49afed8d3ec417b39ce8de456fc6661c.jpg', 'detail'), + (58, 'http://public.codesquad.kr/jk/storeapp/data/detail/H602F/e62762e63f3e12dc2857a065badf1eea.jpg', 'detail'), + (59, 'http://public.codesquad.kr/jk/storeapp/data/detail/H602F/31103ab946bff52b709ec6891e768c05.jpg', 'detail'), + (60, 'http://public.codesquad.kr/jk/storeapp/data/detail/H602F/f84dc16f4f6d97661bd13d587a72d6b1.jpg', 'detail'), + (61, 'http://public.codesquad.kr/jk/storeapp/data/detail/H602F/fd3f49614f731a0610a5409c0deb3c60.jpg', 'detail'), + + (62, 'http://public.codesquad.kr/jk/storeapp/data/detail/H0FC6/43c38eeffa556554c9b06301eb3e85b2.jpg', 'thumb'), + (63, 'http://public.codesquad.kr/jk/storeapp/data/detail/H0FC6/92f556b605c4a84813070d7214c4f336.jpg', 'thumb'), + (64, 'http://public.codesquad.kr/jk/storeapp/data/detail/H0FC6/538b8ab021c7814aa4af860d94f81287.jpg', 'thumb'), + (65, 'http://public.codesquad.kr/jk/storeapp/data/detail/H0FC6/adaef08ab0680b087096afa0f0070fad.jpg', 'thumb'), + (66, 'http://public.codesquad.kr/jk/storeapp/data/detail/H0FC6/341b8605fa224ec1808c4f169097d170.jpg', 'detail'), + (67, 'http://public.codesquad.kr/jk/storeapp/data/detail/H0FC6/0228d4cb660a3cca06952917bd024dcb.jpg', 'detail'), + (68, 'http://public.codesquad.kr/jk/storeapp/data/detail/H0FC6/e027227f61a93b6473e8c4bbd5c3de74.jpg', 'detail'), + (69, 'http://public.codesquad.kr/jk/storeapp/data/detail/H0FC6/03ac0b09199421bb61727c667c2361f6.jpg', 'detail'), + (70, 'http://public.codesquad.kr/jk/storeapp/data/detail/H0FC6/cbe4a3e12b7bdba5cf410e0e19dcf1ca.jpg', 'detail'), + (71,'http://public.codesquad.kr/jk/storeapp/data/detail/H0FC6/b58fa5791b67db106524b48442cb1c6a.jpg', 'detail'), + (72,'http://public.codesquad.kr/jk/storeapp/data/detail/H0FC6/82cfe0332f0e1c927a23b79f1d152430.jpg', 'detail'), + (73,'http://public.codesquad.kr/jk/storeapp/data/detail/H0FC6/390ca9ad5a574cbe7f3f6e26871f6690.jpg', 'detail'), + (74,'http://public.codesquad.kr/jk/storeapp/data/detail/H0FC6/e113889a6120357c8e6196802a9f155b.jpg', 'detail'), + (75,'http://public.codesquad.kr/jk/storeapp/data/detail/H0FC6/967e8e1ef357e9722b796e2bcb09ba3d.jpg', 'detail'); + +INSERT INTO sidedish.dish_image + (dish, image) +values + ('HBDEF', 1),('HBDEF', 2),('HBDEF', 3),('HBDEF', 4),('HBDEF', 5),('HBDEF', 6),('HBDEF', 7),('HBDEF', 8),('HBDEF', 9),('HBDEF', 10),('HBDEF', 11),('HBDEF', 12),('HBDEF', 13),('HBDEF', 14), + ('HDF73', 15),('HDF73', 16),('HDF73', 17),('HDF73', 18),('HDF73', 19),('HDF73', 20),('HDF73', 21),('HDF73', 22),('HDF73', 23),('HDF73', 24),('HDF73', 25),('HDF73', 26),('HDF73', 27),('HDF73', 28),('HDF73', 29), + ('HF778', 1),('HF778', 2),('HF778', 3),('HF778', 4),('HF778', 5),('HF778', 6),('HF778', 7),('HF778', 8),('HF778', 9),('HF778', 10),('HF778', 11),('HF778', 12),('HF778', 13),('HF778', 14), + ('HFB53', 1),('HFB53', 2),('HFB53', 3),('HFB53', 4),('HFB53', 5),('HFB53', 6),('HFB53', 7),('HFB53', 8),('HFB53', 9),('HFB53', 10),('HFB53', 11),('HFB53', 12),('HFB53', 13),('HFB53', 14), + ('H077F', 1),('H077F', 2),('H077F', 3),('H077F', 4),('H077F', 5),('H077F', 6),('H077F', 7),('H077F', 8),('H077F', 9),('H077F', 10),('H077F', 11),('H077F', 12),('H077F', 13),('H077F', 14), + ('H4665', 15),('H4665', 16),('H4665', 17),('H4665', 18),('H4665', 19),('H4665', 20),('H4665', 21),('H4665', 22),('H4665', 23),('H4665', 24),('H4665', 25),('H4665', 26),('H4665', 27),('H4665', 28),('H4665', 29), + ('H1AA9', 15),('H1AA9', 16),('H1AA9', 17),('H1AA9', 18),('H1AA9', 19),('H1AA9', 20),('H1AA9', 21),('H1AA9', 22),('H1AA9', 23),('H1AA9', 24),('H1AA9', 25),('H1AA9', 26),('H1AA9', 27),('H1AA9', 28),('H1AA9', 29), + ('HEDFB', 15),('HEDFB', 16),('HEDFB', 17),('HEDFB', 18),('HEDFB', 19),('HEDFB', 20),('HEDFB', 21),('HEDFB', 22),('HEDFB', 23),('HEDFB', 24),('HEDFB', 25),('HEDFB', 26),('HEDFB', 27),('HEDFB', 28),('HEDFB', 29), + + ('H72C3', 30),('H72C3', 31),('H72C3', 32),('H72C3', 33),('H72C3', 34),('H72C3', 35), + ('HA6EE', 30),('HA6EE', 31),('HA6EE', 32),('HA6EE', 33),('HA6EE', 34),('HA6EE', 35), + ('H8CD0', 30),('H8CD0', 31),('H8CD0', 32),('H8CD0', 33),('H8CD0', 34),('H8CD0', 35), + ('HE2E9', 30),('HE2E9', 31),('HE2E9', 32),('HE2E9', 33),('HE2E9', 34),('HE2E9', 35), + ('HAA47', 30),('HAA47', 31),('HAA47', 32),('HAA47', 33),('HAA47', 34),('HAA47', 35), + ('H3254', 36),('H3254', 37),('H3254', 38),('H3254', 39),('H3254', 40),('H3254', 41),('H3254', 42),('H3254', 43),('H3254', 44),('H3254', 45),('H3254', 46),('H3254', 47),('H3254', 48), + ('H26C7', 36),('H26C7', 37),('H26C7', 38),('H26C7', 39),('H26C7', 40),('H26C7', 41),('H26C7', 42),('H26C7', 43),('H26C7', 44),('H26C7', 45),('H26C7', 46),('H26C7', 47),('H26C7', 48), + ('HFFF9', 36),('HFFF9', 37),('HFFF9', 38),('HFFF9', 39),('HFFF9', 40),('HFFF9', 41),('HFFF9', 42),('HFFF9', 43),('HFFF9', 44),('HFFF9', 45),('HFFF9', 46),('HFFF9', 47),('HFFF9', 48), + + ('HBBCC', 49),('HBBCC', 50),('HBBCC', 51),('HBBCC', 52),('HBBCC', 53),('HBBCC', 54),('HBBCC', 55),('HBBCC', 56),('HBBCC', 57),('HBBCC', 58),('HBBCC', 59),('HBBCC', 60),('HBBCC', 61), + ('H1939', 49),('H1939', 50),('H1939', 51),('H1939', 52),('H1939', 53),('H1939', 54),('H1939', 55),('H1939', 56),('H1939', 57),('H1939', 58),('H1939', 59),('H1939', 60),('H1939', 61), + ('H8EA5', 49),('H8EA5', 50),('H8EA5', 51),('H8EA5', 52),('H8EA5', 53),('H8EA5', 54),('H8EA5', 55),('H8EA5', 56),('H8EA5', 57),('H8EA5', 58),('H8EA5', 59),('H8EA5', 60),('H8EA5', 61), + ('H602F', 49),('H602F', 50),('H602F', 51),('H602F', 52),('H602F', 53),('H602F', 54),('H602F', 55),('H602F', 56),('H602F', 57),('H602F', 58),('H602F', 59),('H602F', 60),('H602F', 61), + ('H9F0B', 62),('H9F0B', 63),('H9F0B', 64),('H9F0B', 65),('H9F0B', 66),('H9F0B', 67),('H9F0B', 68),('H9F0B', 69),('H9F0B', 70),('H9F0B', 71),('H9F0B', 72),('H9F0B', 73),('H9F0B', 74),('H9F0B', 75), + ('H0FC6', 62),('H0FC6', 63),('H0FC6', 64),('H0FC6', 65),('H0FC6', 66),('H0FC6', 67),('H0FC6', 68),('H0FC6', 69),('H0FC6', 70),('H0FC6', 71),('H0FC6', 72),('H0FC6', 73),('H0FC6', 74),('H0FC6', 75), + ('HCCFE', 62),('HCCFE', 63),('HCCFE', 64),('HCCFE', 65),('HCCFE', 66),('HCCFE', 67),('HCCFE', 68),('HCCFE', 69),('HCCFE', 70),('HCCFE', 71),('HCCFE', 72),('HCCFE', 73),('HCCFE', 74),('HCCFE', 75), + ('HB9C1', 62),('HB9C1', 63),('HB9C1', 64),('HB9C1', 65),('HB9C1', 66),('HB9C1', 67),('HB9C1', 68),('HB9C1', 69),('HB9C1', 70),('HB9C1', 71),('HB9C1', 72),('HB9C1', 73),('HB9C1', 74),('HB9C1', 75); + +INSERT INTO sidedish.sale + (id, badge, sale_type, sale_value) +VALUES + (1, '이벤트특가', 'percentage', 10), + (2, '런칭특가', 'minus', 1000); + +INSERT INTO sidedish.dish_sale + (dish, sale) +VALUES + ('HBDEF', 1), + ('HF778', 1), + ('H077F', 1), + ('H1AA9', 1), + ('H72C3', 1), + ('H72C3', 2), + ('H3254', 1), + ('H3254', 2), + ('H26C7', 1), + ('H26C7', 2), + ('HFFF9', 1), + ('HFFF9', 2); + +INSERT INTO sidedish.delivery + (id, delivery_type) +VALUES + (1, '새벽배송'), + (2, '전국택배'); + +INSERT INTO sidedish.dish_delivery + (dish, delivery) +VALUES + ('HBDEF', 1), ('HBDEF', 2), + ('HDF73', 1), ('HDF73', 2), + ('HF778', 1), ('HF778', 2), + ('HFB53', 1),('HFB53', 2), + ('H077F', 1),('H077F', 2), + ('H4665', 1),('H4665', 2), + ('H1AA9', 1),('H1AA9', 2), + ('HEDFB', 1),('HEDFB', 2), + ('H72C3', 1),('H72C3', 2), + ('HA6EE', 1),('HA6EE', 2), + ('H8CD0', 1),('H8CD0', 2), + ('HE2E9', 1),('HE2E9', 2), + ('HAA47', 1),('HAA47', 2), + ('H3254', 1),('H3254', 2), + ('H26C7', 1),('H26C7', 2), + ('HFFF9', 1),('HFFF9', 2), + ('HBBCC', 1),('HBBCC', 2), + ('H1939', 1),('H1939', 2), + ('H8EA5', 1),('H8EA5', 2), + ('H602F', 1),('H602F', 2), + ('H9F0B', 1),('H9F0B', 2), + ('H0FC6', 1),('H0FC6', 2), + ('HCCFE', 1),('HCCFE', 2), + ('HB9C1', 1),('HB9C1', 2); diff --git a/backend/src/main/resources/prod/data.sql b/backend/src/main/resources/prod/data.sql new file mode 100644 index 000000000..93d70a4cc --- /dev/null +++ b/backend/src/main/resources/prod/data.sql @@ -0,0 +1,212 @@ +INSERT INTO sidedish.category + (id, category_name, end_point) +VALUES + (1, '메인요리', '/main'), + (2, '국.찌개', '/soup'), + (3, '반찬', '/side'); + + +INSERT INTO sidedish.dish + (detail_hash, image, title, description, price, sale_price,point, delivery_info, delivery_fee, category_id, quantity) +VALUES + ('HBDEF', 'http://public.codesquad.kr/jk/storeapp/data/2d3f99a9a35601f4e98837bc4d39b2c8.jpg', '[미노리키친] 규동 250g', '일본인의 소울푸드! 한국인도 좋아하는 소고기덮밥', 6000, 5200, 52,'서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 1, 5), + ('HDF73', 'http://public.codesquad.kr/jk/storeapp/data/7674311a02ba7c88675f3186ddaeef9e.jpg', '[빅마마의밥친구] 아삭 고소한 연근고기조림 250g', '편식하는 아이도 좋아하는 건강한 연근조림', 5500, null, 55, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 1, 5), + ('HF778', 'http://public.codesquad.kr/jk/storeapp/data/cad8eee316cf7151e07638aa57b32a9d.jpg', '[소중한식사] 골뱅이무침 195g', '매콤새콤달콤, 반찬으로도 안주로도 좋은', 7000, 6300, 63, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 1, 5), + ('HFB53', 'http://public.codesquad.kr/jk/storeapp/data/b6beada6b89af950289003d929936d9c.jpg', '[옹가솜씨] 꽁치간장조림 240g', '[옹가솜씨] 꽁치간장조림 240g', 5800, null, 58, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 1, 5), + ('H077F', 'http://public.codesquad.kr/jk/storeapp/data/0221110ead70dfd455e40703bbdd6252.jpg', '[마더앤찬] 코다리구이 320g', '큼지막하고 살집 많은 동태 한 마리로 만든 코다리구이입니다.', 7500, 6750, 67, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 1, 5), + ('H4665', 'http://public.codesquad.kr/jk/storeapp/data/385f4106ac26f6e4fe7c640714f405a5.jpg', '[남도애꽃] 반건조 문어조림 120g', '씹을수록 감칠맛나는 문어살의 쫄깃함', 4600, null, 46, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 1, 5), + ('H1AA9', 'http://public.codesquad.kr/jk/storeapp/data/2455226945d52f5aefd51f35d663bb16.jpg', '[마샐미디쉬] 매콤마늘쫑 해산물볶음 180g', '탱글탱글한 새우와 오징어를 마늘쫑과 함께 매콤하게 볶아냈어요.', 6900, 6210, 62, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 1, 5), + ('HEDFB', 'http://public.codesquad.kr/jk/storeapp/data/bc3b777115e8377a48c7bd762fe5fdc9.jpg', '[빅마마의밥친구] 비빔오징어 150g', '달콤한 신야초발효액이 포인트!', 5000, null, 50, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 1, 5), + + ('H72C3', 'http://public.codesquad.kr/jk/storeapp/data/d1fccf125f0a78113d0e06cb888f2e74.jpg', '[수하동] 특곰탕 850g', '100% 한우양지로 끓여낸 70년전통의 서울식곰탕', 15000, 14200, 142, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 2, 5), + ('HA6EE', 'http://public.codesquad.kr/jk/storeapp/data/c069bc32cb37727c59e1f0c2839311a0.jpg', '[빅마마의밥친구] 된장찌개 900g', '항아리에서 숙성시킨 집된장으로만 맛을내 짜지 않은 된장찌개', 10000, null, 100, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 2, 5), + ('H8CD0', 'http://public.codesquad.kr/jk/storeapp/data/f31fc3f5828c27ff60e4cf89a862d31c.jpg', '[탐나는밥상] 동태탕 1000g', '칼칼한 국물이 속 풀기에 딱 좋은 동태탕', 14000, null, 140, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 2, 5), + ('HE2E9', 'http://public.codesquad.kr/jk/storeapp/data/6edbb16da52708e8533b85fbf743f882.jpg', '[국물닷컴] 치즈부대찌개 600g', '안주용 부대찌개와는 달라 밥말아먹기 딱 좋은', 4300, null, 43, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 2, 5), + ('HAA47', 'http://public.codesquad.kr/jk/storeapp/data/892f3e7f043bfa7dbbcd58f88eecac36.jpg', '[집밥의완성] 스키야키 1.5kg (2~3인분)', '진한 풍미의 일본식 전골, 스키야키', 10000, null, 100, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 2, 5), + ('H3254', 'http://public.codesquad.kr/jk/storeapp/data/ae571e13d18fd4f0f40d685d2c8fe8f1.jpg', '[새로미부산어묵] 프리미엄 어묵탕세트', '밀가루 0% 프리미엄 어묵에 어묵스프까지 드려요!', 18000, 14400, 144, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 2, 5), + ('H26C7', 'http://public.codesquad.kr/jk/storeapp/data/8fd330b5f5dbccbcbf4f5731e5e9e29b.jpg', '[모이세] 육개장 1팩(600g)', '제주3대해장국 맛집의 인기메뉴', 5000, 4400, 44, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 2, 5), + ('HFFF9', 'http://public.codesquad.kr/jk/storeapp/data/2416b58044d49f0d3a24256f8e76163b.jpg', '[마더앤찬] 명란감자국 630ml', '간간한 저염명란과 고소한 감자가 조화로운 국이에요', 7000, 6300, 63, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 2, 5), + + ('HBBCC', 'http://public.codesquad.kr/jk/storeapp/data/fdb0d5fcfb86e332505785225a6d9ade.jpg', '[마샐미디쉬] 유자소스 연근무침 250g', '향긋한 유자향과 아삭한 연근', 6500, null, 65, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 3, 5), + ('H1939', 'http://public.codesquad.kr/jk/storeapp/data/e5646e5fc09a01a9243979b229e0572b.jpg', '[동네부엌] 쇠고기야채장조림 200g', '부드러운 고기부터 밥비벼먹기 딱좋은 국물까지', 7400, null, 74, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 3, 5), + ('H8EA5', 'http://public.codesquad.kr/jk/storeapp/data/4cfd1954861ebd18b5b53e558a8e902e.jpg', '[소중한식사] 도라지초무침 150g', '새콤달콤 입맛 돋우는', 4000, null, 40, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 3, 5), + ('H602F', 'http://public.codesquad.kr/jk/storeapp/data/422befe07f7e2860b9a83a8d7049ec2e.jpg', '[미노리키친] 일본식 우엉조림(킨피라고보) 80g', '한국식 우엉조림과는 다른 진한 감칠맛', 3300, null, 33, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 3, 5), + + ('H9F0B', 'http://public.codesquad.kr/jk/storeapp/data/d0b5d2be962947d9534e2140d1b34b2d.jpg', '[빅마마의밥친구] 갈치포무침 150g', '쉽게 접할수 없는 꼬순내가득 갈치포 무침', 7000, null, 70, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 3, 5), + ('H0FC6', 'http://public.codesquad.kr/jk/storeapp/data/f6817349118d4c671da8dca9065649a9.jpg', '[마더앤찬] 명란치즈계란말이 230g', '아이반찬으로 최고 계란말이', 3870, null, 38, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 3, 5), + ('HCCFE', 'http://public.codesquad.kr/jk/storeapp/data/757878b14ee5a8d5af905c154fc38f01.jpg', '[옹가솜씨] 달걀곤약조림 330g', '칼로리 부담 쭉쭉 내린', 5800, null, 58, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 3, 5), + ('HB9C1', 'http://public.codesquad.kr/jk/storeapp/data/043cf496f07899e7515f761e29d1ffa9.jpg', '[너의반찬] 미소된장 고추무침 200g', '고소한 양념 때문에 손이 자꾸 가요', 4500, null, 45, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 3, 5); + +INSERT INTO sidedish.image + (id, image_url, type) +VALUES + (1, 'http://public.codesquad.kr/jk/storeapp/data/detail/HBDEF/4cce011a4a352c22cd399a60271b4921.jpg', 'thumb'), + (2, 'http://public.codesquad.kr/jk/storeapp/data/detail/HBDEF/6ef14155afc5b47e8c9efd762f7a6096.jpg', 'thumb'), + (3, 'http://public.codesquad.kr/jk/storeapp/data/detail/HBDEF/8744504ff3bc315f901dca1f26fe63a1.jpg', 'thumb'), + (4, 'http://public.codesquad.kr/jk/storeapp/data/detail/HBDEF/e30bd6de9340fc05db3cd1d1329b2c56.jpg', 'thumb'), + (5, 'http://public.codesquad.kr/jk/storeapp/data/detail/HBDEF/9c2c53b40a11b79c90549a058c2da4b7.jpg', 'detail'), + (6, 'http://public.codesquad.kr/jk/storeapp/data/detail/HBDEF/70b0c77d3ef5cdd6269588685bbefe43.jpg', 'detail'), + (7, 'http://public.codesquad.kr/jk/storeapp/data/detail/HBDEF/72f1049b047f65f42a267d5bbd1e6204.jpg', 'detail'), + (8, 'http://public.codesquad.kr/jk/storeapp/data/detail/HBDEF/768afd17faa8bf3461b8160ba0aa26bf.jpg', 'detail'), + (9, 'http://public.codesquad.kr/jk/storeapp/data/detail/HBDEF/95816f09d3294641f2e0feacaa739991.jpg', 'detail'), + (10, 'http://public.codesquad.kr/jk/storeapp/data/detail/HBDEF/2450219a4686d9d6d579fc04020929b4.jpg', 'detail'), + (11, 'http://public.codesquad.kr/jk/storeapp/data/detail/HBDEF/4971475295545ec336c9479fabb25364.jpg', 'detail'), + (12, 'http://public.codesquad.kr/jk/storeapp/data/detail/HBDEF/a8c434715709fe855f3ea1554ec362b6.jpg', 'detail'), + (13, 'http://public.codesquad.kr/jk/storeapp/data/detail/HBDEF/b2b3d0d2107ab91b16e0eb804cd84bc9.jpg', 'detail'), + (14, 'http://public.codesquad.kr/jk/storeapp/data/detail/HBDEF/c0dd6887c9d9368604fc70d7fc3c4598.jpg', 'detail'), + + (15, 'http://public.codesquad.kr/jk/storeapp/data/detail/HDF73/0f95f44ea8e2e7930321def493753a48.jpg', 'thumb'), + (16, 'http://public.codesquad.kr/jk/storeapp/data/detail/HDF73/2d408898494ac950d7d2cfd6c36d59c2.jpg', 'thumb'), + (17, 'http://public.codesquad.kr/jk/storeapp/data/detail/HDF73/62c8bb77facfc9c3be81f9bf45b27f2a.jpg', 'thumb'), + (18, 'http://public.codesquad.kr/jk/storeapp/data/detail/HDF73/f6d73afc0ebc1efa71eaea32e9d846f2.jpg', 'thumb'), + (19, 'http://public.codesquad.kr/jk/storeapp/data/detail/HDF73/9bd9158fb5ffbc46708b7928ee50708e.jpg', 'detail'), + (20, 'http://public.codesquad.kr/jk/storeapp/data/detail/HDF73/5f73c5c80b62ef63c8a8eecefe32fc29.jpg', 'detail'), + (21, 'http://public.codesquad.kr/jk/storeapp/data/detail/HDF73/9bd9158fb5ffbc46708b7928ee50708e.jpg', 'detail'), + (22, 'http://public.codesquad.kr/jk/storeapp/data/detail/HDF73/0253cdebc4972fefd6b94458024fe765.jpg', 'detail'), + (23, 'http://public.codesquad.kr/jk/storeapp/data/detail/HDF73/3299da0677b50c8c519adc0335271c49.jpg', 'detail'), + (24, 'http://public.codesquad.kr/jk/storeapp/data/detail/HDF73/0642265b65dcc2490ab164ff428cbfe2.jpg', 'detail'), + (25, 'http://public.codesquad.kr/jk/storeapp/data/detail/HDF73/695683493c1ae475a175475f50d3259f.jpg', 'detail'), + (26, 'http://public.codesquad.kr/jk/storeapp/data/detail/HDF73/c8f9bed4f5c07585b869e3d171904a93.jpg', 'detail'), + (27, 'http://public.codesquad.kr/jk/storeapp/data/detail/HDF73/d2e3274c95c832bc9bfbcebbd548f61b.jpg', 'detail'), + (28, 'http://public.codesquad.kr/jk/storeapp/data/detail/HDF73/d9e4fa00652483d74b46317d38159a2f.jpg', 'detail'), + (29, 'http://public.codesquad.kr/jk/storeapp/data/detail/HDF73/d7799b67683128642453f9e2b4c8ce84.jpg', 'detail'), + + + (30, 'http://public.codesquad.kr/jk/storeapp/data/detail/HAA47/4e96f386d5a5c4459bc0ac6ffd0c1fce.jpg', 'thumb'), + (31, 'http://public.codesquad.kr/jk/storeapp/data/detail/HAA47/00327d0df92e29bad02e7387349bed53.jpg', 'thumb'), + (32, 'http://public.codesquad.kr/jk/storeapp/data/detail/HAA47/781fea32c56eb102429902a2f62cbaf3.jpg', 'thumb'), + (33, 'http://public.codesquad.kr/jk/storeapp/data/detail/HAA47/edd7a54096d6df1b8bc8b318cea0191c.jpg', 'detail'), + (34, 'http://public.codesquad.kr/jk/storeapp/data/detail/HAA47/fb8e6e21faa8284021c1b1c7a1ae1281.jpg', 'detail'), + (35, 'http://public.codesquad.kr/jk/storeapp/data/detail/HAA47/36a0566d2fb69a4bcea946727181836d.jpg', 'detail'), + + (36, 'http://public.codesquad.kr/jk/storeapp/data/detail/H26C7/2ad963a9f63d371826748c852a0025c3.jpg', 'thumb'), + (37,'http://public.codesquad.kr/jk/storeapp/data/detail/H26C7/f945d8ac1dccc3f931bcaf35de5de582.jpg', 'thumb'), + (38,'http://public.codesquad.kr/jk/storeapp/data/detail/H26C7/bacb0b8186371bfafbd92dbeec718e13.jpg', 'thumb'), + (39,'http://public.codesquad.kr/jk/storeapp/data/detail/H26C7/b96b02e9a956c6d5ad1e10eb14ba81e0.jpg', 'thumb'), + (40,'http://public.codesquad.kr/jk/storeapp/data/detail/H26C7/3d67aabd2751620367e1d1ac3e3d7ef2.jpg', 'detail'), + (41,'http://public.codesquad.kr/jk/storeapp/data/detail/H26C7/855b42b4e80162e6930f06aa80bd1272.jpg', 'detail'), + (42,'http://public.codesquad.kr/jk/storeapp/data/detail/H26C7/1966de56cf138639d5d50d4bf2db8e72.jpg', 'detail'), + (43,'http://public.codesquad.kr/jk/storeapp/data/detail/H26C7/b3dd54082745d1188f3a6e582e7cd993.jpg', 'detail'), + (44,'http://public.codesquad.kr/jk/storeapp/data/detail/H26C7/4a6fd1fd1116c14aa6aef5e6851ab6a9.jpg', 'detail'), + (45,'http://public.codesquad.kr/jk/storeapp/data/detail/H26C7/7e12275d669102d0269278a7c91ab49d.jpg', 'detail'), + (46,'http://public.codesquad.kr/jk/storeapp/data/detail/H26C7/ab34ea3755f59a21662266eb62b7bc4b.jpg', 'detail'), + (47,'http://public.codesquad.kr/jk/storeapp/data/detail/H26C7/b0a70ff59a3b5360b6246b507693c4d4.jpg', 'detail'), + (48,'http://public.codesquad.kr/jk/storeapp/data/detail/H26C7/dc772923b4a2e053f1baf68fa28a48ee.jpg', 'detail'), + + (49, 'http://public.codesquad.kr/jk/storeapp/data/detail/H602F/c8c8045696b4692107ef28c8b445ca42.jpg', 'thumb'), + (50, 'http://public.codesquad.kr/jk/storeapp/data/detail/H602F/edc6bae2e2663f05b4e8eb5a2b95d68f.jpg', 'thumb'), + (51, 'http://public.codesquad.kr/jk/storeapp/data/detail/H602F/c935f5913dc66b11ebceeef85485c438.jpg', 'thumb'), + (52, 'http://public.codesquad.kr/jk/storeapp/data/detail/H602F/7c1e24867611394f04b37d05593e21ba.jpg', 'thumb'), + (53, 'http://public.codesquad.kr/jk/storeapp/data/detail/H602F/670e7deefe1d84a4f4e058655fbd4d7c.jpg', 'detail'), + (54, 'http://public.codesquad.kr/jk/storeapp/data/detail/H602F/1898cda038e92454395b8ffca8cd4393.jpg', 'detail'), + (55, 'http://public.codesquad.kr/jk/storeapp/data/detail/H602F/49516d302dad870fbdd75cf98a01eae4.jpg', 'detail'), + (56, 'http://public.codesquad.kr/jk/storeapp/data/detail/H602F/c1bb6fe4f72fcea27ea989ae48c61c86.jpg', 'detail'), + (57, 'http://public.codesquad.kr/jk/storeapp/data/detail/H602F/49afed8d3ec417b39ce8de456fc6661c.jpg', 'detail'), + (58, 'http://public.codesquad.kr/jk/storeapp/data/detail/H602F/e62762e63f3e12dc2857a065badf1eea.jpg', 'detail'), + (59, 'http://public.codesquad.kr/jk/storeapp/data/detail/H602F/31103ab946bff52b709ec6891e768c05.jpg', 'detail'), + (60, 'http://public.codesquad.kr/jk/storeapp/data/detail/H602F/f84dc16f4f6d97661bd13d587a72d6b1.jpg', 'detail'), + (61, 'http://public.codesquad.kr/jk/storeapp/data/detail/H602F/fd3f49614f731a0610a5409c0deb3c60.jpg', 'detail'), + + (62, 'http://public.codesquad.kr/jk/storeapp/data/detail/H0FC6/43c38eeffa556554c9b06301eb3e85b2.jpg', 'thumb'), + (63, 'http://public.codesquad.kr/jk/storeapp/data/detail/H0FC6/92f556b605c4a84813070d7214c4f336.jpg', 'thumb'), + (64, 'http://public.codesquad.kr/jk/storeapp/data/detail/H0FC6/538b8ab021c7814aa4af860d94f81287.jpg', 'thumb'), + (65, 'http://public.codesquad.kr/jk/storeapp/data/detail/H0FC6/adaef08ab0680b087096afa0f0070fad.jpg', 'thumb'), + (66, 'http://public.codesquad.kr/jk/storeapp/data/detail/H0FC6/341b8605fa224ec1808c4f169097d170.jpg', 'detail'), + (67, 'http://public.codesquad.kr/jk/storeapp/data/detail/H0FC6/0228d4cb660a3cca06952917bd024dcb.jpg', 'detail'), + (68, 'http://public.codesquad.kr/jk/storeapp/data/detail/H0FC6/e027227f61a93b6473e8c4bbd5c3de74.jpg', 'detail'), + (69, 'http://public.codesquad.kr/jk/storeapp/data/detail/H0FC6/03ac0b09199421bb61727c667c2361f6.jpg', 'detail'), + (70, 'http://public.codesquad.kr/jk/storeapp/data/detail/H0FC6/cbe4a3e12b7bdba5cf410e0e19dcf1ca.jpg', 'detail'), + (71,'http://public.codesquad.kr/jk/storeapp/data/detail/H0FC6/b58fa5791b67db106524b48442cb1c6a.jpg', 'detail'), + (72,'http://public.codesquad.kr/jk/storeapp/data/detail/H0FC6/82cfe0332f0e1c927a23b79f1d152430.jpg', 'detail'), + (73,'http://public.codesquad.kr/jk/storeapp/data/detail/H0FC6/390ca9ad5a574cbe7f3f6e26871f6690.jpg', 'detail'), + (74,'http://public.codesquad.kr/jk/storeapp/data/detail/H0FC6/e113889a6120357c8e6196802a9f155b.jpg', 'detail'), + (75,'http://public.codesquad.kr/jk/storeapp/data/detail/H0FC6/967e8e1ef357e9722b796e2bcb09ba3d.jpg', 'detail'); + +INSERT INTO sidedish.dish_image + (dish, image) +values + ('HBDEF', 1),('HBDEF', 2),('HBDEF', 3),('HBDEF', 4),('HBDEF', 5),('HBDEF', 6),('HBDEF', 7),('HBDEF', 8),('HBDEF', 9),('HBDEF', 10),('HBDEF', 11),('HBDEF', 12),('HBDEF', 13),('HBDEF', 14), + ('HDF73', 15),('HDF73', 16),('HDF73', 17),('HDF73', 18),('HDF73', 19),('HDF73', 20),('HDF73', 21),('HDF73', 22),('HDF73', 23),('HDF73', 24),('HDF73', 25),('HDF73', 26),('HDF73', 27),('HDF73', 28),('HDF73', 29), + ('HF778', 1),('HF778', 2),('HF778', 3),('HF778', 4),('HF778', 5),('HF778', 6),('HF778', 7),('HF778', 8),('HF778', 9),('HF778', 10),('HF778', 11),('HF778', 12),('HF778', 13),('HF778', 14), + ('HFB53', 1),('HFB53', 2),('HFB53', 3),('HFB53', 4),('HFB53', 5),('HFB53', 6),('HFB53', 7),('HFB53', 8),('HFB53', 9),('HFB53', 10),('HFB53', 11),('HFB53', 12),('HFB53', 13),('HFB53', 14), + ('H077F', 1),('H077F', 2),('H077F', 3),('H077F', 4),('H077F', 5),('H077F', 6),('H077F', 7),('H077F', 8),('H077F', 9),('H077F', 10),('H077F', 11),('H077F', 12),('H077F', 13),('H077F', 14), + ('H4665', 15),('H4665', 16),('H4665', 17),('H4665', 18),('H4665', 19),('H4665', 20),('H4665', 21),('H4665', 22),('H4665', 23),('H4665', 24),('H4665', 25),('H4665', 26),('H4665', 27),('H4665', 28),('H4665', 29), + ('H1AA9', 15),('H1AA9', 16),('H1AA9', 17),('H1AA9', 18),('H1AA9', 19),('H1AA9', 20),('H1AA9', 21),('H1AA9', 22),('H1AA9', 23),('H1AA9', 24),('H1AA9', 25),('H1AA9', 26),('H1AA9', 27),('H1AA9', 28),('H1AA9', 29), + ('HEDFB', 15),('HEDFB', 16),('HEDFB', 17),('HEDFB', 18),('HEDFB', 19),('HEDFB', 20),('HEDFB', 21),('HEDFB', 22),('HEDFB', 23),('HEDFB', 24),('HEDFB', 25),('HEDFB', 26),('HEDFB', 27),('HEDFB', 28),('HEDFB', 29), + + ('H72C3', 30),('H72C3', 31),('H72C3', 32),('H72C3', 33),('H72C3', 34),('H72C3', 35), + ('HA6EE', 30),('HA6EE', 31),('HA6EE', 32),('HA6EE', 33),('HA6EE', 34),('HA6EE', 35), + ('H8CD0', 30),('H8CD0', 31),('H8CD0', 32),('H8CD0', 33),('H8CD0', 34),('H8CD0', 35), + ('HE2E9', 30),('HE2E9', 31),('HE2E9', 32),('HE2E9', 33),('HE2E9', 34),('HE2E9', 35), + ('HAA47', 30),('HAA47', 31),('HAA47', 32),('HAA47', 33),('HAA47', 34),('HAA47', 35), + ('H3254', 36),('H3254', 37),('H3254', 38),('H3254', 39),('H3254', 40),('H3254', 41),('H3254', 42),('H3254', 43),('H3254', 44),('H3254', 45),('H3254', 46),('H3254', 47),('H3254', 48), + ('H26C7', 36),('H26C7', 37),('H26C7', 38),('H26C7', 39),('H26C7', 40),('H26C7', 41),('H26C7', 42),('H26C7', 43),('H26C7', 44),('H26C7', 45),('H26C7', 46),('H26C7', 47),('H26C7', 48), + ('HFFF9', 36),('HFFF9', 37),('HFFF9', 38),('HFFF9', 39),('HFFF9', 40),('HFFF9', 41),('HFFF9', 42),('HFFF9', 43),('HFFF9', 44),('HFFF9', 45),('HFFF9', 46),('HFFF9', 47),('HFFF9', 48), + + ('HBBCC', 49),('HBBCC', 50),('HBBCC', 51),('HBBCC', 52),('HBBCC', 53),('HBBCC', 54),('HBBCC', 55),('HBBCC', 56),('HBBCC', 57),('HBBCC', 58),('HBBCC', 59),('HBBCC', 60),('HBBCC', 61), + ('H1939', 49),('H1939', 50),('H1939', 51),('H1939', 52),('H1939', 53),('H1939', 54),('H1939', 55),('H1939', 56),('H1939', 57),('H1939', 58),('H1939', 59),('H1939', 60),('H1939', 61), + ('H8EA5', 49),('H8EA5', 50),('H8EA5', 51),('H8EA5', 52),('H8EA5', 53),('H8EA5', 54),('H8EA5', 55),('H8EA5', 56),('H8EA5', 57),('H8EA5', 58),('H8EA5', 59),('H8EA5', 60),('H8EA5', 61), + ('H602F', 49),('H602F', 50),('H602F', 51),('H602F', 52),('H602F', 53),('H602F', 54),('H602F', 55),('H602F', 56),('H602F', 57),('H602F', 58),('H602F', 59),('H602F', 60),('H602F', 61), + ('H9F0B', 62),('H9F0B', 63),('H9F0B', 64),('H9F0B', 65),('H9F0B', 66),('H9F0B', 67),('H9F0B', 68),('H9F0B', 69),('H9F0B', 70),('H9F0B', 71),('H9F0B', 72),('H9F0B', 73),('H9F0B', 74),('H9F0B', 75), + ('H0FC6', 62),('H0FC6', 63),('H0FC6', 64),('H0FC6', 65),('H0FC6', 66),('H0FC6', 67),('H0FC6', 68),('H0FC6', 69),('H0FC6', 70),('H0FC6', 71),('H0FC6', 72),('H0FC6', 73),('H0FC6', 74),('H0FC6', 75), + ('HCCFE', 62),('HCCFE', 63),('HCCFE', 64),('HCCFE', 65),('HCCFE', 66),('HCCFE', 67),('HCCFE', 68),('HCCFE', 69),('HCCFE', 70),('HCCFE', 71),('HCCFE', 72),('HCCFE', 73),('HCCFE', 74),('HCCFE', 75), + ('HB9C1', 62),('HB9C1', 63),('HB9C1', 64),('HB9C1', 65),('HB9C1', 66),('HB9C1', 67),('HB9C1', 68),('HB9C1', 69),('HB9C1', 70),('HB9C1', 71),('HB9C1', 72),('HB9C1', 73),('HB9C1', 74),('HB9C1', 75); + +INSERT INTO sidedish.sale + (id, badge, sale_type, sale_value) +VALUES + (1, '이벤트특가', 'percentage', 10), + (2, '런칭특가', 'minus', 1000); + +INSERT INTO sidedish.dish_sale + (dish, sale) +VALUES + ('HBDEF', 1), + ('HF778', 1), + ('H077F', 1), + ('H1AA9', 1), + ('H72C3', 1), + ('H72C3', 2), + ('H3254', 1), + ('H3254', 2), + ('H26C7', 1), + ('H26C7', 2), + ('HFFF9', 1), + ('HFFF9', 2); + +INSERT INTO sidedish.delivery + (id, delivery_type) +VALUES + (1, '새벽배송'), + (2, '전국택배'); + +INSERT INTO sidedish.dish_delivery + (dish, delivery) +VALUES + ('HBDEF', 1), ('HBDEF', 2), + ('HDF73', 1), ('HDF73', 2), + ('HF778', 1), ('HF778', 2), + ('HFB53', 1),('HFB53', 2), + ('H077F', 1),('H077F', 2), + ('H4665', 1),('H4665', 2), + ('H1AA9', 1),('H1AA9', 2), + ('HEDFB', 1),('HEDFB', 2), + ('H72C3', 1),('H72C3', 2), + ('HA6EE', 1),('HA6EE', 2), + ('H8CD0', 1),('H8CD0', 2), + ('HE2E9', 1),('HE2E9', 2), + ('HAA47', 1),('HAA47', 2), + ('H3254', 1),('H3254', 2), + ('H26C7', 1),('H26C7', 2), + ('HFFF9', 1),('HFFF9', 2), + ('HBBCC', 1),('HBBCC', 2), + ('H1939', 1),('H1939', 2), + ('H8EA5', 1),('H8EA5', 2), + ('H602F', 1),('H602F', 2), + ('H9F0B', 1),('H9F0B', 2), + ('H0FC6', 1),('H0FC6', 2), + ('HCCFE', 1),('HCCFE', 2), + ('HB9C1', 1),('HB9C1', 2); + + + diff --git a/backend/src/main/resources/prod/schema.sql b/backend/src/main/resources/prod/schema.sql new file mode 100644 index 000000000..584ad1b3b --- /dev/null +++ b/backend/src/main/resources/prod/schema.sql @@ -0,0 +1,354 @@ +-- MySQL Workbench Forward Engineering + +SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0; +SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; +SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'; + +-- ----------------------------------------------------- +-- Schema mydb +-- ----------------------------------------------------- +-- ----------------------------------------------------- +-- Schema sidedish +-- ----------------------------------------------------- +DROP SCHEMA IF EXISTS `sidedish` ; + +-- ----------------------------------------------------- +-- Schema sidedish +-- ----------------------------------------------------- +CREATE SCHEMA IF NOT EXISTS `sidedish` DEFAULT CHARACTER SET utf8 ; +USE `sidedish` ; + + + + +-- ----------------------------------------------------- +-- Table `sidedish`.`menu` +-- ----------------------------------------------------- +DROP TABLE IF EXISTS `sidedish`.`category` ; + +CREATE TABLE IF NOT EXISTS `sidedish`.`category` ( + `id` INT(11) NOT NULL AUTO_INCREMENT, + `category_name` VARCHAR(45) NOT NULL, + `end_point` VARCHAR(45) NOT NULL, + PRIMARY KEY (`id`)) + ENGINE = InnoDB + DEFAULT CHARACTER SET = utf8; + + +-- ----------------------------------------------------- +-- Table `sidedish`.`dish` +-- ----------------------------------------------------- +DROP TABLE IF EXISTS `sidedish`.`dish` ; + +CREATE TABLE IF NOT EXISTS `sidedish`.`dish` ( + `detail_hash` VARCHAR(50), + `image` VARCHAR(100), + `title` VARCHAR(50), + `description` VARCHAR(100), + `price` INT(11), + `sale_price` INT(11), + `point` INT(11), + `delivery_info` VARCHAR(50), + `delivery_fee` INT(11), + `category_id` INT(11), + `quantity` INT(11), + `current_date_time` TIMESTAMP, + PRIMARY KEY (`detail_hash`)) + ENGINE = InnoDB + DEFAULT CHARACTER SET = utf8; + +-- ----------------------------------------------------- +-- Table `sidedish`.`delivery` +-- ----------------------------------------------------- +DROP TABLE IF EXISTS `sidedish`.`delivery` ; + +CREATE TABLE IF NOT EXISTS `sidedish`.`delivery` ( + `id` INT(11) NOT NULL, + `delivery_type` VARCHAR(45) NOT NULL, + PRIMARY KEY (`id`)) + ENGINE = InnoDB + DEFAULT CHARACTER SET = utf8; + +-- ----------------------------------------------------- +-- Table `sidedish`.`dish_delivery` +-- ----------------------------------------------------- +DROP TABLE IF EXISTS `sidedish`.`dish_delivery` ; + +CREATE TABLE IF NOT EXISTS `sidedish`.`dish_delivery`( + `id` INT AUTO_INCREMENT PRIMARY KEY, + `dish` VARCHAR (50), + `delivery` INT, + CONSTRAINT dish_delivery_dish_foreign_key FOREIGN KEY (`dish`) REFERENCES `dish` (detail_hash), + CONSTRAINT dish_delivery_delivery_foreign_key FOREIGN KEY (`delivery`) REFERENCES `delivery` (id) +); + + + +-- ----------------------------------------------------- +-- Table `sidedish`.`sale` +-- ----------------------------------------------------- +DROP TABLE IF EXISTS `sidedish`.`sale` ; + +CREATE TABLE IF NOT EXISTS `sidedish`.`sale` ( + `id` INT(11) NOT NULL, + `badge` VARCHAR(45) NOT NULL, + `sale_type` VARCHAR(45) NOT NULL, + `sale_value` INT(11) NOT NULL, + PRIMARY KEY (`id`)) + ENGINE = InnoDB + DEFAULT CHARACTER SET = utf8; + + +-- ----------------------------------------------------- +-- Table `sidedish`.`dish_sale` +-- ----------------------------------------------------- +DROP TABLE IF EXISTS `sidedish`.`dish_sale` ; + +CREATE TABLE IF NOT EXISTS `sidedish`.`dish_sale`( + `id` INT AUTO_INCREMENT PRIMARY KEY, + `dish` VARCHAR (50), + `sale` INT, + CONSTRAINT dish_sale_dish_foreign_key FOREIGN KEY (`dish`) REFERENCES `dish` (detail_hash), + CONSTRAINT dish_sale_sale_foreign_key FOREIGN KEY (`sale`) REFERENCES `sale` (id) +); + + +DROP TABLE IF EXISTS `sidedish`.`image` ; + +CREATE TABLE IF NOT EXISTS `sidedish`.`image` ( + `id` INT(11) AUTO_INCREMENT NOT NULL, + `image_url` VARCHAR(100) NOT NULL, + `type` VARCHAR(45) NOT NULL, + PRIMARY KEY (`id`)) + ENGINE = InnoDB + DEFAULT CHARACTER SET = utf8; + + +-- ----------------------------------------------------- +-- Table `sidedish`.`dish_sale` +-- ----------------------------------------------------- +DROP TABLE IF EXISTS `sidedish`.`dish_image` ; + +CREATE TABLE IF NOT EXISTS `sidedish`.`dish_image`( + `id` INT AUTO_INCREMENT PRIMARY KEY, + `dish` VARCHAR (50), + `image` INT, + CONSTRAINT dish_image_dish_foreign_key FOREIGN KEY (`dish`) REFERENCES `dish` (detail_hash), + CONSTRAINT dish_image_image_foreign_key FOREIGN KEY (`image`) REFERENCES `image` (id) +); + + +INSERT INTO sidedish.category + (id, category_name, end_point) +VALUES + (1, '메인요리', '/main'), + (2, '국.찌개', '/soup'), + (3, '반찬', '/side'); + + +INSERT INTO sidedish.dish + (detail_hash, image, title, description, price, sale_price,point, delivery_info, delivery_fee, category_id, quantity) +VALUES + ('HBDEF', 'http://public.codesquad.kr/jk/storeapp/data/2d3f99a9a35601f4e98837bc4d39b2c8.jpg', '[미노리키친] 규동 250g', '일본인의 소울푸드! 한국인도 좋아하는 소고기덮밥', 6000, 5200, 52,'서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 1, 5), + ('HDF73', 'http://public.codesquad.kr/jk/storeapp/data/7674311a02ba7c88675f3186ddaeef9e.jpg', '[빅마마의밥친구] 아삭 고소한 연근고기조림 250g', '편식하는 아이도 좋아하는 건강한 연근조림', 5500, null, 55, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 1, 5), + ('HF778', 'http://public.codesquad.kr/jk/storeapp/data/cad8eee316cf7151e07638aa57b32a9d.jpg', '[소중한식사] 골뱅이무침 195g', '매콤새콤달콤, 반찬으로도 안주로도 좋은', 7000, 6300, 63, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 1, 5), + ('HFB53', 'http://public.codesquad.kr/jk/storeapp/data/b6beada6b89af950289003d929936d9c.jpg', '[옹가솜씨] 꽁치간장조림 240g', '[옹가솜씨] 꽁치간장조림 240g', 5800, null, 58, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 1, 5), + ('H077F', 'http://public.codesquad.kr/jk/storeapp/data/0221110ead70dfd455e40703bbdd6252.jpg', '[마더앤찬] 코다리구이 320g', '큼지막하고 살집 많은 동태 한 마리로 만든 코다리구이입니다.', 7500, 6750, 67, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 1, 5), + ('H4665', 'http://public.codesquad.kr/jk/storeapp/data/385f4106ac26f6e4fe7c640714f405a5.jpg', '[남도애꽃] 반건조 문어조림 120g', '씹을수록 감칠맛나는 문어살의 쫄깃함', 4600, null, 46, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 1, 5), + ('H1AA9', 'http://public.codesquad.kr/jk/storeapp/data/2455226945d52f5aefd51f35d663bb16.jpg', '[마샐미디쉬] 매콤마늘쫑 해산물볶음 180g', '탱글탱글한 새우와 오징어를 마늘쫑과 함께 매콤하게 볶아냈어요.', 6900, 6210, 62, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 1, 5), + ('HEDFB', 'http://public.codesquad.kr/jk/storeapp/data/bc3b777115e8377a48c7bd762fe5fdc9.jpg', '[빅마마의밥친구] 비빔오징어 150g', '달콤한 신야초발효액이 포인트!', 5000, null, 50, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 1, 5), + + ('H72C3', 'http://public.codesquad.kr/jk/storeapp/data/d1fccf125f0a78113d0e06cb888f2e74.jpg', '[수하동] 특곰탕 850g', '100% 한우양지로 끓여낸 70년전통의 서울식곰탕', 15000, 14200, 142, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 2, 5), + ('HA6EE', 'http://public.codesquad.kr/jk/storeapp/data/c069bc32cb37727c59e1f0c2839311a0.jpg', '[빅마마의밥친구] 된장찌개 900g', '항아리에서 숙성시킨 집된장으로만 맛을내 짜지 않은 된장찌개', 10000, null, 100, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 2, 5), + ('H8CD0', 'http://public.codesquad.kr/jk/storeapp/data/f31fc3f5828c27ff60e4cf89a862d31c.jpg', '[탐나는밥상] 동태탕 1000g', '칼칼한 국물이 속 풀기에 딱 좋은 동태탕', 14000, null, 140, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 2, 5), + ('HE2E9', 'http://public.codesquad.kr/jk/storeapp/data/6edbb16da52708e8533b85fbf743f882.jpg', '[국물닷컴] 치즈부대찌개 600g', '안주용 부대찌개와는 달라 밥말아먹기 딱 좋은', 4300, null, 43, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 2, 5), + ('HAA47', 'http://public.codesquad.kr/jk/storeapp/data/892f3e7f043bfa7dbbcd58f88eecac36.jpg', '[집밥의완성] 스키야키 1.5kg (2~3인분)', '진한 풍미의 일본식 전골, 스키야키', 10000, null, 100, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 2, 5), + ('H3254', 'http://public.codesquad.kr/jk/storeapp/data/ae571e13d18fd4f0f40d685d2c8fe8f1.jpg', '[새로미부산어묵] 프리미엄 어묵탕세트', '밀가루 0% 프리미엄 어묵에 어묵스프까지 드려요!', 18000, 14400, 144, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 2, 5), + ('H26C7', 'http://public.codesquad.kr/jk/storeapp/data/8fd330b5f5dbccbcbf4f5731e5e9e29b.jpg', '[모이세] 육개장 1팩(600g)', '제주3대해장국 맛집의 인기메뉴', 5000, 4400, 44, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 2, 5), + ('HFFF9', 'http://public.codesquad.kr/jk/storeapp/data/2416b58044d49f0d3a24256f8e76163b.jpg', '[마더앤찬] 명란감자국 630ml', '간간한 저염명란과 고소한 감자가 조화로운 국이에요', 7000, 6300, 63, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 2, 5), + + ('HBBCC', 'http://public.codesquad.kr/jk/storeapp/data/fdb0d5fcfb86e332505785225a6d9ade.jpg', '[마샐미디쉬] 유자소스 연근무침 250g', '향긋한 유자향과 아삭한 연근', 6500, null, 65, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 3, 5), + ('H1939', 'http://public.codesquad.kr/jk/storeapp/data/e5646e5fc09a01a9243979b229e0572b.jpg', '[동네부엌] 쇠고기야채장조림 200g', '부드러운 고기부터 밥비벼먹기 딱좋은 국물까지', 7400, null, 74, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 3, 5), + ('H8EA5', 'http://public.codesquad.kr/jk/storeapp/data/4cfd1954861ebd18b5b53e558a8e902e.jpg', '[소중한식사] 도라지초무침 150g', '새콤달콤 입맛 돋우는', 4000, null, 40, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 3, 5), + ('H602F', 'http://public.codesquad.kr/jk/storeapp/data/422befe07f7e2860b9a83a8d7049ec2e.jpg', '[미노리키친] 일본식 우엉조림(킨피라고보) 80g', '한국식 우엉조림과는 다른 진한 감칠맛', 3300, null, 33, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 3, 5), + + ('H9F0B', 'http://public.codesquad.kr/jk/storeapp/data/d0b5d2be962947d9534e2140d1b34b2d.jpg', '[빅마마의밥친구] 갈치포무침 150g', '쉽게 접할수 없는 꼬순내가득 갈치포 무침', 7000, null, 70, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 3, 5), + ('H0FC6', 'http://public.codesquad.kr/jk/storeapp/data/f6817349118d4c671da8dca9065649a9.jpg', '[마더앤찬] 명란치즈계란말이 230g', '아이반찬으로 최고 계란말이', 3870, null, 38, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 3, 5), + ('HCCFE', 'http://public.codesquad.kr/jk/storeapp/data/757878b14ee5a8d5af905c154fc38f01.jpg', '[옹가솜씨] 달걀곤약조림 330g', '칼로리 부담 쭉쭉 내린', 5800, null, 58, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 3, 5), + ('HB9C1', 'http://public.codesquad.kr/jk/storeapp/data/043cf496f07899e7515f761e29d1ffa9.jpg', '[너의반찬] 미소된장 고추무침 200g', '고소한 양념 때문에 손이 자꾸 가요', 4500, null, 45, '서울 경기 새벽배송 / 전국택배 (제주 및 도서산간 불가)' ,2500, 3, 5); + +INSERT INTO sidedish.image + (id, image_url, type) +VALUES + (1, 'http://public.codesquad.kr/jk/storeapp/data/detail/HBDEF/4cce011a4a352c22cd399a60271b4921.jpg', 'thumb'), + (2, 'http://public.codesquad.kr/jk/storeapp/data/detail/HBDEF/6ef14155afc5b47e8c9efd762f7a6096.jpg', 'thumb'), + (3, 'http://public.codesquad.kr/jk/storeapp/data/detail/HBDEF/8744504ff3bc315f901dca1f26fe63a1.jpg', 'thumb'), + (4, 'http://public.codesquad.kr/jk/storeapp/data/detail/HBDEF/e30bd6de9340fc05db3cd1d1329b2c56.jpg', 'thumb'), + (5, 'http://public.codesquad.kr/jk/storeapp/data/detail/HBDEF/9c2c53b40a11b79c90549a058c2da4b7.jpg', 'detail'), + (6, 'http://public.codesquad.kr/jk/storeapp/data/detail/HBDEF/70b0c77d3ef5cdd6269588685bbefe43.jpg', 'detail'), + (7, 'http://public.codesquad.kr/jk/storeapp/data/detail/HBDEF/72f1049b047f65f42a267d5bbd1e6204.jpg', 'detail'), + (8, 'http://public.codesquad.kr/jk/storeapp/data/detail/HBDEF/768afd17faa8bf3461b8160ba0aa26bf.jpg', 'detail'), + (9, 'http://public.codesquad.kr/jk/storeapp/data/detail/HBDEF/95816f09d3294641f2e0feacaa739991.jpg', 'detail'), + (10, 'http://public.codesquad.kr/jk/storeapp/data/detail/HBDEF/2450219a4686d9d6d579fc04020929b4.jpg', 'detail'), + (11, 'http://public.codesquad.kr/jk/storeapp/data/detail/HBDEF/4971475295545ec336c9479fabb25364.jpg', 'detail'), + (12, 'http://public.codesquad.kr/jk/storeapp/data/detail/HBDEF/a8c434715709fe855f3ea1554ec362b6.jpg', 'detail'), + (13, 'http://public.codesquad.kr/jk/storeapp/data/detail/HBDEF/b2b3d0d2107ab91b16e0eb804cd84bc9.jpg', 'detail'), + (14, 'http://public.codesquad.kr/jk/storeapp/data/detail/HBDEF/c0dd6887c9d9368604fc70d7fc3c4598.jpg', 'detail'), + + (15, 'http://public.codesquad.kr/jk/storeapp/data/detail/HDF73/0f95f44ea8e2e7930321def493753a48.jpg', 'thumb'), + (16, 'http://public.codesquad.kr/jk/storeapp/data/detail/HDF73/2d408898494ac950d7d2cfd6c36d59c2.jpg', 'thumb'), + (17, 'http://public.codesquad.kr/jk/storeapp/data/detail/HDF73/62c8bb77facfc9c3be81f9bf45b27f2a.jpg', 'thumb'), + (18, 'http://public.codesquad.kr/jk/storeapp/data/detail/HDF73/f6d73afc0ebc1efa71eaea32e9d846f2.jpg', 'thumb'), + (19, 'http://public.codesquad.kr/jk/storeapp/data/detail/HDF73/9bd9158fb5ffbc46708b7928ee50708e.jpg', 'detail'), + (20, 'http://public.codesquad.kr/jk/storeapp/data/detail/HDF73/5f73c5c80b62ef63c8a8eecefe32fc29.jpg', 'detail'), + (21, 'http://public.codesquad.kr/jk/storeapp/data/detail/HDF73/9bd9158fb5ffbc46708b7928ee50708e.jpg', 'detail'), + (22, 'http://public.codesquad.kr/jk/storeapp/data/detail/HDF73/0253cdebc4972fefd6b94458024fe765.jpg', 'detail'), + (23, 'http://public.codesquad.kr/jk/storeapp/data/detail/HDF73/3299da0677b50c8c519adc0335271c49.jpg', 'detail'), + (24, 'http://public.codesquad.kr/jk/storeapp/data/detail/HDF73/0642265b65dcc2490ab164ff428cbfe2.jpg', 'detail'), + (25, 'http://public.codesquad.kr/jk/storeapp/data/detail/HDF73/695683493c1ae475a175475f50d3259f.jpg', 'detail'), + (26, 'http://public.codesquad.kr/jk/storeapp/data/detail/HDF73/c8f9bed4f5c07585b869e3d171904a93.jpg', 'detail'), + (27, 'http://public.codesquad.kr/jk/storeapp/data/detail/HDF73/d2e3274c95c832bc9bfbcebbd548f61b.jpg', 'detail'), + (28, 'http://public.codesquad.kr/jk/storeapp/data/detail/HDF73/d9e4fa00652483d74b46317d38159a2f.jpg', 'detail'), + (29, 'http://public.codesquad.kr/jk/storeapp/data/detail/HDF73/d7799b67683128642453f9e2b4c8ce84.jpg', 'detail'), + + + (30, 'http://public.codesquad.kr/jk/storeapp/data/detail/HAA47/4e96f386d5a5c4459bc0ac6ffd0c1fce.jpg', 'thumb'), + (31, 'http://public.codesquad.kr/jk/storeapp/data/detail/HAA47/00327d0df92e29bad02e7387349bed53.jpg', 'thumb'), + (32, 'http://public.codesquad.kr/jk/storeapp/data/detail/HAA47/781fea32c56eb102429902a2f62cbaf3.jpg', 'thumb'), + (33, 'http://public.codesquad.kr/jk/storeapp/data/detail/HAA47/edd7a54096d6df1b8bc8b318cea0191c.jpg', 'detail'), + (34, 'http://public.codesquad.kr/jk/storeapp/data/detail/HAA47/fb8e6e21faa8284021c1b1c7a1ae1281.jpg', 'detail'), + (35, 'http://public.codesquad.kr/jk/storeapp/data/detail/HAA47/36a0566d2fb69a4bcea946727181836d.jpg', 'detail'), + + (36, 'http://public.codesquad.kr/jk/storeapp/data/detail/H26C7/2ad963a9f63d371826748c852a0025c3.jpg', 'thumb'), + (37,'http://public.codesquad.kr/jk/storeapp/data/detail/H26C7/f945d8ac1dccc3f931bcaf35de5de582.jpg', 'thumb'), + (38,'http://public.codesquad.kr/jk/storeapp/data/detail/H26C7/bacb0b8186371bfafbd92dbeec718e13.jpg', 'thumb'), + (39,'http://public.codesquad.kr/jk/storeapp/data/detail/H26C7/b96b02e9a956c6d5ad1e10eb14ba81e0.jpg', 'thumb'), + (40,'http://public.codesquad.kr/jk/storeapp/data/detail/H26C7/3d67aabd2751620367e1d1ac3e3d7ef2.jpg', 'detail'), + (41,'http://public.codesquad.kr/jk/storeapp/data/detail/H26C7/855b42b4e80162e6930f06aa80bd1272.jpg', 'detail'), + (42,'http://public.codesquad.kr/jk/storeapp/data/detail/H26C7/1966de56cf138639d5d50d4bf2db8e72.jpg', 'detail'), + (43,'http://public.codesquad.kr/jk/storeapp/data/detail/H26C7/b3dd54082745d1188f3a6e582e7cd993.jpg', 'detail'), + (44,'http://public.codesquad.kr/jk/storeapp/data/detail/H26C7/4a6fd1fd1116c14aa6aef5e6851ab6a9.jpg', 'detail'), + (45,'http://public.codesquad.kr/jk/storeapp/data/detail/H26C7/7e12275d669102d0269278a7c91ab49d.jpg', 'detail'), + (46,'http://public.codesquad.kr/jk/storeapp/data/detail/H26C7/ab34ea3755f59a21662266eb62b7bc4b.jpg', 'detail'), + (47,'http://public.codesquad.kr/jk/storeapp/data/detail/H26C7/b0a70ff59a3b5360b6246b507693c4d4.jpg', 'detail'), + (48,'http://public.codesquad.kr/jk/storeapp/data/detail/H26C7/dc772923b4a2e053f1baf68fa28a48ee.jpg', 'detail'), + + (49, 'http://public.codesquad.kr/jk/storeapp/data/detail/H602F/c8c8045696b4692107ef28c8b445ca42.jpg', 'thumb'), + (50, 'http://public.codesquad.kr/jk/storeapp/data/detail/H602F/edc6bae2e2663f05b4e8eb5a2b95d68f.jpg', 'thumb'), + (51, 'http://public.codesquad.kr/jk/storeapp/data/detail/H602F/c935f5913dc66b11ebceeef85485c438.jpg', 'thumb'), + (52, 'http://public.codesquad.kr/jk/storeapp/data/detail/H602F/7c1e24867611394f04b37d05593e21ba.jpg', 'thumb'), + (53, 'http://public.codesquad.kr/jk/storeapp/data/detail/H602F/670e7deefe1d84a4f4e058655fbd4d7c.jpg', 'detail'), + (54, 'http://public.codesquad.kr/jk/storeapp/data/detail/H602F/1898cda038e92454395b8ffca8cd4393.jpg', 'detail'), + (55, 'http://public.codesquad.kr/jk/storeapp/data/detail/H602F/49516d302dad870fbdd75cf98a01eae4.jpg', 'detail'), + (56, 'http://public.codesquad.kr/jk/storeapp/data/detail/H602F/c1bb6fe4f72fcea27ea989ae48c61c86.jpg', 'detail'), + (57, 'http://public.codesquad.kr/jk/storeapp/data/detail/H602F/49afed8d3ec417b39ce8de456fc6661c.jpg', 'detail'), + (58, 'http://public.codesquad.kr/jk/storeapp/data/detail/H602F/e62762e63f3e12dc2857a065badf1eea.jpg', 'detail'), + (59, 'http://public.codesquad.kr/jk/storeapp/data/detail/H602F/31103ab946bff52b709ec6891e768c05.jpg', 'detail'), + (60, 'http://public.codesquad.kr/jk/storeapp/data/detail/H602F/f84dc16f4f6d97661bd13d587a72d6b1.jpg', 'detail'), + (61, 'http://public.codesquad.kr/jk/storeapp/data/detail/H602F/fd3f49614f731a0610a5409c0deb3c60.jpg', 'detail'), + + (62, 'http://public.codesquad.kr/jk/storeapp/data/detail/H0FC6/43c38eeffa556554c9b06301eb3e85b2.jpg', 'thumb'), + (63, 'http://public.codesquad.kr/jk/storeapp/data/detail/H0FC6/92f556b605c4a84813070d7214c4f336.jpg', 'thumb'), + (64, 'http://public.codesquad.kr/jk/storeapp/data/detail/H0FC6/538b8ab021c7814aa4af860d94f81287.jpg', 'thumb'), + (65, 'http://public.codesquad.kr/jk/storeapp/data/detail/H0FC6/adaef08ab0680b087096afa0f0070fad.jpg', 'thumb'), + (66, 'http://public.codesquad.kr/jk/storeapp/data/detail/H0FC6/341b8605fa224ec1808c4f169097d170.jpg', 'detail'), + (67, 'http://public.codesquad.kr/jk/storeapp/data/detail/H0FC6/0228d4cb660a3cca06952917bd024dcb.jpg', 'detail'), + (68, 'http://public.codesquad.kr/jk/storeapp/data/detail/H0FC6/e027227f61a93b6473e8c4bbd5c3de74.jpg', 'detail'), + (69, 'http://public.codesquad.kr/jk/storeapp/data/detail/H0FC6/03ac0b09199421bb61727c667c2361f6.jpg', 'detail'), + (70, 'http://public.codesquad.kr/jk/storeapp/data/detail/H0FC6/cbe4a3e12b7bdba5cf410e0e19dcf1ca.jpg', 'detail'), + (71,'http://public.codesquad.kr/jk/storeapp/data/detail/H0FC6/b58fa5791b67db106524b48442cb1c6a.jpg', 'detail'), + (72,'http://public.codesquad.kr/jk/storeapp/data/detail/H0FC6/82cfe0332f0e1c927a23b79f1d152430.jpg', 'detail'), + (73,'http://public.codesquad.kr/jk/storeapp/data/detail/H0FC6/390ca9ad5a574cbe7f3f6e26871f6690.jpg', 'detail'), + (74,'http://public.codesquad.kr/jk/storeapp/data/detail/H0FC6/e113889a6120357c8e6196802a9f155b.jpg', 'detail'), + (75,'http://public.codesquad.kr/jk/storeapp/data/detail/H0FC6/967e8e1ef357e9722b796e2bcb09ba3d.jpg', 'detail'); + +INSERT INTO sidedish.dish_image + (dish, image) +values + ('HBDEF', 1),('HBDEF', 2),('HBDEF', 3),('HBDEF', 4),('HBDEF', 5),('HBDEF', 6),('HBDEF', 7),('HBDEF', 8),('HBDEF', 9),('HBDEF', 10),('HBDEF', 11),('HBDEF', 12),('HBDEF', 13),('HBDEF', 14), + ('HDF73', 15),('HDF73', 16),('HDF73', 17),('HDF73', 18),('HDF73', 19),('HDF73', 20),('HDF73', 21),('HDF73', 22),('HDF73', 23),('HDF73', 24),('HDF73', 25),('HDF73', 26),('HDF73', 27),('HDF73', 28),('HDF73', 29), + ('HF778', 1),('HF778', 2),('HF778', 3),('HF778', 4),('HF778', 5),('HF778', 6),('HF778', 7),('HF778', 8),('HF778', 9),('HF778', 10),('HF778', 11),('HF778', 12),('HF778', 13),('HF778', 14), + ('HFB53', 1),('HFB53', 2),('HFB53', 3),('HFB53', 4),('HFB53', 5),('HFB53', 6),('HFB53', 7),('HFB53', 8),('HFB53', 9),('HFB53', 10),('HFB53', 11),('HFB53', 12),('HFB53', 13),('HFB53', 14), + ('H077F', 1),('H077F', 2),('H077F', 3),('H077F', 4),('H077F', 5),('H077F', 6),('H077F', 7),('H077F', 8),('H077F', 9),('H077F', 10),('H077F', 11),('H077F', 12),('H077F', 13),('H077F', 14), + ('H4665', 15),('H4665', 16),('H4665', 17),('H4665', 18),('H4665', 19),('H4665', 20),('H4665', 21),('H4665', 22),('H4665', 23),('H4665', 24),('H4665', 25),('H4665', 26),('H4665', 27),('H4665', 28),('H4665', 29), + ('H1AA9', 15),('H1AA9', 16),('H1AA9', 17),('H1AA9', 18),('H1AA9', 19),('H1AA9', 20),('H1AA9', 21),('H1AA9', 22),('H1AA9', 23),('H1AA9', 24),('H1AA9', 25),('H1AA9', 26),('H1AA9', 27),('H1AA9', 28),('H1AA9', 29), + ('HEDFB', 15),('HEDFB', 16),('HEDFB', 17),('HEDFB', 18),('HEDFB', 19),('HEDFB', 20),('HEDFB', 21),('HEDFB', 22),('HEDFB', 23),('HEDFB', 24),('HEDFB', 25),('HEDFB', 26),('HEDFB', 27),('HEDFB', 28),('HEDFB', 29), + + ('H72C3', 30),('H72C3', 31),('H72C3', 32),('H72C3', 33),('H72C3', 34),('H72C3', 35), + ('HA6EE', 30),('HA6EE', 31),('HA6EE', 32),('HA6EE', 33),('HA6EE', 34),('HA6EE', 35), + ('H8CD0', 30),('H8CD0', 31),('H8CD0', 32),('H8CD0', 33),('H8CD0', 34),('H8CD0', 35), + ('HE2E9', 30),('HE2E9', 31),('HE2E9', 32),('HE2E9', 33),('HE2E9', 34),('HE2E9', 35), + ('HAA47', 30),('HAA47', 31),('HAA47', 32),('HAA47', 33),('HAA47', 34),('HAA47', 35), + ('H3254', 36),('H3254', 37),('H3254', 38),('H3254', 39),('H3254', 40),('H3254', 41),('H3254', 42),('H3254', 43),('H3254', 44),('H3254', 45),('H3254', 46),('H3254', 47),('H3254', 48), + ('H26C7', 36),('H26C7', 37),('H26C7', 38),('H26C7', 39),('H26C7', 40),('H26C7', 41),('H26C7', 42),('H26C7', 43),('H26C7', 44),('H26C7', 45),('H26C7', 46),('H26C7', 47),('H26C7', 48), + ('HFFF9', 36),('HFFF9', 37),('HFFF9', 38),('HFFF9', 39),('HFFF9', 40),('HFFF9', 41),('HFFF9', 42),('HFFF9', 43),('HFFF9', 44),('HFFF9', 45),('HFFF9', 46),('HFFF9', 47),('HFFF9', 48), + + ('HBBCC', 49),('HBBCC', 50),('HBBCC', 51),('HBBCC', 52),('HBBCC', 53),('HBBCC', 54),('HBBCC', 55),('HBBCC', 56),('HBBCC', 57),('HBBCC', 58),('HBBCC', 59),('HBBCC', 60),('HBBCC', 61), + ('H1939', 49),('H1939', 50),('H1939', 51),('H1939', 52),('H1939', 53),('H1939', 54),('H1939', 55),('H1939', 56),('H1939', 57),('H1939', 58),('H1939', 59),('H1939', 60),('H1939', 61), + ('H8EA5', 49),('H8EA5', 50),('H8EA5', 51),('H8EA5', 52),('H8EA5', 53),('H8EA5', 54),('H8EA5', 55),('H8EA5', 56),('H8EA5', 57),('H8EA5', 58),('H8EA5', 59),('H8EA5', 60),('H8EA5', 61), + ('H602F', 49),('H602F', 50),('H602F', 51),('H602F', 52),('H602F', 53),('H602F', 54),('H602F', 55),('H602F', 56),('H602F', 57),('H602F', 58),('H602F', 59),('H602F', 60),('H602F', 61), + ('H9F0B', 62),('H9F0B', 63),('H9F0B', 64),('H9F0B', 65),('H9F0B', 66),('H9F0B', 67),('H9F0B', 68),('H9F0B', 69),('H9F0B', 70),('H9F0B', 71),('H9F0B', 72),('H9F0B', 73),('H9F0B', 74),('H9F0B', 75), + ('H0FC6', 62),('H0FC6', 63),('H0FC6', 64),('H0FC6', 65),('H0FC6', 66),('H0FC6', 67),('H0FC6', 68),('H0FC6', 69),('H0FC6', 70),('H0FC6', 71),('H0FC6', 72),('H0FC6', 73),('H0FC6', 74),('H0FC6', 75), + ('HCCFE', 62),('HCCFE', 63),('HCCFE', 64),('HCCFE', 65),('HCCFE', 66),('HCCFE', 67),('HCCFE', 68),('HCCFE', 69),('HCCFE', 70),('HCCFE', 71),('HCCFE', 72),('HCCFE', 73),('HCCFE', 74),('HCCFE', 75), + ('HB9C1', 62),('HB9C1', 63),('HB9C1', 64),('HB9C1', 65),('HB9C1', 66),('HB9C1', 67),('HB9C1', 68),('HB9C1', 69),('HB9C1', 70),('HB9C1', 71),('HB9C1', 72),('HB9C1', 73),('HB9C1', 74),('HB9C1', 75); + +INSERT INTO sidedish.sale + (id, badge, sale_type, sale_value) +VALUES + (1, '이벤트특가', 'percentage', 10), + (2, '런칭특가', 'minus', 1000); + +INSERT INTO sidedish.dish_sale + (dish, sale) +VALUES + ('HBDEF', 1), + ('HF778', 1), + ('H077F', 1), + ('H1AA9', 1), + ('H72C3', 1), + ('H72C3', 2), + ('H3254', 1), + ('H3254', 2), + ('H26C7', 1), + ('H26C7', 2), + ('HFFF9', 1), + ('HFFF9', 2); + +INSERT INTO sidedish.delivery + (id, delivery_type) +VALUES + (1, '새벽배송'), + (2, '전국택배'); + +INSERT INTO sidedish.dish_delivery + (dish, delivery) +VALUES + ('HBDEF', 1), ('HBDEF', 2), + ('HDF73', 1), ('HDF73', 2), + ('HF778', 1), ('HF778', 2), + ('HFB53', 1),('HFB53', 2), + ('H077F', 1),('H077F', 2), + ('H4665', 1),('H4665', 2), + ('H1AA9', 1),('H1AA9', 2), + ('HEDFB', 1),('HEDFB', 2), + ('H72C3', 1),('H72C3', 2), + ('HA6EE', 1),('HA6EE', 2), + ('H8CD0', 1),('H8CD0', 2), + ('HE2E9', 1),('HE2E9', 2), + ('HAA47', 1),('HAA47', 2), + ('H3254', 1),('H3254', 2), + ('H26C7', 1),('H26C7', 2), + ('HFFF9', 1),('HFFF9', 2), + ('HBBCC', 1),('HBBCC', 2), + ('H1939', 1),('H1939', 2), + ('H8EA5', 1),('H8EA5', 2), + ('H602F', 1),('H602F', 2), + ('H9F0B', 1),('H9F0B', 2), + ('H0FC6', 1),('H0FC6', 2), + ('HCCFE', 1),('HCCFE', 2), + ('HB9C1', 1),('HB9C1', 2); + + +SET SQL_MODE=@OLD_SQL_MODE; +SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS; +SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS; diff --git a/backend/src/main/resources/schema.sql b/backend/src/main/resources/schema.sql deleted file mode 100644 index 1a0428c9f..000000000 --- a/backend/src/main/resources/schema.sql +++ /dev/null @@ -1,123 +0,0 @@ --- MySQL Workbench Forward Engineering - -SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0; -SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; -SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'; - --- ----------------------------------------------------- --- Schema mydb --- ----------------------------------------------------- --- ----------------------------------------------------- --- Schema sidedish --- ----------------------------------------------------- -DROP SCHEMA IF EXISTS `sidedish` ; - --- ----------------------------------------------------- --- Schema sidedish --- ----------------------------------------------------- -CREATE SCHEMA IF NOT EXISTS `sidedish` DEFAULT CHARACTER SET utf8 ; -USE `sidedish` ; - --- ----------------------------------------------------- --- Table `sidedish`.`delivery` --- ----------------------------------------------------- -DROP TABLE IF EXISTS `sidedish`.`delivery` ; - -CREATE TABLE IF NOT EXISTS `sidedish`.`delivery` ( - `id` INT(11) NOT NULL, - `type` VARCHAR(45) NOT NULL, - PRIMARY KEY (`id`)) - ENGINE = InnoDB - DEFAULT CHARACTER SET = utf8; - - --- ----------------------------------------------------- --- Table `sidedish`.`menu` --- ----------------------------------------------------- -DROP TABLE IF EXISTS `sidedish`.`menu` ; - -CREATE TABLE IF NOT EXISTS `sidedish`.`menu` ( - `id` INT(11) NOT NULL, - `name` VARCHAR(45) NOT NULL, - `endpoint` VARCHAR(45) NOT NULL, - PRIMARY KEY (`id`)) - ENGINE = InnoDB - DEFAULT CHARACTER SET = utf8; - - --- ----------------------------------------------------- --- Table `sidedish`.`dish` --- ----------------------------------------------------- -DROP TABLE IF EXISTS `sidedish`.`dish` ; - -CREATE TABLE IF NOT EXISTS `sidedish`.`dish` ( - `detail_hash` VARCHAR(50) NOT NULL, - `image` VARCHAR(100) NOT NULL, - `alt` VARCHAR(50) NOT NULL, - `title` VARCHAR(50) NOT NULL, - `description` VARCHAR(100) NOT NULL, - `n_price` VARCHAR(45) NOT NULL, - `menu_id` INT(11) NOT NULL, - PRIMARY KEY (`detail_hash`)) - ENGINE = InnoDB - DEFAULT CHARACTER SET = utf8; - - --- ----------------------------------------------------- --- Table `sidedish`.`dish_delivery` --- ----------------------------------------------------- -DROP TABLE IF EXISTS `sidedish`.`dish_delivery` ; - -CREATE TABLE IF NOT EXISTS `sidedish`.`dish_delivery` ( - `id` INT(11) NOT NULL, - `dish_detail_hash` VARCHAR(50) NOT NULL, - `delivery_id` INT(11) NOT NULL, - PRIMARY KEY (`id`)) - ENGINE = InnoDB - DEFAULT CHARACTER SET = utf8; - - --- ----------------------------------------------------- --- Table `sidedish`.`sale` --- ----------------------------------------------------- -DROP TABLE IF EXISTS `sidedish`.`sale` ; - -CREATE TABLE IF NOT EXISTS `sidedish`.`sale` ( - `id` INT(11) NOT NULL, - `badge` VARCHAR(45) NOT NULL, - `sale_type` VARCHAR(45) NOT NULL, - `sale_vlaue` INT(11) NOT NULL, - PRIMARY KEY (`id`)) - ENGINE = InnoDB - DEFAULT CHARACTER SET = utf8; - - --- ----------------------------------------------------- --- Table `sidedish`.`dish_sale` --- ----------------------------------------------------- -DROP TABLE IF EXISTS `sidedish`.`dish_sale` ; - -CREATE TABLE IF NOT EXISTS `sidedish`.`dish_sale` ( - `id` INT(11) NOT NULL, - `dish_detail_hash` VARCHAR(50) NOT NULL, - `sale_id` INT(11) NOT NULL, - PRIMARY KEY (`id`)) - ENGINE = InnoDB - DEFAULT CHARACTER SET = utf8; - - -SET SQL_MODE=@OLD_SQL_MODE; -SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS; -SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS; - - - - - - - - - - - - diff --git a/backend/src/test/java/com/codesquad/sidedish/SideDish/SideDishApplicationTests.java b/backend/src/test/java/com/codesquad/sidedish/SideDish/SideDishApplicationTests.java deleted file mode 100644 index a6c96c16b..000000000 --- a/backend/src/test/java/com/codesquad/sidedish/SideDish/SideDishApplicationTests.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.codesquad.sidedish.SideDish; - -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.context.SpringBootTest; - -@SpringBootTest -class SideDishApplicationTests { - - @Test - void contextLoads() { - } - -} diff --git a/backend/src/test/java/com/codesquad/sidedish/SideDish/domain/CategoryRepositoryTest.java b/backend/src/test/java/com/codesquad/sidedish/SideDish/domain/CategoryRepositoryTest.java new file mode 100644 index 000000000..459959150 --- /dev/null +++ b/backend/src/test/java/com/codesquad/sidedish/SideDish/domain/CategoryRepositoryTest.java @@ -0,0 +1,47 @@ +package com.codesquad.sidedish.SideDish.domain; + +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.transaction.annotation.Transactional; + +import static org.assertj.core.api.Assertions.assertThat; + +@Transactional +@SpringBootTest +@ActiveProfiles("dev") +class CategoryRepositoryTest { + + private Logger logger = LoggerFactory.getLogger(CategoryRepositoryTest.class); + @Autowired + private CategoryRepository categoryRepository; + + @Test + @DisplayName("category 정보 테스트") + void readCategory() { + Long mainId = 1L; + Category main = categoryRepository.findById(mainId).get(); + logger.info("main {}", main.toString()); + + Long soupId = 2L; + Category soup = categoryRepository.findById(soupId).get(); + logger.info("soup {}", soup.toString()); + + Long sideId = 3L; + Category side = categoryRepository.findById(sideId).get(); + logger.info("side {}", side.toString()); + + checkNameAndEndPoint(main, "메인요리", "/main"); + checkNameAndEndPoint(soup, "국.찌개", "/soup"); + checkNameAndEndPoint(side, "반찬", "/side"); + } + + private void checkNameAndEndPoint(Category category, String name, String endPoint) { + assertThat(category.getCategoryName()).isEqualTo(name); + assertThat(category.getEndPoint()).isEqualTo(endPoint); + } +}