From c06a0cb6f1b962c25efe3c9a9b9ee7733ca0bb8f Mon Sep 17 00:00:00 2001 From: yujining3827 Date: Tue, 7 Apr 2026 23:11:55 +0900 Subject: [PATCH 01/46] =?UTF-8?q?feat:=20week4=20=EA=B3=BC=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitattributes | 3 + .gitignore | 55 ++-- build.gradle | 40 +++ gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 48966 bytes gradle/wrapper/gradle-wrapper.properties | 7 + gradlew | 248 ++++++++++++++++++ gradlew.bat | 93 +++++++ settings.gradle | 1 + .../example/umc10th/Umc10thApplication.java | 13 + .../member/controller/MemberController.java | 4 + .../member/converter/MemberConverter.java | 4 + .../domain/member/dto/MemberReqDTO.java | 4 + .../domain/member/dto/MemberResDTO.java | 4 + .../domain/member/entity/FoodCategory.java | 4 + .../umc10th/domain/member/entity/Member.java | 4 + .../domain/member/entity/Notification.java | 4 + .../umc10th/domain/member/entity/Term.java | 4 + .../member/entity/mapping/Preference.java | 4 + .../entity/mapping/UserTermAgreement.java | 4 + .../umc10th/domain/member/enums/Gender.java | 4 + .../member/enums/NotifictationType.java | 4 + .../umc10th/domain/member/enums/UserType.java | 4 + .../member/exception/MemberExpection.java | 4 + .../exception/code/MemberErrorCode.java | 4 + .../exception/code/MemberSuccessCode.java | 4 + .../member/repository/MemberRepository.java | 4 + .../domain/member/service/MewmberService.java | 4 + .../mission/controller/MissionController.java | 4 + .../mission/converter/MissionConverter.java | 4 + .../domain/mission/dto/MissionReqDTO.java | 4 + .../domain/mission/dto/MissionResDTO.java | 4 + .../domain/mission/enums/MissionStatus.java | 4 + .../mission/enums/ParticipatedStatus.java | 4 + .../domain/mission/erntity/Market.java | 4 + .../domain/mission/erntity/Mission.java | 4 + .../domain/mission/erntity/Region.java | 4 + .../mission/erntity/mapping/Particiopate.java | 4 + .../mission/exception/MissionExcepotion.java | 4 + .../exception/code/MissionErrorCode.java | 4 + .../exception/code/MissionSuccessCode.java | 4 + .../mission/repository/MissionRepository.java | 4 + .../mission/service/MissionService.java | 4 + .../review/controller/ReviewController.java | 4 + .../review/converter/ReviewConverter.java | 4 + .../domain/review/dto/ReviewReqDTO.java | 4 + .../domain/review/dto/ReviewResDTO.java | 4 + .../umc10th/domain/review/entity/Review.java | 4 + .../review/exception/ReviewException.java | 4 + .../exception/code/ReviewErrorCode.java | 4 + .../exception/code/ReviewSuccessCode.java | 4 + .../review/repository/ReviewRepository.java | 4 + .../domain/review/service/ReviewService.java | 4 + .../umc10th/global/config/SwaggerConfig.java | 36 +++ src/main/resources/application.yml | 19 ++ .../umc10th/Umc10thApplicationTests.java | 13 + 55 files changed, 681 insertions(+), 19 deletions(-) create mode 100644 .gitattributes create mode 100644 build.gradle create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100755 gradlew create mode 100644 gradlew.bat create mode 100644 settings.gradle create mode 100644 src/main/java/com/example/umc10th/Umc10thApplication.java create mode 100644 src/main/java/com/example/umc10th/domain/member/controller/MemberController.java create mode 100644 src/main/java/com/example/umc10th/domain/member/converter/MemberConverter.java create mode 100644 src/main/java/com/example/umc10th/domain/member/dto/MemberReqDTO.java create mode 100644 src/main/java/com/example/umc10th/domain/member/dto/MemberResDTO.java create mode 100644 src/main/java/com/example/umc10th/domain/member/entity/FoodCategory.java create mode 100644 src/main/java/com/example/umc10th/domain/member/entity/Member.java create mode 100644 src/main/java/com/example/umc10th/domain/member/entity/Notification.java create mode 100644 src/main/java/com/example/umc10th/domain/member/entity/Term.java create mode 100644 src/main/java/com/example/umc10th/domain/member/entity/mapping/Preference.java create mode 100644 src/main/java/com/example/umc10th/domain/member/entity/mapping/UserTermAgreement.java create mode 100644 src/main/java/com/example/umc10th/domain/member/enums/Gender.java create mode 100644 src/main/java/com/example/umc10th/domain/member/enums/NotifictationType.java create mode 100644 src/main/java/com/example/umc10th/domain/member/enums/UserType.java create mode 100644 src/main/java/com/example/umc10th/domain/member/exception/MemberExpection.java create mode 100644 src/main/java/com/example/umc10th/domain/member/exception/code/MemberErrorCode.java create mode 100644 src/main/java/com/example/umc10th/domain/member/exception/code/MemberSuccessCode.java create mode 100644 src/main/java/com/example/umc10th/domain/member/repository/MemberRepository.java create mode 100644 src/main/java/com/example/umc10th/domain/member/service/MewmberService.java create mode 100644 src/main/java/com/example/umc10th/domain/mission/controller/MissionController.java create mode 100644 src/main/java/com/example/umc10th/domain/mission/converter/MissionConverter.java create mode 100644 src/main/java/com/example/umc10th/domain/mission/dto/MissionReqDTO.java create mode 100644 src/main/java/com/example/umc10th/domain/mission/dto/MissionResDTO.java create mode 100644 src/main/java/com/example/umc10th/domain/mission/enums/MissionStatus.java create mode 100644 src/main/java/com/example/umc10th/domain/mission/enums/ParticipatedStatus.java create mode 100644 src/main/java/com/example/umc10th/domain/mission/erntity/Market.java create mode 100644 src/main/java/com/example/umc10th/domain/mission/erntity/Mission.java create mode 100644 src/main/java/com/example/umc10th/domain/mission/erntity/Region.java create mode 100644 src/main/java/com/example/umc10th/domain/mission/erntity/mapping/Particiopate.java create mode 100644 src/main/java/com/example/umc10th/domain/mission/exception/MissionExcepotion.java create mode 100644 src/main/java/com/example/umc10th/domain/mission/exception/code/MissionErrorCode.java create mode 100644 src/main/java/com/example/umc10th/domain/mission/exception/code/MissionSuccessCode.java create mode 100644 src/main/java/com/example/umc10th/domain/mission/repository/MissionRepository.java create mode 100644 src/main/java/com/example/umc10th/domain/mission/service/MissionService.java create mode 100644 src/main/java/com/example/umc10th/domain/review/controller/ReviewController.java create mode 100644 src/main/java/com/example/umc10th/domain/review/converter/ReviewConverter.java create mode 100644 src/main/java/com/example/umc10th/domain/review/dto/ReviewReqDTO.java create mode 100644 src/main/java/com/example/umc10th/domain/review/dto/ReviewResDTO.java create mode 100644 src/main/java/com/example/umc10th/domain/review/entity/Review.java create mode 100644 src/main/java/com/example/umc10th/domain/review/exception/ReviewException.java create mode 100644 src/main/java/com/example/umc10th/domain/review/exception/code/ReviewErrorCode.java create mode 100644 src/main/java/com/example/umc10th/domain/review/exception/code/ReviewSuccessCode.java create mode 100644 src/main/java/com/example/umc10th/domain/review/repository/ReviewRepository.java create mode 100644 src/main/java/com/example/umc10th/domain/review/service/ReviewService.java create mode 100644 src/main/java/com/example/umc10th/global/config/SwaggerConfig.java create mode 100644 src/main/resources/application.yml create mode 100644 src/test/java/com/example/umc10th/Umc10thApplicationTests.java diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..8af972c --- /dev/null +++ b/.gitattributes @@ -0,0 +1,3 @@ +/gradlew text eol=lf +*.bat text eol=crlf +*.jar binary diff --git a/.gitignore b/.gitignore index 524f096..4fc02d3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,24 +1,41 @@ -# Compiled class file -*.class +HELP.md +.gradle +build/ +!gradle/wrapper/gradle-wrapper.jar +!**/src/main/**/build/ +!**/src/test/**/build/ -# Log file -*.log +### 민감한 정보 ### +.env +application.yml -# BlueJ files -*.ctxt +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache +bin/ +!**/src/main/**/bin/ +!**/src/test/**/bin/ -# Mobile Tools for Java (J2ME) -.mtj.tmp/ +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr +out/ +!**/src/main/**/out/ +!**/src/test/**/out/ -# Package Files # -*.jar -*.war -*.nar -*.ear -*.zip -*.tar.gz -*.rar +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ -# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml -hs_err_pid* -replay_pid* +### VS Code ### +.vscode/ diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..4c42238 --- /dev/null +++ b/build.gradle @@ -0,0 +1,40 @@ +plugins { + id 'java' + id 'org.springframework.boot' version '4.0.5' + id 'io.spring.dependency-management' version '1.1.7' +} + +group = 'com.example' +version = '0.0.1-SNAPSHOT' +description = 'umc10th' + +java { + toolchain { + languageVersion = JavaLanguageVersion.of(21) + } +} + +repositories { + mavenCentral() +} + +dependencies { + implementation 'org.springframework.boot:spring-boot-starter-data-jpa' + implementation 'org.springframework.boot:spring-boot-starter-webmvc' + compileOnly 'org.projectlombok:lombok' + runtimeOnly 'com.mysql:mysql-connector-j' + annotationProcessor 'org.projectlombok:lombok' + testImplementation 'org.springframework.boot:spring-boot-starter-data-jpa-test' + testImplementation 'org.springframework.boot:spring-boot-starter-webmvc-test' + testCompileOnly 'org.projectlombok:lombok' + testRuntimeOnly 'org.junit.platform:junit-platform-launcher' + testAnnotationProcessor 'org.projectlombok:lombok' + + // Swagger + implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:3.0.1' + implementation 'org.springdoc:springdoc-openapi-starter-webmvc-api:3.0.1' +} + +tasks.named('test') { + useJUnitPlatform() +} diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..d997cfc60f4cff0e7451d19d49a82fa986695d07 GIT binary patch literal 48966 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

`Lem|V$A>eR0uN8Y&sdjtu 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

1bvi{DS7E@q1{$_8->K{_OWv2 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 literal 0 HcmV?d00001 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..c61a118 --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,7 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.1-bin.zip +networkTimeout=10000 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew new file mode 100755 index 0000000..739907d --- /dev/null +++ b/gradlew @@ -0,0 +1,248 @@ +#!/bin/sh + +# +# Copyright © 2015 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/2d6327017519d23b96af35865dc997fcb544fb40/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..c4bdd3a --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,93 @@ +@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 +@rem SPDX-License-Identifier: Apache-2.0 +@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=. +@rem This is normally unused +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% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:execute +@rem Setup the command line + + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 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! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 0000000..67a1b8e --- /dev/null +++ b/settings.gradle @@ -0,0 +1 @@ +rootProject.name = 'umc10th' diff --git a/src/main/java/com/example/umc10th/Umc10thApplication.java b/src/main/java/com/example/umc10th/Umc10thApplication.java new file mode 100644 index 0000000..9983f43 --- /dev/null +++ b/src/main/java/com/example/umc10th/Umc10thApplication.java @@ -0,0 +1,13 @@ +package com.example.umc10th; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class Umc10thApplication { + + public static void main(String[] args) { + SpringApplication.run(Umc10thApplication.class, args); + } + +} diff --git a/src/main/java/com/example/umc10th/domain/member/controller/MemberController.java b/src/main/java/com/example/umc10th/domain/member/controller/MemberController.java new file mode 100644 index 0000000..cfe81a6 --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/member/controller/MemberController.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.member.controller; + +public class MemberController { +} diff --git a/src/main/java/com/example/umc10th/domain/member/converter/MemberConverter.java b/src/main/java/com/example/umc10th/domain/member/converter/MemberConverter.java new file mode 100644 index 0000000..2c6188e --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/member/converter/MemberConverter.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.member.converter; + +public class MemberConverter { +} diff --git a/src/main/java/com/example/umc10th/domain/member/dto/MemberReqDTO.java b/src/main/java/com/example/umc10th/domain/member/dto/MemberReqDTO.java new file mode 100644 index 0000000..3905d3b --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/member/dto/MemberReqDTO.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.member.dto; + +public class MemberReqDTO { +} diff --git a/src/main/java/com/example/umc10th/domain/member/dto/MemberResDTO.java b/src/main/java/com/example/umc10th/domain/member/dto/MemberResDTO.java new file mode 100644 index 0000000..8e81830 --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/member/dto/MemberResDTO.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.member.dto; + +public class MemberResDTO { +} diff --git a/src/main/java/com/example/umc10th/domain/member/entity/FoodCategory.java b/src/main/java/com/example/umc10th/domain/member/entity/FoodCategory.java new file mode 100644 index 0000000..e6e3886 --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/member/entity/FoodCategory.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.member.entity; + +public class FoodCategory { +} diff --git a/src/main/java/com/example/umc10th/domain/member/entity/Member.java b/src/main/java/com/example/umc10th/domain/member/entity/Member.java new file mode 100644 index 0000000..eb718c3 --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/member/entity/Member.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.member.entity; + +public class Member { +} diff --git a/src/main/java/com/example/umc10th/domain/member/entity/Notification.java b/src/main/java/com/example/umc10th/domain/member/entity/Notification.java new file mode 100644 index 0000000..9152d8e --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/member/entity/Notification.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.member.entity; + +public class Notification { +} diff --git a/src/main/java/com/example/umc10th/domain/member/entity/Term.java b/src/main/java/com/example/umc10th/domain/member/entity/Term.java new file mode 100644 index 0000000..bb3b640 --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/member/entity/Term.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.member.entity; + +public class Term { +} diff --git a/src/main/java/com/example/umc10th/domain/member/entity/mapping/Preference.java b/src/main/java/com/example/umc10th/domain/member/entity/mapping/Preference.java new file mode 100644 index 0000000..07736e4 --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/member/entity/mapping/Preference.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.member.entity.mapping; + +public class Preference { +} diff --git a/src/main/java/com/example/umc10th/domain/member/entity/mapping/UserTermAgreement.java b/src/main/java/com/example/umc10th/domain/member/entity/mapping/UserTermAgreement.java new file mode 100644 index 0000000..94df8e7 --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/member/entity/mapping/UserTermAgreement.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.member.entity.mapping; + +public class UserTermAgreement { +} diff --git a/src/main/java/com/example/umc10th/domain/member/enums/Gender.java b/src/main/java/com/example/umc10th/domain/member/enums/Gender.java new file mode 100644 index 0000000..b9e9056 --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/member/enums/Gender.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.member.enums; + +public class Gender { +} diff --git a/src/main/java/com/example/umc10th/domain/member/enums/NotifictationType.java b/src/main/java/com/example/umc10th/domain/member/enums/NotifictationType.java new file mode 100644 index 0000000..05d4e66 --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/member/enums/NotifictationType.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.member.enums; + +public class NotifictationType { +} diff --git a/src/main/java/com/example/umc10th/domain/member/enums/UserType.java b/src/main/java/com/example/umc10th/domain/member/enums/UserType.java new file mode 100644 index 0000000..d5a3af9 --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/member/enums/UserType.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.member.enums; + +public class UserType { +} diff --git a/src/main/java/com/example/umc10th/domain/member/exception/MemberExpection.java b/src/main/java/com/example/umc10th/domain/member/exception/MemberExpection.java new file mode 100644 index 0000000..cfc9d67 --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/member/exception/MemberExpection.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.member.exception; + +public class MemberExpection { +} diff --git a/src/main/java/com/example/umc10th/domain/member/exception/code/MemberErrorCode.java b/src/main/java/com/example/umc10th/domain/member/exception/code/MemberErrorCode.java new file mode 100644 index 0000000..328dfc8 --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/member/exception/code/MemberErrorCode.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.member.exception.code; + +public class MemberErrorCode { +} diff --git a/src/main/java/com/example/umc10th/domain/member/exception/code/MemberSuccessCode.java b/src/main/java/com/example/umc10th/domain/member/exception/code/MemberSuccessCode.java new file mode 100644 index 0000000..c72eb55 --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/member/exception/code/MemberSuccessCode.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.member.exception.code; + +public class MemberSuccessCode { +} diff --git a/src/main/java/com/example/umc10th/domain/member/repository/MemberRepository.java b/src/main/java/com/example/umc10th/domain/member/repository/MemberRepository.java new file mode 100644 index 0000000..a1f867d --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/member/repository/MemberRepository.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.member.repository; + +public class MemberRepository { +} diff --git a/src/main/java/com/example/umc10th/domain/member/service/MewmberService.java b/src/main/java/com/example/umc10th/domain/member/service/MewmberService.java new file mode 100644 index 0000000..009b7cf --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/member/service/MewmberService.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.member.service; + +public class MewmberService { +} diff --git a/src/main/java/com/example/umc10th/domain/mission/controller/MissionController.java b/src/main/java/com/example/umc10th/domain/mission/controller/MissionController.java new file mode 100644 index 0000000..123c932 --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/mission/controller/MissionController.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.mission.controller; + +public class MissionController { +} diff --git a/src/main/java/com/example/umc10th/domain/mission/converter/MissionConverter.java b/src/main/java/com/example/umc10th/domain/mission/converter/MissionConverter.java new file mode 100644 index 0000000..336f76a --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/mission/converter/MissionConverter.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.mission.converter; + +public class MissionConverter { +} diff --git a/src/main/java/com/example/umc10th/domain/mission/dto/MissionReqDTO.java b/src/main/java/com/example/umc10th/domain/mission/dto/MissionReqDTO.java new file mode 100644 index 0000000..e33508b --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/mission/dto/MissionReqDTO.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.mission.dto; + +public class MissionReqDTO { +} diff --git a/src/main/java/com/example/umc10th/domain/mission/dto/MissionResDTO.java b/src/main/java/com/example/umc10th/domain/mission/dto/MissionResDTO.java new file mode 100644 index 0000000..7fc7697 --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/mission/dto/MissionResDTO.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.mission.dto; + +public class MissionResDTO { +} diff --git a/src/main/java/com/example/umc10th/domain/mission/enums/MissionStatus.java b/src/main/java/com/example/umc10th/domain/mission/enums/MissionStatus.java new file mode 100644 index 0000000..f80c8b7 --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/mission/enums/MissionStatus.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.mission.enums; + +public class MissionStatus { +} diff --git a/src/main/java/com/example/umc10th/domain/mission/enums/ParticipatedStatus.java b/src/main/java/com/example/umc10th/domain/mission/enums/ParticipatedStatus.java new file mode 100644 index 0000000..c153c6d --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/mission/enums/ParticipatedStatus.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.mission.enums; + +public class ParticipatedStatus { +} diff --git a/src/main/java/com/example/umc10th/domain/mission/erntity/Market.java b/src/main/java/com/example/umc10th/domain/mission/erntity/Market.java new file mode 100644 index 0000000..25bb813 --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/mission/erntity/Market.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.mission.erntity; + +public class Market { +} diff --git a/src/main/java/com/example/umc10th/domain/mission/erntity/Mission.java b/src/main/java/com/example/umc10th/domain/mission/erntity/Mission.java new file mode 100644 index 0000000..7739f18 --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/mission/erntity/Mission.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.mission.erntity; + +public class Mission { +} diff --git a/src/main/java/com/example/umc10th/domain/mission/erntity/Region.java b/src/main/java/com/example/umc10th/domain/mission/erntity/Region.java new file mode 100644 index 0000000..1706ce6 --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/mission/erntity/Region.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.mission.erntity; + +public class Region { +} diff --git a/src/main/java/com/example/umc10th/domain/mission/erntity/mapping/Particiopate.java b/src/main/java/com/example/umc10th/domain/mission/erntity/mapping/Particiopate.java new file mode 100644 index 0000000..3bf1f33 --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/mission/erntity/mapping/Particiopate.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.mission.erntity.mapping; + +public class Particiopate { +} diff --git a/src/main/java/com/example/umc10th/domain/mission/exception/MissionExcepotion.java b/src/main/java/com/example/umc10th/domain/mission/exception/MissionExcepotion.java new file mode 100644 index 0000000..499fc5f --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/mission/exception/MissionExcepotion.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.mission.exception; + +public class MissionExcepotion { +} diff --git a/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionErrorCode.java b/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionErrorCode.java new file mode 100644 index 0000000..ff19d1f --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionErrorCode.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.mission.exception.code; + +public class MissionErrorCode { +} diff --git a/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionSuccessCode.java b/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionSuccessCode.java new file mode 100644 index 0000000..ff51f5a --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionSuccessCode.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.mission.exception.code; + +public class MissionSuccessCode { +} diff --git a/src/main/java/com/example/umc10th/domain/mission/repository/MissionRepository.java b/src/main/java/com/example/umc10th/domain/mission/repository/MissionRepository.java new file mode 100644 index 0000000..253eadd --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/mission/repository/MissionRepository.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.mission.repository; + +public class MissionRepository { +} diff --git a/src/main/java/com/example/umc10th/domain/mission/service/MissionService.java b/src/main/java/com/example/umc10th/domain/mission/service/MissionService.java new file mode 100644 index 0000000..d69ce74 --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/mission/service/MissionService.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.mission.service; + +public class MissionService { +} diff --git a/src/main/java/com/example/umc10th/domain/review/controller/ReviewController.java b/src/main/java/com/example/umc10th/domain/review/controller/ReviewController.java new file mode 100644 index 0000000..71b8fa7 --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/review/controller/ReviewController.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.review.controller; + +public class ReviewController { +} diff --git a/src/main/java/com/example/umc10th/domain/review/converter/ReviewConverter.java b/src/main/java/com/example/umc10th/domain/review/converter/ReviewConverter.java new file mode 100644 index 0000000..c2fd181 --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/review/converter/ReviewConverter.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.review.converter; + +public class ReviewConverter { +} diff --git a/src/main/java/com/example/umc10th/domain/review/dto/ReviewReqDTO.java b/src/main/java/com/example/umc10th/domain/review/dto/ReviewReqDTO.java new file mode 100644 index 0000000..cc73208 --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/review/dto/ReviewReqDTO.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.review.dto; + +public class ReviewReqDTO { +} diff --git a/src/main/java/com/example/umc10th/domain/review/dto/ReviewResDTO.java b/src/main/java/com/example/umc10th/domain/review/dto/ReviewResDTO.java new file mode 100644 index 0000000..f1c48e9 --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/review/dto/ReviewResDTO.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.review.dto; + +public class ReviewResDTO { +} diff --git a/src/main/java/com/example/umc10th/domain/review/entity/Review.java b/src/main/java/com/example/umc10th/domain/review/entity/Review.java new file mode 100644 index 0000000..5542f94 --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/review/entity/Review.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.review.entity; + +public class Review { +} diff --git a/src/main/java/com/example/umc10th/domain/review/exception/ReviewException.java b/src/main/java/com/example/umc10th/domain/review/exception/ReviewException.java new file mode 100644 index 0000000..e91c51a --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/review/exception/ReviewException.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.review.exception; + +public class ReviewException { +} diff --git a/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewErrorCode.java b/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewErrorCode.java new file mode 100644 index 0000000..70c5f32 --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewErrorCode.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.review.exception.code; + +public class ReviewErrorCode { +} diff --git a/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewSuccessCode.java b/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewSuccessCode.java new file mode 100644 index 0000000..8f1d30a --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewSuccessCode.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.review.exception.code; + +public class ReviewSuccessCode { +} diff --git a/src/main/java/com/example/umc10th/domain/review/repository/ReviewRepository.java b/src/main/java/com/example/umc10th/domain/review/repository/ReviewRepository.java new file mode 100644 index 0000000..1facbd8 --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/review/repository/ReviewRepository.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.review.repository; + +public class ReviewRepository { +} diff --git a/src/main/java/com/example/umc10th/domain/review/service/ReviewService.java b/src/main/java/com/example/umc10th/domain/review/service/ReviewService.java new file mode 100644 index 0000000..c60e350 --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/review/service/ReviewService.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.review.service; + +public class ReviewService { +} diff --git a/src/main/java/com/example/umc10th/global/config/SwaggerConfig.java b/src/main/java/com/example/umc10th/global/config/SwaggerConfig.java new file mode 100644 index 0000000..efda88f --- /dev/null +++ b/src/main/java/com/example/umc10th/global/config/SwaggerConfig.java @@ -0,0 +1,36 @@ +package com.example.umc10th.global.config; + +import io.swagger.v3.oas.models.info.Info; +import io.swagger.v3.oas.models.servers.Server; +import io.swagger.v3.oas.models.Components; +import io.swagger.v3.oas.models.OpenAPI; +import io.swagger.v3.oas.models.security.SecurityRequirement; +import io.swagger.v3.oas.models.security.SecurityScheme; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class SwaggerConfig { + + @Bean + public OpenAPI swagger() { + Info info = new Info().title("UMC10th").description("10기 Swagger").version("0.0.1"); + + // JWT 토큰 헤더 방식 + String securityScheme = "JWT TOKEN"; + SecurityRequirement securityRequirement = new SecurityRequirement().addList(securityScheme); + + Components components = new Components() + .addSecuritySchemes(securityScheme, new SecurityScheme() + .name(securityScheme) + .type(SecurityScheme.Type.HTTP) + .scheme("Bearer") + .bearerFormat("JWT")); + + return new OpenAPI() + .info(info) + .addServersItem(new Server().url("/")) + .addSecurityItem(securityRequirement) + .components(components); + } +} diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml new file mode 100644 index 0000000..c6b4841 --- /dev/null +++ b/src/main/resources/application.yml @@ -0,0 +1,19 @@ +spring: + application: + name: "umc10th" + + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: ${DB_URL} # jdbc:mysql://localhost:3306/{???????} + username: ${DB_USER} + password: ${DB_PW} + + jpa: + database: mysql + database-platform: org.hibernate.dialect.MySQLDialect + show-sql: true + hibernate: + ddl-auto: update + properties: + hibernate: + format_sql: true diff --git a/src/test/java/com/example/umc10th/Umc10thApplicationTests.java b/src/test/java/com/example/umc10th/Umc10thApplicationTests.java new file mode 100644 index 0000000..b43a96f --- /dev/null +++ b/src/test/java/com/example/umc10th/Umc10thApplicationTests.java @@ -0,0 +1,13 @@ +package com.example.umc10th; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +class Umc10thApplicationTests { + + @Test + void contextLoads() { + } + +} From f8f22faafcb088e42b325c4205776b9bb551d028 Mon Sep 17 00:00:00 2001 From: yujining3827 Date: Wed, 29 Apr 2026 15:03:13 +0900 Subject: [PATCH 02/46] =?UTF-8?q?fix=20:=20repository=EB=A5=BC=20interface?= =?UTF-8?q?=EB=A1=9C=20=EB=B3=80=EA=B2=BD=ED=95=98=EA=B3=A0=20JpaRepositor?= =?UTF-8?q?y=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../umc10th/domain/member/repository/MemberRepository.java | 7 +++++-- .../domain/mission/repository/MissionRepository.java | 5 ++++- .../umc10th/domain/review/repository/ReviewRepository.java | 5 ++++- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/example/umc10th/domain/member/repository/MemberRepository.java b/src/main/java/com/example/umc10th/domain/member/repository/MemberRepository.java index a1f867d..5b5e9ef 100644 --- a/src/main/java/com/example/umc10th/domain/member/repository/MemberRepository.java +++ b/src/main/java/com/example/umc10th/domain/member/repository/MemberRepository.java @@ -1,4 +1,7 @@ package com.example.umc10th.domain.member.repository; -public class MemberRepository { -} +import org.apache.catalina.User; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface MemberRepository extends JpaRepository { +} \ No newline at end of file diff --git a/src/main/java/com/example/umc10th/domain/mission/repository/MissionRepository.java b/src/main/java/com/example/umc10th/domain/mission/repository/MissionRepository.java index 253eadd..73b24d9 100644 --- a/src/main/java/com/example/umc10th/domain/mission/repository/MissionRepository.java +++ b/src/main/java/com/example/umc10th/domain/mission/repository/MissionRepository.java @@ -1,4 +1,7 @@ package com.example.umc10th.domain.mission.repository; -public class MissionRepository { +import com.example.umc10th.domain.mission.erntity.Mission; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface MissionRepository extends JpaRepository { } diff --git a/src/main/java/com/example/umc10th/domain/review/repository/ReviewRepository.java b/src/main/java/com/example/umc10th/domain/review/repository/ReviewRepository.java index 1facbd8..d754a10 100644 --- a/src/main/java/com/example/umc10th/domain/review/repository/ReviewRepository.java +++ b/src/main/java/com/example/umc10th/domain/review/repository/ReviewRepository.java @@ -1,4 +1,7 @@ package com.example.umc10th.domain.review.repository; -public class ReviewRepository { +import com.example.umc10th.domain.review.entity.Review; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface ReviewRepository extends JpaRepository { } From 9f2598f7194ca740faff32e390ebec2a2b40be59 Mon Sep 17 00:00:00 2001 From: yujining3827 Date: Wed, 29 Apr 2026 15:04:32 +0900 Subject: [PATCH 03/46] =?UTF-8?q?fix=20:=20repository=EB=A5=BC=20interface?= =?UTF-8?q?=EB=A1=9C=20=EB=B3=80=EA=B2=BD=ED=95=98=EA=B3=A0=20JpaRepositor?= =?UTF-8?q?y=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../umc10th/domain/member/repository/MemberRepository.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/example/umc10th/domain/member/repository/MemberRepository.java b/src/main/java/com/example/umc10th/domain/member/repository/MemberRepository.java index 5b5e9ef..e878bbb 100644 --- a/src/main/java/com/example/umc10th/domain/member/repository/MemberRepository.java +++ b/src/main/java/com/example/umc10th/domain/member/repository/MemberRepository.java @@ -1,7 +1,7 @@ package com.example.umc10th.domain.member.repository; -import org.apache.catalina.User; +import com.example.umc10th.domain.member.entity.Member; import org.springframework.data.jpa.repository.JpaRepository; -public interface MemberRepository extends JpaRepository { +public interface MemberRepository extends JpaRepository { } \ No newline at end of file From 9ff1ee752ea8115e18db8be948e05065a731faf8 Mon Sep 17 00:00:00 2001 From: yujining3827 Date: Wed, 29 Apr 2026 15:05:18 +0900 Subject: [PATCH 04/46] =?UTF-8?q?chore=20:=20=ED=8F=B4=EB=8D=94=EB=AA=85?= =?UTF-8?q?=20=EC=98=A4=ED=83=80=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/example/umc10th/domain/mission/entity/Market.java | 4 ++++ .../com/example/umc10th/domain/mission/entity/Mission.java | 4 ++++ .../com/example/umc10th/domain/mission/entity/Region.java | 4 ++++ .../umc10th/domain/mission/entity/mapping/Particiopate.java | 4 ++++ .../com/example/umc10th/domain/mission/erntity/Market.java | 4 ---- .../com/example/umc10th/domain/mission/erntity/Mission.java | 4 ---- .../com/example/umc10th/domain/mission/erntity/Region.java | 4 ---- .../umc10th/domain/mission/erntity/mapping/Particiopate.java | 4 ---- .../umc10th/domain/mission/repository/MissionRepository.java | 2 +- 9 files changed, 17 insertions(+), 17 deletions(-) create mode 100644 src/main/java/com/example/umc10th/domain/mission/entity/Market.java create mode 100644 src/main/java/com/example/umc10th/domain/mission/entity/Mission.java create mode 100644 src/main/java/com/example/umc10th/domain/mission/entity/Region.java create mode 100644 src/main/java/com/example/umc10th/domain/mission/entity/mapping/Particiopate.java delete mode 100644 src/main/java/com/example/umc10th/domain/mission/erntity/Market.java delete mode 100644 src/main/java/com/example/umc10th/domain/mission/erntity/Mission.java delete mode 100644 src/main/java/com/example/umc10th/domain/mission/erntity/Region.java delete mode 100644 src/main/java/com/example/umc10th/domain/mission/erntity/mapping/Particiopate.java diff --git a/src/main/java/com/example/umc10th/domain/mission/entity/Market.java b/src/main/java/com/example/umc10th/domain/mission/entity/Market.java new file mode 100644 index 0000000..2741956 --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/mission/entity/Market.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.mission.entity; + +public class Market { +} diff --git a/src/main/java/com/example/umc10th/domain/mission/entity/Mission.java b/src/main/java/com/example/umc10th/domain/mission/entity/Mission.java new file mode 100644 index 0000000..1dbae7c --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/mission/entity/Mission.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.mission.entity; + +public class Mission { +} diff --git a/src/main/java/com/example/umc10th/domain/mission/entity/Region.java b/src/main/java/com/example/umc10th/domain/mission/entity/Region.java new file mode 100644 index 0000000..fbb978d --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/mission/entity/Region.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.mission.entity; + +public class Region { +} diff --git a/src/main/java/com/example/umc10th/domain/mission/entity/mapping/Particiopate.java b/src/main/java/com/example/umc10th/domain/mission/entity/mapping/Particiopate.java new file mode 100644 index 0000000..821c13b --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/mission/entity/mapping/Particiopate.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.mission.entity.mapping; + +public class Particiopate { +} diff --git a/src/main/java/com/example/umc10th/domain/mission/erntity/Market.java b/src/main/java/com/example/umc10th/domain/mission/erntity/Market.java deleted file mode 100644 index 25bb813..0000000 --- a/src/main/java/com/example/umc10th/domain/mission/erntity/Market.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.mission.erntity; - -public class Market { -} diff --git a/src/main/java/com/example/umc10th/domain/mission/erntity/Mission.java b/src/main/java/com/example/umc10th/domain/mission/erntity/Mission.java deleted file mode 100644 index 7739f18..0000000 --- a/src/main/java/com/example/umc10th/domain/mission/erntity/Mission.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.mission.erntity; - -public class Mission { -} diff --git a/src/main/java/com/example/umc10th/domain/mission/erntity/Region.java b/src/main/java/com/example/umc10th/domain/mission/erntity/Region.java deleted file mode 100644 index 1706ce6..0000000 --- a/src/main/java/com/example/umc10th/domain/mission/erntity/Region.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.mission.erntity; - -public class Region { -} diff --git a/src/main/java/com/example/umc10th/domain/mission/erntity/mapping/Particiopate.java b/src/main/java/com/example/umc10th/domain/mission/erntity/mapping/Particiopate.java deleted file mode 100644 index 3bf1f33..0000000 --- a/src/main/java/com/example/umc10th/domain/mission/erntity/mapping/Particiopate.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.mission.erntity.mapping; - -public class Particiopate { -} diff --git a/src/main/java/com/example/umc10th/domain/mission/repository/MissionRepository.java b/src/main/java/com/example/umc10th/domain/mission/repository/MissionRepository.java index 73b24d9..71f7528 100644 --- a/src/main/java/com/example/umc10th/domain/mission/repository/MissionRepository.java +++ b/src/main/java/com/example/umc10th/domain/mission/repository/MissionRepository.java @@ -1,6 +1,6 @@ package com.example.umc10th.domain.mission.repository; -import com.example.umc10th.domain.mission.erntity.Mission; +import com.example.umc10th.domain.mission.entity.Mission; import org.springframework.data.jpa.repository.JpaRepository; public interface MissionRepository extends JpaRepository { From be07ef2b61ec26fe13fb13a0728e69acb29d23d3 Mon Sep 17 00:00:00 2001 From: yujining3827 Date: Wed, 29 Apr 2026 15:11:24 +0900 Subject: [PATCH 05/46] =?UTF-8?q?chore=20:=20=ED=8F=B4=EB=8D=94=20?= =?UTF-8?q?=EA=B5=AC=EC=A1=B0=20=EC=83=81=EB=8B=A8=EC=97=90=20luke=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 +- .../gradle}/wrapper/gradle-wrapper.jar | Bin .../gradle}/wrapper/gradle-wrapper.properties | 0 .../example/umc10th/Umc10thApplication.java | 0 .../member/controller/MemberController.java | 0 .../member/converter/MemberConverter.java | 0 .../domain/member/dto/MemberReqDTO.java | 0 .../domain/member/dto/MemberResDTO.java | 0 .../domain/member/entity/FoodCategory.java | 0 .../umc10th/domain/member/entity/Member.java | 0 .../domain/member/entity/Notification.java | 0 .../umc10th/domain/member/entity/Term.java | 0 .../member/entity/mapping/Preference.java | 0 .../entity/mapping/UserTermAgreement.java | 0 .../umc10th/domain/member/enums/Gender.java | 0 .../member/enums/NotifictationType.java | 0 .../umc10th/domain/member/enums/UserType.java | 0 .../member/exception/MemberExpection.java | 0 .../exception/code/MemberErrorCode.java | 0 .../exception/code/MemberSuccessCode.java | 0 .../member/repository/MemberRepository.java | 0 .../domain/member/service/MewmberService.java | 0 .../mission/controller/MissionController.java | 0 .../mission/converter/MissionConverter.java | 0 .../domain/mission/dto/MissionReqDTO.java | 0 .../domain/mission/dto/MissionResDTO.java | 0 .../umc10th/domain/mission/entity/Market.java | 0 .../domain/mission/entity/Mission.java | 0 .../umc10th/domain/mission/entity/Region.java | 0 .../mission/entity/mapping/Particiopate.java | 0 .../domain/mission/enums/MissionStatus.java | 0 .../mission/enums/ParticipatedStatus.java | 0 .../mission/exception/MissionExcepotion.java | 0 .../exception/code/MissionErrorCode.java | 0 .../exception/code/MissionSuccessCode.java | 0 .../mission/repository/MissionRepository.java | 0 .../mission/service/MissionService.java | 0 .../review/controller/ReviewController.java | 0 .../review/converter/ReviewConverter.java | 0 .../domain/review/dto/ReviewReqDTO.java | 0 .../domain/review/dto/ReviewResDTO.java | 0 .../umc10th/domain/review/entity/Review.java | 0 .../review/exception/ReviewException.java | 0 .../exception/code/ReviewErrorCode.java | 0 .../exception/code/ReviewSuccessCode.java | 0 .../review/repository/ReviewRepository.java | 0 .../domain/review/service/ReviewService.java | 0 .../umc10th/global/config/SwaggerConfig.java | 0 .../umc10th/Umc10thApplicationTests.java | 0 src/main/resources/application.yml | 19 ------------------ 50 files changed, 1 insertion(+), 20 deletions(-) rename {gradle => luke/gradle}/wrapper/gradle-wrapper.jar (100%) rename {gradle => luke/gradle}/wrapper/gradle-wrapper.properties (100%) rename {src => luke/src}/main/java/com/example/umc10th/Umc10thApplication.java (100%) rename {src => luke/src}/main/java/com/example/umc10th/domain/member/controller/MemberController.java (100%) rename {src => luke/src}/main/java/com/example/umc10th/domain/member/converter/MemberConverter.java (100%) rename {src => luke/src}/main/java/com/example/umc10th/domain/member/dto/MemberReqDTO.java (100%) rename {src => luke/src}/main/java/com/example/umc10th/domain/member/dto/MemberResDTO.java (100%) rename {src => luke/src}/main/java/com/example/umc10th/domain/member/entity/FoodCategory.java (100%) rename {src => luke/src}/main/java/com/example/umc10th/domain/member/entity/Member.java (100%) rename {src => luke/src}/main/java/com/example/umc10th/domain/member/entity/Notification.java (100%) rename {src => luke/src}/main/java/com/example/umc10th/domain/member/entity/Term.java (100%) rename {src => luke/src}/main/java/com/example/umc10th/domain/member/entity/mapping/Preference.java (100%) rename {src => luke/src}/main/java/com/example/umc10th/domain/member/entity/mapping/UserTermAgreement.java (100%) rename {src => luke/src}/main/java/com/example/umc10th/domain/member/enums/Gender.java (100%) rename {src => luke/src}/main/java/com/example/umc10th/domain/member/enums/NotifictationType.java (100%) rename {src => luke/src}/main/java/com/example/umc10th/domain/member/enums/UserType.java (100%) rename {src => luke/src}/main/java/com/example/umc10th/domain/member/exception/MemberExpection.java (100%) rename {src => luke/src}/main/java/com/example/umc10th/domain/member/exception/code/MemberErrorCode.java (100%) rename {src => luke/src}/main/java/com/example/umc10th/domain/member/exception/code/MemberSuccessCode.java (100%) rename {src => luke/src}/main/java/com/example/umc10th/domain/member/repository/MemberRepository.java (100%) rename {src => luke/src}/main/java/com/example/umc10th/domain/member/service/MewmberService.java (100%) rename {src => luke/src}/main/java/com/example/umc10th/domain/mission/controller/MissionController.java (100%) rename {src => luke/src}/main/java/com/example/umc10th/domain/mission/converter/MissionConverter.java (100%) rename {src => luke/src}/main/java/com/example/umc10th/domain/mission/dto/MissionReqDTO.java (100%) rename {src => luke/src}/main/java/com/example/umc10th/domain/mission/dto/MissionResDTO.java (100%) rename {src => luke/src}/main/java/com/example/umc10th/domain/mission/entity/Market.java (100%) rename {src => luke/src}/main/java/com/example/umc10th/domain/mission/entity/Mission.java (100%) rename {src => luke/src}/main/java/com/example/umc10th/domain/mission/entity/Region.java (100%) rename {src => luke/src}/main/java/com/example/umc10th/domain/mission/entity/mapping/Particiopate.java (100%) rename {src => luke/src}/main/java/com/example/umc10th/domain/mission/enums/MissionStatus.java (100%) rename {src => luke/src}/main/java/com/example/umc10th/domain/mission/enums/ParticipatedStatus.java (100%) rename {src => luke/src}/main/java/com/example/umc10th/domain/mission/exception/MissionExcepotion.java (100%) rename {src => luke/src}/main/java/com/example/umc10th/domain/mission/exception/code/MissionErrorCode.java (100%) rename {src => luke/src}/main/java/com/example/umc10th/domain/mission/exception/code/MissionSuccessCode.java (100%) rename {src => luke/src}/main/java/com/example/umc10th/domain/mission/repository/MissionRepository.java (100%) rename {src => luke/src}/main/java/com/example/umc10th/domain/mission/service/MissionService.java (100%) rename {src => luke/src}/main/java/com/example/umc10th/domain/review/controller/ReviewController.java (100%) rename {src => luke/src}/main/java/com/example/umc10th/domain/review/converter/ReviewConverter.java (100%) rename {src => luke/src}/main/java/com/example/umc10th/domain/review/dto/ReviewReqDTO.java (100%) rename {src => luke/src}/main/java/com/example/umc10th/domain/review/dto/ReviewResDTO.java (100%) rename {src => luke/src}/main/java/com/example/umc10th/domain/review/entity/Review.java (100%) rename {src => luke/src}/main/java/com/example/umc10th/domain/review/exception/ReviewException.java (100%) rename {src => luke/src}/main/java/com/example/umc10th/domain/review/exception/code/ReviewErrorCode.java (100%) rename {src => luke/src}/main/java/com/example/umc10th/domain/review/exception/code/ReviewSuccessCode.java (100%) rename {src => luke/src}/main/java/com/example/umc10th/domain/review/repository/ReviewRepository.java (100%) rename {src => luke/src}/main/java/com/example/umc10th/domain/review/service/ReviewService.java (100%) rename {src => luke/src}/main/java/com/example/umc10th/global/config/SwaggerConfig.java (100%) rename {src => luke/src}/test/java/com/example/umc10th/Umc10thApplicationTests.java (100%) delete mode 100644 src/main/resources/application.yml diff --git a/.gitignore b/.gitignore index 4fc02d3..af0a9b5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,7 @@ HELP.md .gradle build/ -!gradle/wrapper/gradle-wrapper.jar +!luke/gradle/wrapper/gradle-wrapper.jar !**/src/main/**/build/ !**/src/test/**/build/ diff --git a/gradle/wrapper/gradle-wrapper.jar b/luke/gradle/wrapper/gradle-wrapper.jar similarity index 100% rename from gradle/wrapper/gradle-wrapper.jar rename to luke/gradle/wrapper/gradle-wrapper.jar diff --git a/gradle/wrapper/gradle-wrapper.properties b/luke/gradle/wrapper/gradle-wrapper.properties similarity index 100% rename from gradle/wrapper/gradle-wrapper.properties rename to luke/gradle/wrapper/gradle-wrapper.properties diff --git a/src/main/java/com/example/umc10th/Umc10thApplication.java b/luke/src/main/java/com/example/umc10th/Umc10thApplication.java similarity index 100% rename from src/main/java/com/example/umc10th/Umc10thApplication.java rename to luke/src/main/java/com/example/umc10th/Umc10thApplication.java diff --git a/src/main/java/com/example/umc10th/domain/member/controller/MemberController.java b/luke/src/main/java/com/example/umc10th/domain/member/controller/MemberController.java similarity index 100% rename from src/main/java/com/example/umc10th/domain/member/controller/MemberController.java rename to luke/src/main/java/com/example/umc10th/domain/member/controller/MemberController.java diff --git a/src/main/java/com/example/umc10th/domain/member/converter/MemberConverter.java b/luke/src/main/java/com/example/umc10th/domain/member/converter/MemberConverter.java similarity index 100% rename from src/main/java/com/example/umc10th/domain/member/converter/MemberConverter.java rename to luke/src/main/java/com/example/umc10th/domain/member/converter/MemberConverter.java diff --git a/src/main/java/com/example/umc10th/domain/member/dto/MemberReqDTO.java b/luke/src/main/java/com/example/umc10th/domain/member/dto/MemberReqDTO.java similarity index 100% rename from src/main/java/com/example/umc10th/domain/member/dto/MemberReqDTO.java rename to luke/src/main/java/com/example/umc10th/domain/member/dto/MemberReqDTO.java diff --git a/src/main/java/com/example/umc10th/domain/member/dto/MemberResDTO.java b/luke/src/main/java/com/example/umc10th/domain/member/dto/MemberResDTO.java similarity index 100% rename from src/main/java/com/example/umc10th/domain/member/dto/MemberResDTO.java rename to luke/src/main/java/com/example/umc10th/domain/member/dto/MemberResDTO.java diff --git a/src/main/java/com/example/umc10th/domain/member/entity/FoodCategory.java b/luke/src/main/java/com/example/umc10th/domain/member/entity/FoodCategory.java similarity index 100% rename from src/main/java/com/example/umc10th/domain/member/entity/FoodCategory.java rename to luke/src/main/java/com/example/umc10th/domain/member/entity/FoodCategory.java diff --git a/src/main/java/com/example/umc10th/domain/member/entity/Member.java b/luke/src/main/java/com/example/umc10th/domain/member/entity/Member.java similarity index 100% rename from src/main/java/com/example/umc10th/domain/member/entity/Member.java rename to luke/src/main/java/com/example/umc10th/domain/member/entity/Member.java diff --git a/src/main/java/com/example/umc10th/domain/member/entity/Notification.java b/luke/src/main/java/com/example/umc10th/domain/member/entity/Notification.java similarity index 100% rename from src/main/java/com/example/umc10th/domain/member/entity/Notification.java rename to luke/src/main/java/com/example/umc10th/domain/member/entity/Notification.java diff --git a/src/main/java/com/example/umc10th/domain/member/entity/Term.java b/luke/src/main/java/com/example/umc10th/domain/member/entity/Term.java similarity index 100% rename from src/main/java/com/example/umc10th/domain/member/entity/Term.java rename to luke/src/main/java/com/example/umc10th/domain/member/entity/Term.java diff --git a/src/main/java/com/example/umc10th/domain/member/entity/mapping/Preference.java b/luke/src/main/java/com/example/umc10th/domain/member/entity/mapping/Preference.java similarity index 100% rename from src/main/java/com/example/umc10th/domain/member/entity/mapping/Preference.java rename to luke/src/main/java/com/example/umc10th/domain/member/entity/mapping/Preference.java diff --git a/src/main/java/com/example/umc10th/domain/member/entity/mapping/UserTermAgreement.java b/luke/src/main/java/com/example/umc10th/domain/member/entity/mapping/UserTermAgreement.java similarity index 100% rename from src/main/java/com/example/umc10th/domain/member/entity/mapping/UserTermAgreement.java rename to luke/src/main/java/com/example/umc10th/domain/member/entity/mapping/UserTermAgreement.java diff --git a/src/main/java/com/example/umc10th/domain/member/enums/Gender.java b/luke/src/main/java/com/example/umc10th/domain/member/enums/Gender.java similarity index 100% rename from src/main/java/com/example/umc10th/domain/member/enums/Gender.java rename to luke/src/main/java/com/example/umc10th/domain/member/enums/Gender.java diff --git a/src/main/java/com/example/umc10th/domain/member/enums/NotifictationType.java b/luke/src/main/java/com/example/umc10th/domain/member/enums/NotifictationType.java similarity index 100% rename from src/main/java/com/example/umc10th/domain/member/enums/NotifictationType.java rename to luke/src/main/java/com/example/umc10th/domain/member/enums/NotifictationType.java diff --git a/src/main/java/com/example/umc10th/domain/member/enums/UserType.java b/luke/src/main/java/com/example/umc10th/domain/member/enums/UserType.java similarity index 100% rename from src/main/java/com/example/umc10th/domain/member/enums/UserType.java rename to luke/src/main/java/com/example/umc10th/domain/member/enums/UserType.java diff --git a/src/main/java/com/example/umc10th/domain/member/exception/MemberExpection.java b/luke/src/main/java/com/example/umc10th/domain/member/exception/MemberExpection.java similarity index 100% rename from src/main/java/com/example/umc10th/domain/member/exception/MemberExpection.java rename to luke/src/main/java/com/example/umc10th/domain/member/exception/MemberExpection.java diff --git a/src/main/java/com/example/umc10th/domain/member/exception/code/MemberErrorCode.java b/luke/src/main/java/com/example/umc10th/domain/member/exception/code/MemberErrorCode.java similarity index 100% rename from src/main/java/com/example/umc10th/domain/member/exception/code/MemberErrorCode.java rename to luke/src/main/java/com/example/umc10th/domain/member/exception/code/MemberErrorCode.java diff --git a/src/main/java/com/example/umc10th/domain/member/exception/code/MemberSuccessCode.java b/luke/src/main/java/com/example/umc10th/domain/member/exception/code/MemberSuccessCode.java similarity index 100% rename from src/main/java/com/example/umc10th/domain/member/exception/code/MemberSuccessCode.java rename to luke/src/main/java/com/example/umc10th/domain/member/exception/code/MemberSuccessCode.java diff --git a/src/main/java/com/example/umc10th/domain/member/repository/MemberRepository.java b/luke/src/main/java/com/example/umc10th/domain/member/repository/MemberRepository.java similarity index 100% rename from src/main/java/com/example/umc10th/domain/member/repository/MemberRepository.java rename to luke/src/main/java/com/example/umc10th/domain/member/repository/MemberRepository.java diff --git a/src/main/java/com/example/umc10th/domain/member/service/MewmberService.java b/luke/src/main/java/com/example/umc10th/domain/member/service/MewmberService.java similarity index 100% rename from src/main/java/com/example/umc10th/domain/member/service/MewmberService.java rename to luke/src/main/java/com/example/umc10th/domain/member/service/MewmberService.java diff --git a/src/main/java/com/example/umc10th/domain/mission/controller/MissionController.java b/luke/src/main/java/com/example/umc10th/domain/mission/controller/MissionController.java similarity index 100% rename from src/main/java/com/example/umc10th/domain/mission/controller/MissionController.java rename to luke/src/main/java/com/example/umc10th/domain/mission/controller/MissionController.java diff --git a/src/main/java/com/example/umc10th/domain/mission/converter/MissionConverter.java b/luke/src/main/java/com/example/umc10th/domain/mission/converter/MissionConverter.java similarity index 100% rename from src/main/java/com/example/umc10th/domain/mission/converter/MissionConverter.java rename to luke/src/main/java/com/example/umc10th/domain/mission/converter/MissionConverter.java diff --git a/src/main/java/com/example/umc10th/domain/mission/dto/MissionReqDTO.java b/luke/src/main/java/com/example/umc10th/domain/mission/dto/MissionReqDTO.java similarity index 100% rename from src/main/java/com/example/umc10th/domain/mission/dto/MissionReqDTO.java rename to luke/src/main/java/com/example/umc10th/domain/mission/dto/MissionReqDTO.java diff --git a/src/main/java/com/example/umc10th/domain/mission/dto/MissionResDTO.java b/luke/src/main/java/com/example/umc10th/domain/mission/dto/MissionResDTO.java similarity index 100% rename from src/main/java/com/example/umc10th/domain/mission/dto/MissionResDTO.java rename to luke/src/main/java/com/example/umc10th/domain/mission/dto/MissionResDTO.java diff --git a/src/main/java/com/example/umc10th/domain/mission/entity/Market.java b/luke/src/main/java/com/example/umc10th/domain/mission/entity/Market.java similarity index 100% rename from src/main/java/com/example/umc10th/domain/mission/entity/Market.java rename to luke/src/main/java/com/example/umc10th/domain/mission/entity/Market.java diff --git a/src/main/java/com/example/umc10th/domain/mission/entity/Mission.java b/luke/src/main/java/com/example/umc10th/domain/mission/entity/Mission.java similarity index 100% rename from src/main/java/com/example/umc10th/domain/mission/entity/Mission.java rename to luke/src/main/java/com/example/umc10th/domain/mission/entity/Mission.java diff --git a/src/main/java/com/example/umc10th/domain/mission/entity/Region.java b/luke/src/main/java/com/example/umc10th/domain/mission/entity/Region.java similarity index 100% rename from src/main/java/com/example/umc10th/domain/mission/entity/Region.java rename to luke/src/main/java/com/example/umc10th/domain/mission/entity/Region.java diff --git a/src/main/java/com/example/umc10th/domain/mission/entity/mapping/Particiopate.java b/luke/src/main/java/com/example/umc10th/domain/mission/entity/mapping/Particiopate.java similarity index 100% rename from src/main/java/com/example/umc10th/domain/mission/entity/mapping/Particiopate.java rename to luke/src/main/java/com/example/umc10th/domain/mission/entity/mapping/Particiopate.java diff --git a/src/main/java/com/example/umc10th/domain/mission/enums/MissionStatus.java b/luke/src/main/java/com/example/umc10th/domain/mission/enums/MissionStatus.java similarity index 100% rename from src/main/java/com/example/umc10th/domain/mission/enums/MissionStatus.java rename to luke/src/main/java/com/example/umc10th/domain/mission/enums/MissionStatus.java diff --git a/src/main/java/com/example/umc10th/domain/mission/enums/ParticipatedStatus.java b/luke/src/main/java/com/example/umc10th/domain/mission/enums/ParticipatedStatus.java similarity index 100% rename from src/main/java/com/example/umc10th/domain/mission/enums/ParticipatedStatus.java rename to luke/src/main/java/com/example/umc10th/domain/mission/enums/ParticipatedStatus.java diff --git a/src/main/java/com/example/umc10th/domain/mission/exception/MissionExcepotion.java b/luke/src/main/java/com/example/umc10th/domain/mission/exception/MissionExcepotion.java similarity index 100% rename from src/main/java/com/example/umc10th/domain/mission/exception/MissionExcepotion.java rename to luke/src/main/java/com/example/umc10th/domain/mission/exception/MissionExcepotion.java diff --git a/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionErrorCode.java b/luke/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionErrorCode.java similarity index 100% rename from src/main/java/com/example/umc10th/domain/mission/exception/code/MissionErrorCode.java rename to luke/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionErrorCode.java diff --git a/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionSuccessCode.java b/luke/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionSuccessCode.java similarity index 100% rename from src/main/java/com/example/umc10th/domain/mission/exception/code/MissionSuccessCode.java rename to luke/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionSuccessCode.java diff --git a/src/main/java/com/example/umc10th/domain/mission/repository/MissionRepository.java b/luke/src/main/java/com/example/umc10th/domain/mission/repository/MissionRepository.java similarity index 100% rename from src/main/java/com/example/umc10th/domain/mission/repository/MissionRepository.java rename to luke/src/main/java/com/example/umc10th/domain/mission/repository/MissionRepository.java diff --git a/src/main/java/com/example/umc10th/domain/mission/service/MissionService.java b/luke/src/main/java/com/example/umc10th/domain/mission/service/MissionService.java similarity index 100% rename from src/main/java/com/example/umc10th/domain/mission/service/MissionService.java rename to luke/src/main/java/com/example/umc10th/domain/mission/service/MissionService.java diff --git a/src/main/java/com/example/umc10th/domain/review/controller/ReviewController.java b/luke/src/main/java/com/example/umc10th/domain/review/controller/ReviewController.java similarity index 100% rename from src/main/java/com/example/umc10th/domain/review/controller/ReviewController.java rename to luke/src/main/java/com/example/umc10th/domain/review/controller/ReviewController.java diff --git a/src/main/java/com/example/umc10th/domain/review/converter/ReviewConverter.java b/luke/src/main/java/com/example/umc10th/domain/review/converter/ReviewConverter.java similarity index 100% rename from src/main/java/com/example/umc10th/domain/review/converter/ReviewConverter.java rename to luke/src/main/java/com/example/umc10th/domain/review/converter/ReviewConverter.java diff --git a/src/main/java/com/example/umc10th/domain/review/dto/ReviewReqDTO.java b/luke/src/main/java/com/example/umc10th/domain/review/dto/ReviewReqDTO.java similarity index 100% rename from src/main/java/com/example/umc10th/domain/review/dto/ReviewReqDTO.java rename to luke/src/main/java/com/example/umc10th/domain/review/dto/ReviewReqDTO.java diff --git a/src/main/java/com/example/umc10th/domain/review/dto/ReviewResDTO.java b/luke/src/main/java/com/example/umc10th/domain/review/dto/ReviewResDTO.java similarity index 100% rename from src/main/java/com/example/umc10th/domain/review/dto/ReviewResDTO.java rename to luke/src/main/java/com/example/umc10th/domain/review/dto/ReviewResDTO.java diff --git a/src/main/java/com/example/umc10th/domain/review/entity/Review.java b/luke/src/main/java/com/example/umc10th/domain/review/entity/Review.java similarity index 100% rename from src/main/java/com/example/umc10th/domain/review/entity/Review.java rename to luke/src/main/java/com/example/umc10th/domain/review/entity/Review.java diff --git a/src/main/java/com/example/umc10th/domain/review/exception/ReviewException.java b/luke/src/main/java/com/example/umc10th/domain/review/exception/ReviewException.java similarity index 100% rename from src/main/java/com/example/umc10th/domain/review/exception/ReviewException.java rename to luke/src/main/java/com/example/umc10th/domain/review/exception/ReviewException.java diff --git a/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewErrorCode.java b/luke/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewErrorCode.java similarity index 100% rename from src/main/java/com/example/umc10th/domain/review/exception/code/ReviewErrorCode.java rename to luke/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewErrorCode.java diff --git a/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewSuccessCode.java b/luke/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewSuccessCode.java similarity index 100% rename from src/main/java/com/example/umc10th/domain/review/exception/code/ReviewSuccessCode.java rename to luke/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewSuccessCode.java diff --git a/src/main/java/com/example/umc10th/domain/review/repository/ReviewRepository.java b/luke/src/main/java/com/example/umc10th/domain/review/repository/ReviewRepository.java similarity index 100% rename from src/main/java/com/example/umc10th/domain/review/repository/ReviewRepository.java rename to luke/src/main/java/com/example/umc10th/domain/review/repository/ReviewRepository.java diff --git a/src/main/java/com/example/umc10th/domain/review/service/ReviewService.java b/luke/src/main/java/com/example/umc10th/domain/review/service/ReviewService.java similarity index 100% rename from src/main/java/com/example/umc10th/domain/review/service/ReviewService.java rename to luke/src/main/java/com/example/umc10th/domain/review/service/ReviewService.java diff --git a/src/main/java/com/example/umc10th/global/config/SwaggerConfig.java b/luke/src/main/java/com/example/umc10th/global/config/SwaggerConfig.java similarity index 100% rename from src/main/java/com/example/umc10th/global/config/SwaggerConfig.java rename to luke/src/main/java/com/example/umc10th/global/config/SwaggerConfig.java diff --git a/src/test/java/com/example/umc10th/Umc10thApplicationTests.java b/luke/src/test/java/com/example/umc10th/Umc10thApplicationTests.java similarity index 100% rename from src/test/java/com/example/umc10th/Umc10thApplicationTests.java rename to luke/src/test/java/com/example/umc10th/Umc10thApplicationTests.java diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml deleted file mode 100644 index c6b4841..0000000 --- a/src/main/resources/application.yml +++ /dev/null @@ -1,19 +0,0 @@ -spring: - application: - name: "umc10th" - - datasource: - driver-class-name: com.mysql.cj.jdbc.Driver - url: ${DB_URL} # jdbc:mysql://localhost:3306/{???????} - username: ${DB_USER} - password: ${DB_PW} - - jpa: - database: mysql - database-platform: org.hibernate.dialect.MySQLDialect - show-sql: true - hibernate: - ddl-auto: update - properties: - hibernate: - format_sql: true From 675d2712ef3ea6667d7f0d3ffc8fe71a092c1bbf Mon Sep 17 00:00:00 2001 From: yujining3827 Date: Wed, 29 Apr 2026 15:18:08 +0900 Subject: [PATCH 06/46] =?UTF-8?q?refactor:=20enum=20=EA=B5=AC=EC=A1=B0?= =?UTF-8?q?=EB=A1=9C=20=EB=A6=AC=ED=8C=A9=ED=86=A0=EB=A7=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/example/umc10th/domain/member/enums/Gender.java | 2 +- .../example/umc10th/domain/member/enums/NotifictationType.java | 2 +- .../java/com/example/umc10th/domain/member/enums/UserType.java | 2 +- .../umc10th/domain/member/exception/code/MemberErrorCode.java | 2 +- .../umc10th/domain/member/exception/code/MemberSuccessCode.java | 2 +- .../com/example/umc10th/domain/mission/enums/MissionStatus.java | 2 +- .../umc10th/domain/mission/enums/ParticipatedStatus.java | 2 +- .../umc10th/domain/mission/exception/code/MissionErrorCode.java | 2 +- .../domain/mission/exception/code/MissionSuccessCode.java | 2 +- .../umc10th/domain/review/exception/code/ReviewErrorCode.java | 2 +- .../umc10th/domain/review/exception/code/ReviewSuccessCode.java | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/luke/src/main/java/com/example/umc10th/domain/member/enums/Gender.java b/luke/src/main/java/com/example/umc10th/domain/member/enums/Gender.java index b9e9056..729751d 100644 --- a/luke/src/main/java/com/example/umc10th/domain/member/enums/Gender.java +++ b/luke/src/main/java/com/example/umc10th/domain/member/enums/Gender.java @@ -1,4 +1,4 @@ package com.example.umc10th.domain.member.enums; -public class Gender { +public enum Gender { } diff --git a/luke/src/main/java/com/example/umc10th/domain/member/enums/NotifictationType.java b/luke/src/main/java/com/example/umc10th/domain/member/enums/NotifictationType.java index 05d4e66..3bfa309 100644 --- a/luke/src/main/java/com/example/umc10th/domain/member/enums/NotifictationType.java +++ b/luke/src/main/java/com/example/umc10th/domain/member/enums/NotifictationType.java @@ -1,4 +1,4 @@ package com.example.umc10th.domain.member.enums; -public class NotifictationType { +public enum NotifictationType { } diff --git a/luke/src/main/java/com/example/umc10th/domain/member/enums/UserType.java b/luke/src/main/java/com/example/umc10th/domain/member/enums/UserType.java index d5a3af9..9f0d674 100644 --- a/luke/src/main/java/com/example/umc10th/domain/member/enums/UserType.java +++ b/luke/src/main/java/com/example/umc10th/domain/member/enums/UserType.java @@ -1,4 +1,4 @@ package com.example.umc10th.domain.member.enums; -public class UserType { +public enum UserType { } diff --git a/luke/src/main/java/com/example/umc10th/domain/member/exception/code/MemberErrorCode.java b/luke/src/main/java/com/example/umc10th/domain/member/exception/code/MemberErrorCode.java index 328dfc8..135bd22 100644 --- a/luke/src/main/java/com/example/umc10th/domain/member/exception/code/MemberErrorCode.java +++ b/luke/src/main/java/com/example/umc10th/domain/member/exception/code/MemberErrorCode.java @@ -1,4 +1,4 @@ package com.example.umc10th.domain.member.exception.code; -public class MemberErrorCode { +public enum MemberErrorCode { } diff --git a/luke/src/main/java/com/example/umc10th/domain/member/exception/code/MemberSuccessCode.java b/luke/src/main/java/com/example/umc10th/domain/member/exception/code/MemberSuccessCode.java index c72eb55..f42e80f 100644 --- a/luke/src/main/java/com/example/umc10th/domain/member/exception/code/MemberSuccessCode.java +++ b/luke/src/main/java/com/example/umc10th/domain/member/exception/code/MemberSuccessCode.java @@ -1,4 +1,4 @@ package com.example.umc10th.domain.member.exception.code; -public class MemberSuccessCode { +public enum MemberSuccessCode { } diff --git a/luke/src/main/java/com/example/umc10th/domain/mission/enums/MissionStatus.java b/luke/src/main/java/com/example/umc10th/domain/mission/enums/MissionStatus.java index f80c8b7..ed7ebba 100644 --- a/luke/src/main/java/com/example/umc10th/domain/mission/enums/MissionStatus.java +++ b/luke/src/main/java/com/example/umc10th/domain/mission/enums/MissionStatus.java @@ -1,4 +1,4 @@ package com.example.umc10th.domain.mission.enums; -public class MissionStatus { +public enum MissionStatus { } diff --git a/luke/src/main/java/com/example/umc10th/domain/mission/enums/ParticipatedStatus.java b/luke/src/main/java/com/example/umc10th/domain/mission/enums/ParticipatedStatus.java index c153c6d..bf497db 100644 --- a/luke/src/main/java/com/example/umc10th/domain/mission/enums/ParticipatedStatus.java +++ b/luke/src/main/java/com/example/umc10th/domain/mission/enums/ParticipatedStatus.java @@ -1,4 +1,4 @@ package com.example.umc10th.domain.mission.enums; -public class ParticipatedStatus { +public enum ParticipatedStatus { } diff --git a/luke/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionErrorCode.java b/luke/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionErrorCode.java index ff19d1f..ee79191 100644 --- a/luke/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionErrorCode.java +++ b/luke/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionErrorCode.java @@ -1,4 +1,4 @@ package com.example.umc10th.domain.mission.exception.code; -public class MissionErrorCode { +public enum MissionErrorCode { } diff --git a/luke/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionSuccessCode.java b/luke/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionSuccessCode.java index ff51f5a..a30e4ea 100644 --- a/luke/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionSuccessCode.java +++ b/luke/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionSuccessCode.java @@ -1,4 +1,4 @@ package com.example.umc10th.domain.mission.exception.code; -public class MissionSuccessCode { +public enum MissionSuccessCode { } diff --git a/luke/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewErrorCode.java b/luke/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewErrorCode.java index 70c5f32..0d1fcb3 100644 --- a/luke/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewErrorCode.java +++ b/luke/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewErrorCode.java @@ -1,4 +1,4 @@ package com.example.umc10th.domain.review.exception.code; -public class ReviewErrorCode { +public enum ReviewErrorCode { } diff --git a/luke/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewSuccessCode.java b/luke/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewSuccessCode.java index 8f1d30a..fb2f221 100644 --- a/luke/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewSuccessCode.java +++ b/luke/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewSuccessCode.java @@ -1,4 +1,4 @@ package com.example.umc10th.domain.review.exception.code; -public class ReviewSuccessCode { +public enum ReviewSuccessCode { } From e466dee45df2f8bc51e80dcf746c83f8daf645bc Mon Sep 17 00:00:00 2001 From: yujining3827 Date: Wed, 29 Apr 2026 17:29:40 +0900 Subject: [PATCH 07/46] =?UTF-8?q?feat=20:=20apiPayload=20=EB=94=94?= =?UTF-8?q?=EB=A0=89=ED=86=A0=EB=A6=AC=20=EA=B3=B5=ED=86=B5=20=EC=9D=91?= =?UTF-8?q?=EB=8B=B5=20api=20=EC=BD=94=EB=93=9C=20=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../global/apiPayload/ApiResponse.java | 32 +++++++++++++++++ .../global/apiPayload/code/BaseErrorCode.java | 9 +++++ .../apiPayload/code/BaseSuccessCode.java | 10 ++++++ .../apiPayload/code/GeneralErrorCode.java | 34 +++++++++++++++++++ .../apiPayload/code/GeneralSuccessCode.java | 19 +++++++++++ 5 files changed, 104 insertions(+) create mode 100644 luke/src/main/java/com/example/umc10th/global/apiPayload/ApiResponse.java create mode 100644 luke/src/main/java/com/example/umc10th/global/apiPayload/code/BaseErrorCode.java create mode 100644 luke/src/main/java/com/example/umc10th/global/apiPayload/code/BaseSuccessCode.java create mode 100644 luke/src/main/java/com/example/umc10th/global/apiPayload/code/GeneralErrorCode.java create mode 100644 luke/src/main/java/com/example/umc10th/global/apiPayload/code/GeneralSuccessCode.java diff --git a/luke/src/main/java/com/example/umc10th/global/apiPayload/ApiResponse.java b/luke/src/main/java/com/example/umc10th/global/apiPayload/ApiResponse.java new file mode 100644 index 0000000..ee1d7f4 --- /dev/null +++ b/luke/src/main/java/com/example/umc10th/global/apiPayload/ApiResponse.java @@ -0,0 +1,32 @@ +package com.example.umc10th.global.apiPayload; + +import com.example.umc10th.global.apiPayload.code.BaseErrorCode; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +@JsonPropertyOrder({"isSuccess", "code", "message", "result"}) +public class ApiResponse { + + @JsonProperty("isSuccess") + private final boolean isSuccess; + + @JsonProperty("code") + private final String code; + + @JsonProperty("message") + private final String message; + + @JsonProperty("result") + private final T result; + + // 성공한 경우 (result 포함) + + // 실패한 경우 (result 포함) + public static ApiResponse onFailure(BaseErrorCode code, T result ) { + return new ApiResponse<>(false, code.getCode(), code.getMessage(), result); + } +} diff --git a/luke/src/main/java/com/example/umc10th/global/apiPayload/code/BaseErrorCode.java b/luke/src/main/java/com/example/umc10th/global/apiPayload/code/BaseErrorCode.java new file mode 100644 index 0000000..137c8ac --- /dev/null +++ b/luke/src/main/java/com/example/umc10th/global/apiPayload/code/BaseErrorCode.java @@ -0,0 +1,9 @@ +package com.example.umc10th.global.apiPayload.code; + +import org.springframework.http.HttpStatus; + +public interface BaseErrorCode { + HttpStatus getStatus(); + String getCode(); + String getMessage(); +} diff --git a/luke/src/main/java/com/example/umc10th/global/apiPayload/code/BaseSuccessCode.java b/luke/src/main/java/com/example/umc10th/global/apiPayload/code/BaseSuccessCode.java new file mode 100644 index 0000000..5ebb033 --- /dev/null +++ b/luke/src/main/java/com/example/umc10th/global/apiPayload/code/BaseSuccessCode.java @@ -0,0 +1,10 @@ +package com.example.umc10th.global.apiPayload.code; + +import org.springframework.http.HttpStatus; + +public interface BaseSuccessCode { + + HttpStatus getStatus(); + String getCode(); + String getMessage(); +} diff --git a/luke/src/main/java/com/example/umc10th/global/apiPayload/code/GeneralErrorCode.java b/luke/src/main/java/com/example/umc10th/global/apiPayload/code/GeneralErrorCode.java new file mode 100644 index 0000000..6f77729 --- /dev/null +++ b/luke/src/main/java/com/example/umc10th/global/apiPayload/code/GeneralErrorCode.java @@ -0,0 +1,34 @@ +package com.example.umc10th.global.apiPayload.code; + +import lombok.Getter; +import lombok.RequiredArgsConstructor; +import org.springframework.http.HttpStatus; + +@Getter +@RequiredArgsConstructor +public enum GeneralErrorCode implements BaseErrorCode { + + BAD_REQUEST(HttpStatus.BAD_REQUEST, + "COMMON400_1", + "잘못된 요청입니다."), + UNAUTHORIZED(HttpStatus.UNAUTHORIZED, + "COMMON401_1", + "인증되지 않았습니다."), + FORBIDDEN(HttpStatus.FORBIDDEN, + "COMMON403_1", + "접근이 금지되었습니다."), + NOT_FOUND(HttpStatus.NOT_FOUND, + "Common404_1", + "해당 리소스를 찾을 수 없습니다." + ), + ; + + private final HttpStatus status; + private final String code; + private final String message; + +} + + + + diff --git a/luke/src/main/java/com/example/umc10th/global/apiPayload/code/GeneralSuccessCode.java b/luke/src/main/java/com/example/umc10th/global/apiPayload/code/GeneralSuccessCode.java new file mode 100644 index 0000000..4e0d00f --- /dev/null +++ b/luke/src/main/java/com/example/umc10th/global/apiPayload/code/GeneralSuccessCode.java @@ -0,0 +1,19 @@ +package com.example.umc10th.global.apiPayload.code; + +import lombok.Getter; +import lombok.RequiredArgsConstructor; +import org.springframework.http.HttpStatus; + +@Getter@RequiredArgsConstructor +public enum GeneralSuccessCode implements BaseErrorCode{ + + OK(HttpStatus.OK, + "COMMON200_1", + "성공적으로 요청을 처리했습니다."), + + ; + + private final HttpStatus status; + private final String code; + private final String message; +} From 0de96ea3c04849c8bb01963ab61bcfad62b26120 Mon Sep 17 00:00:00 2001 From: yujining3827 Date: Wed, 29 Apr 2026 23:47:45 +0900 Subject: [PATCH 08/46] =?UTF-8?q?feat=20:=20=EB=A6=AC=EB=B7=B0=20=EC=9E=91?= =?UTF-8?q?=EC=84=B1=20api=20=EA=B5=AC=EC=A1=B0=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wrapper/gradle-wrapper.jar | Bin .../wrapper/gradle-wrapper.properties | 0 .../review/controller/ReviewController.java | 4 --- .../domain/review/dto/ReviewReqDTO.java | 4 --- .../domain/review/dto/ReviewResDTO.java | 4 --- .../umc10th/domain/review/entity/Review.java | 4 --- .../example/umc10th/Umc10thApplication.java | 0 .../member/controller/MemberController.java | 0 .../member/converter/MemberConverter.java | 0 .../domain/member/dto/MemberReqDTO.java | 0 .../domain/member/dto/MemberResDTO.java | 0 .../domain/member/entity/FoodCategory.java | 0 .../umc10th/domain/member/entity/Member.java | 0 .../domain/member/entity/Notification.java | 0 .../umc10th/domain/member/entity/Term.java | 0 .../member/entity/mapping/Preference.java | 0 .../entity/mapping/UserTermAgreement.java | 0 .../umc10th/domain/member/enums/Gender.java | 0 .../member/enums/NotifictationType.java | 0 .../umc10th/domain/member/enums/UserType.java | 0 .../member/exception/MemberExpection.java | 0 .../exception/code/MemberErrorCode.java | 0 .../exception/code/MemberSuccessCode.java | 0 .../member/repository/MemberRepository.java | 0 .../domain/member/service/MewmberService.java | 0 .../mission/controller/MissionController.java | 0 .../mission/converter/MissionConverter.java | 0 .../domain/mission/dto/MissionReqDTO.java | 0 .../domain/mission/dto/MissionResDTO.java | 0 .../umc10th/domain/mission/entity/Market.java | 0 .../domain/mission/entity/Mission.java | 0 .../umc10th/domain/mission/entity/Region.java | 0 .../mission/entity/mapping/Particiopate.java | 0 .../domain/mission/enums/MissionStatus.java | 0 .../mission/enums/ParticipatedStatus.java | 0 .../mission/exception/MissionExcepotion.java | 0 .../exception/code/MissionErrorCode.java | 0 .../exception/code/MissionSuccessCode.java | 0 .../mission/repository/MissionRepository.java | 0 .../mission/service/MissionService.java | 0 .../review/controller/ReviewController.java | 23 ++++++++++++++++++ .../review/converter/ReviewConverter.java | 0 .../domain/review/dto/ReviewReqDTO.java | 11 +++++++++ .../domain/review/dto/ReviewResDTO.java | 9 +++++++ .../umc10th/domain/review/entity/Review.java | 23 ++++++++++++++++++ .../review/exception/ReviewException.java | 0 .../exception/code/ReviewErrorCode.java | 0 .../exception/code/ReviewSuccessCode.java | 0 .../review/repository/ReviewRepository.java | 0 .../domain/review/service/ReviewService.java | 0 .../global/apiPayload/ApiResponse.java | 3 +++ .../global/apiPayload/code/BaseErrorCode.java | 0 .../apiPayload/code/BaseSuccessCode.java | 0 .../apiPayload/code/GeneralErrorCode.java | 0 .../apiPayload/code/GeneralSuccessCode.java | 0 .../umc10th/global/config/SwaggerConfig.java | 0 .../umc10th/Umc10thApplicationTests.java | 0 57 files changed, 69 insertions(+), 16 deletions(-) rename {luke/gradle => gradle}/wrapper/gradle-wrapper.jar (100%) rename {luke/gradle => gradle}/wrapper/gradle-wrapper.properties (100%) delete mode 100644 luke/src/main/java/com/example/umc10th/domain/review/controller/ReviewController.java delete mode 100644 luke/src/main/java/com/example/umc10th/domain/review/dto/ReviewReqDTO.java delete mode 100644 luke/src/main/java/com/example/umc10th/domain/review/dto/ReviewResDTO.java delete mode 100644 luke/src/main/java/com/example/umc10th/domain/review/entity/Review.java rename {luke/src => src}/main/java/com/example/umc10th/Umc10thApplication.java (100%) rename {luke/src => src}/main/java/com/example/umc10th/domain/member/controller/MemberController.java (100%) rename {luke/src => src}/main/java/com/example/umc10th/domain/member/converter/MemberConverter.java (100%) rename {luke/src => src}/main/java/com/example/umc10th/domain/member/dto/MemberReqDTO.java (100%) rename {luke/src => src}/main/java/com/example/umc10th/domain/member/dto/MemberResDTO.java (100%) rename {luke/src => src}/main/java/com/example/umc10th/domain/member/entity/FoodCategory.java (100%) rename {luke/src => src}/main/java/com/example/umc10th/domain/member/entity/Member.java (100%) rename {luke/src => src}/main/java/com/example/umc10th/domain/member/entity/Notification.java (100%) rename {luke/src => src}/main/java/com/example/umc10th/domain/member/entity/Term.java (100%) rename {luke/src => src}/main/java/com/example/umc10th/domain/member/entity/mapping/Preference.java (100%) rename {luke/src => src}/main/java/com/example/umc10th/domain/member/entity/mapping/UserTermAgreement.java (100%) rename {luke/src => src}/main/java/com/example/umc10th/domain/member/enums/Gender.java (100%) rename {luke/src => src}/main/java/com/example/umc10th/domain/member/enums/NotifictationType.java (100%) rename {luke/src => src}/main/java/com/example/umc10th/domain/member/enums/UserType.java (100%) rename {luke/src => src}/main/java/com/example/umc10th/domain/member/exception/MemberExpection.java (100%) rename {luke/src => src}/main/java/com/example/umc10th/domain/member/exception/code/MemberErrorCode.java (100%) rename {luke/src => src}/main/java/com/example/umc10th/domain/member/exception/code/MemberSuccessCode.java (100%) rename {luke/src => src}/main/java/com/example/umc10th/domain/member/repository/MemberRepository.java (100%) rename {luke/src => src}/main/java/com/example/umc10th/domain/member/service/MewmberService.java (100%) rename {luke/src => src}/main/java/com/example/umc10th/domain/mission/controller/MissionController.java (100%) rename {luke/src => src}/main/java/com/example/umc10th/domain/mission/converter/MissionConverter.java (100%) rename {luke/src => src}/main/java/com/example/umc10th/domain/mission/dto/MissionReqDTO.java (100%) rename {luke/src => src}/main/java/com/example/umc10th/domain/mission/dto/MissionResDTO.java (100%) rename {luke/src => src}/main/java/com/example/umc10th/domain/mission/entity/Market.java (100%) rename {luke/src => src}/main/java/com/example/umc10th/domain/mission/entity/Mission.java (100%) rename {luke/src => src}/main/java/com/example/umc10th/domain/mission/entity/Region.java (100%) rename {luke/src => src}/main/java/com/example/umc10th/domain/mission/entity/mapping/Particiopate.java (100%) rename {luke/src => src}/main/java/com/example/umc10th/domain/mission/enums/MissionStatus.java (100%) rename {luke/src => src}/main/java/com/example/umc10th/domain/mission/enums/ParticipatedStatus.java (100%) rename {luke/src => src}/main/java/com/example/umc10th/domain/mission/exception/MissionExcepotion.java (100%) rename {luke/src => src}/main/java/com/example/umc10th/domain/mission/exception/code/MissionErrorCode.java (100%) rename {luke/src => src}/main/java/com/example/umc10th/domain/mission/exception/code/MissionSuccessCode.java (100%) rename {luke/src => src}/main/java/com/example/umc10th/domain/mission/repository/MissionRepository.java (100%) rename {luke/src => src}/main/java/com/example/umc10th/domain/mission/service/MissionService.java (100%) create mode 100644 src/main/java/com/example/umc10th/domain/review/controller/ReviewController.java rename {luke/src => src}/main/java/com/example/umc10th/domain/review/converter/ReviewConverter.java (100%) create mode 100644 src/main/java/com/example/umc10th/domain/review/dto/ReviewReqDTO.java create mode 100644 src/main/java/com/example/umc10th/domain/review/dto/ReviewResDTO.java create mode 100644 src/main/java/com/example/umc10th/domain/review/entity/Review.java rename {luke/src => src}/main/java/com/example/umc10th/domain/review/exception/ReviewException.java (100%) rename {luke/src => src}/main/java/com/example/umc10th/domain/review/exception/code/ReviewErrorCode.java (100%) rename {luke/src => src}/main/java/com/example/umc10th/domain/review/exception/code/ReviewSuccessCode.java (100%) rename {luke/src => src}/main/java/com/example/umc10th/domain/review/repository/ReviewRepository.java (100%) rename {luke/src => src}/main/java/com/example/umc10th/domain/review/service/ReviewService.java (100%) rename {luke/src => src}/main/java/com/example/umc10th/global/apiPayload/ApiResponse.java (86%) rename {luke/src => src}/main/java/com/example/umc10th/global/apiPayload/code/BaseErrorCode.java (100%) rename {luke/src => src}/main/java/com/example/umc10th/global/apiPayload/code/BaseSuccessCode.java (100%) rename {luke/src => src}/main/java/com/example/umc10th/global/apiPayload/code/GeneralErrorCode.java (100%) rename {luke/src => src}/main/java/com/example/umc10th/global/apiPayload/code/GeneralSuccessCode.java (100%) rename {luke/src => src}/main/java/com/example/umc10th/global/config/SwaggerConfig.java (100%) rename {luke/src => src}/test/java/com/example/umc10th/Umc10thApplicationTests.java (100%) diff --git a/luke/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar similarity index 100% rename from luke/gradle/wrapper/gradle-wrapper.jar rename to gradle/wrapper/gradle-wrapper.jar diff --git a/luke/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties similarity index 100% rename from luke/gradle/wrapper/gradle-wrapper.properties rename to gradle/wrapper/gradle-wrapper.properties diff --git a/luke/src/main/java/com/example/umc10th/domain/review/controller/ReviewController.java b/luke/src/main/java/com/example/umc10th/domain/review/controller/ReviewController.java deleted file mode 100644 index 71b8fa7..0000000 --- a/luke/src/main/java/com/example/umc10th/domain/review/controller/ReviewController.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.review.controller; - -public class ReviewController { -} diff --git a/luke/src/main/java/com/example/umc10th/domain/review/dto/ReviewReqDTO.java b/luke/src/main/java/com/example/umc10th/domain/review/dto/ReviewReqDTO.java deleted file mode 100644 index cc73208..0000000 --- a/luke/src/main/java/com/example/umc10th/domain/review/dto/ReviewReqDTO.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.review.dto; - -public class ReviewReqDTO { -} diff --git a/luke/src/main/java/com/example/umc10th/domain/review/dto/ReviewResDTO.java b/luke/src/main/java/com/example/umc10th/domain/review/dto/ReviewResDTO.java deleted file mode 100644 index f1c48e9..0000000 --- a/luke/src/main/java/com/example/umc10th/domain/review/dto/ReviewResDTO.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.review.dto; - -public class ReviewResDTO { -} diff --git a/luke/src/main/java/com/example/umc10th/domain/review/entity/Review.java b/luke/src/main/java/com/example/umc10th/domain/review/entity/Review.java deleted file mode 100644 index 5542f94..0000000 --- a/luke/src/main/java/com/example/umc10th/domain/review/entity/Review.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.review.entity; - -public class Review { -} diff --git a/luke/src/main/java/com/example/umc10th/Umc10thApplication.java b/src/main/java/com/example/umc10th/Umc10thApplication.java similarity index 100% rename from luke/src/main/java/com/example/umc10th/Umc10thApplication.java rename to src/main/java/com/example/umc10th/Umc10thApplication.java diff --git a/luke/src/main/java/com/example/umc10th/domain/member/controller/MemberController.java b/src/main/java/com/example/umc10th/domain/member/controller/MemberController.java similarity index 100% rename from luke/src/main/java/com/example/umc10th/domain/member/controller/MemberController.java rename to src/main/java/com/example/umc10th/domain/member/controller/MemberController.java diff --git a/luke/src/main/java/com/example/umc10th/domain/member/converter/MemberConverter.java b/src/main/java/com/example/umc10th/domain/member/converter/MemberConverter.java similarity index 100% rename from luke/src/main/java/com/example/umc10th/domain/member/converter/MemberConverter.java rename to src/main/java/com/example/umc10th/domain/member/converter/MemberConverter.java diff --git a/luke/src/main/java/com/example/umc10th/domain/member/dto/MemberReqDTO.java b/src/main/java/com/example/umc10th/domain/member/dto/MemberReqDTO.java similarity index 100% rename from luke/src/main/java/com/example/umc10th/domain/member/dto/MemberReqDTO.java rename to src/main/java/com/example/umc10th/domain/member/dto/MemberReqDTO.java diff --git a/luke/src/main/java/com/example/umc10th/domain/member/dto/MemberResDTO.java b/src/main/java/com/example/umc10th/domain/member/dto/MemberResDTO.java similarity index 100% rename from luke/src/main/java/com/example/umc10th/domain/member/dto/MemberResDTO.java rename to src/main/java/com/example/umc10th/domain/member/dto/MemberResDTO.java diff --git a/luke/src/main/java/com/example/umc10th/domain/member/entity/FoodCategory.java b/src/main/java/com/example/umc10th/domain/member/entity/FoodCategory.java similarity index 100% rename from luke/src/main/java/com/example/umc10th/domain/member/entity/FoodCategory.java rename to src/main/java/com/example/umc10th/domain/member/entity/FoodCategory.java diff --git a/luke/src/main/java/com/example/umc10th/domain/member/entity/Member.java b/src/main/java/com/example/umc10th/domain/member/entity/Member.java similarity index 100% rename from luke/src/main/java/com/example/umc10th/domain/member/entity/Member.java rename to src/main/java/com/example/umc10th/domain/member/entity/Member.java diff --git a/luke/src/main/java/com/example/umc10th/domain/member/entity/Notification.java b/src/main/java/com/example/umc10th/domain/member/entity/Notification.java similarity index 100% rename from luke/src/main/java/com/example/umc10th/domain/member/entity/Notification.java rename to src/main/java/com/example/umc10th/domain/member/entity/Notification.java diff --git a/luke/src/main/java/com/example/umc10th/domain/member/entity/Term.java b/src/main/java/com/example/umc10th/domain/member/entity/Term.java similarity index 100% rename from luke/src/main/java/com/example/umc10th/domain/member/entity/Term.java rename to src/main/java/com/example/umc10th/domain/member/entity/Term.java diff --git a/luke/src/main/java/com/example/umc10th/domain/member/entity/mapping/Preference.java b/src/main/java/com/example/umc10th/domain/member/entity/mapping/Preference.java similarity index 100% rename from luke/src/main/java/com/example/umc10th/domain/member/entity/mapping/Preference.java rename to src/main/java/com/example/umc10th/domain/member/entity/mapping/Preference.java diff --git a/luke/src/main/java/com/example/umc10th/domain/member/entity/mapping/UserTermAgreement.java b/src/main/java/com/example/umc10th/domain/member/entity/mapping/UserTermAgreement.java similarity index 100% rename from luke/src/main/java/com/example/umc10th/domain/member/entity/mapping/UserTermAgreement.java rename to src/main/java/com/example/umc10th/domain/member/entity/mapping/UserTermAgreement.java diff --git a/luke/src/main/java/com/example/umc10th/domain/member/enums/Gender.java b/src/main/java/com/example/umc10th/domain/member/enums/Gender.java similarity index 100% rename from luke/src/main/java/com/example/umc10th/domain/member/enums/Gender.java rename to src/main/java/com/example/umc10th/domain/member/enums/Gender.java diff --git a/luke/src/main/java/com/example/umc10th/domain/member/enums/NotifictationType.java b/src/main/java/com/example/umc10th/domain/member/enums/NotifictationType.java similarity index 100% rename from luke/src/main/java/com/example/umc10th/domain/member/enums/NotifictationType.java rename to src/main/java/com/example/umc10th/domain/member/enums/NotifictationType.java diff --git a/luke/src/main/java/com/example/umc10th/domain/member/enums/UserType.java b/src/main/java/com/example/umc10th/domain/member/enums/UserType.java similarity index 100% rename from luke/src/main/java/com/example/umc10th/domain/member/enums/UserType.java rename to src/main/java/com/example/umc10th/domain/member/enums/UserType.java diff --git a/luke/src/main/java/com/example/umc10th/domain/member/exception/MemberExpection.java b/src/main/java/com/example/umc10th/domain/member/exception/MemberExpection.java similarity index 100% rename from luke/src/main/java/com/example/umc10th/domain/member/exception/MemberExpection.java rename to src/main/java/com/example/umc10th/domain/member/exception/MemberExpection.java diff --git a/luke/src/main/java/com/example/umc10th/domain/member/exception/code/MemberErrorCode.java b/src/main/java/com/example/umc10th/domain/member/exception/code/MemberErrorCode.java similarity index 100% rename from luke/src/main/java/com/example/umc10th/domain/member/exception/code/MemberErrorCode.java rename to src/main/java/com/example/umc10th/domain/member/exception/code/MemberErrorCode.java diff --git a/luke/src/main/java/com/example/umc10th/domain/member/exception/code/MemberSuccessCode.java b/src/main/java/com/example/umc10th/domain/member/exception/code/MemberSuccessCode.java similarity index 100% rename from luke/src/main/java/com/example/umc10th/domain/member/exception/code/MemberSuccessCode.java rename to src/main/java/com/example/umc10th/domain/member/exception/code/MemberSuccessCode.java diff --git a/luke/src/main/java/com/example/umc10th/domain/member/repository/MemberRepository.java b/src/main/java/com/example/umc10th/domain/member/repository/MemberRepository.java similarity index 100% rename from luke/src/main/java/com/example/umc10th/domain/member/repository/MemberRepository.java rename to src/main/java/com/example/umc10th/domain/member/repository/MemberRepository.java diff --git a/luke/src/main/java/com/example/umc10th/domain/member/service/MewmberService.java b/src/main/java/com/example/umc10th/domain/member/service/MewmberService.java similarity index 100% rename from luke/src/main/java/com/example/umc10th/domain/member/service/MewmberService.java rename to src/main/java/com/example/umc10th/domain/member/service/MewmberService.java diff --git a/luke/src/main/java/com/example/umc10th/domain/mission/controller/MissionController.java b/src/main/java/com/example/umc10th/domain/mission/controller/MissionController.java similarity index 100% rename from luke/src/main/java/com/example/umc10th/domain/mission/controller/MissionController.java rename to src/main/java/com/example/umc10th/domain/mission/controller/MissionController.java diff --git a/luke/src/main/java/com/example/umc10th/domain/mission/converter/MissionConverter.java b/src/main/java/com/example/umc10th/domain/mission/converter/MissionConverter.java similarity index 100% rename from luke/src/main/java/com/example/umc10th/domain/mission/converter/MissionConverter.java rename to src/main/java/com/example/umc10th/domain/mission/converter/MissionConverter.java diff --git a/luke/src/main/java/com/example/umc10th/domain/mission/dto/MissionReqDTO.java b/src/main/java/com/example/umc10th/domain/mission/dto/MissionReqDTO.java similarity index 100% rename from luke/src/main/java/com/example/umc10th/domain/mission/dto/MissionReqDTO.java rename to src/main/java/com/example/umc10th/domain/mission/dto/MissionReqDTO.java diff --git a/luke/src/main/java/com/example/umc10th/domain/mission/dto/MissionResDTO.java b/src/main/java/com/example/umc10th/domain/mission/dto/MissionResDTO.java similarity index 100% rename from luke/src/main/java/com/example/umc10th/domain/mission/dto/MissionResDTO.java rename to src/main/java/com/example/umc10th/domain/mission/dto/MissionResDTO.java diff --git a/luke/src/main/java/com/example/umc10th/domain/mission/entity/Market.java b/src/main/java/com/example/umc10th/domain/mission/entity/Market.java similarity index 100% rename from luke/src/main/java/com/example/umc10th/domain/mission/entity/Market.java rename to src/main/java/com/example/umc10th/domain/mission/entity/Market.java diff --git a/luke/src/main/java/com/example/umc10th/domain/mission/entity/Mission.java b/src/main/java/com/example/umc10th/domain/mission/entity/Mission.java similarity index 100% rename from luke/src/main/java/com/example/umc10th/domain/mission/entity/Mission.java rename to src/main/java/com/example/umc10th/domain/mission/entity/Mission.java diff --git a/luke/src/main/java/com/example/umc10th/domain/mission/entity/Region.java b/src/main/java/com/example/umc10th/domain/mission/entity/Region.java similarity index 100% rename from luke/src/main/java/com/example/umc10th/domain/mission/entity/Region.java rename to src/main/java/com/example/umc10th/domain/mission/entity/Region.java diff --git a/luke/src/main/java/com/example/umc10th/domain/mission/entity/mapping/Particiopate.java b/src/main/java/com/example/umc10th/domain/mission/entity/mapping/Particiopate.java similarity index 100% rename from luke/src/main/java/com/example/umc10th/domain/mission/entity/mapping/Particiopate.java rename to src/main/java/com/example/umc10th/domain/mission/entity/mapping/Particiopate.java diff --git a/luke/src/main/java/com/example/umc10th/domain/mission/enums/MissionStatus.java b/src/main/java/com/example/umc10th/domain/mission/enums/MissionStatus.java similarity index 100% rename from luke/src/main/java/com/example/umc10th/domain/mission/enums/MissionStatus.java rename to src/main/java/com/example/umc10th/domain/mission/enums/MissionStatus.java diff --git a/luke/src/main/java/com/example/umc10th/domain/mission/enums/ParticipatedStatus.java b/src/main/java/com/example/umc10th/domain/mission/enums/ParticipatedStatus.java similarity index 100% rename from luke/src/main/java/com/example/umc10th/domain/mission/enums/ParticipatedStatus.java rename to src/main/java/com/example/umc10th/domain/mission/enums/ParticipatedStatus.java diff --git a/luke/src/main/java/com/example/umc10th/domain/mission/exception/MissionExcepotion.java b/src/main/java/com/example/umc10th/domain/mission/exception/MissionExcepotion.java similarity index 100% rename from luke/src/main/java/com/example/umc10th/domain/mission/exception/MissionExcepotion.java rename to src/main/java/com/example/umc10th/domain/mission/exception/MissionExcepotion.java diff --git a/luke/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionErrorCode.java b/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionErrorCode.java similarity index 100% rename from luke/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionErrorCode.java rename to src/main/java/com/example/umc10th/domain/mission/exception/code/MissionErrorCode.java diff --git a/luke/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionSuccessCode.java b/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionSuccessCode.java similarity index 100% rename from luke/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionSuccessCode.java rename to src/main/java/com/example/umc10th/domain/mission/exception/code/MissionSuccessCode.java diff --git a/luke/src/main/java/com/example/umc10th/domain/mission/repository/MissionRepository.java b/src/main/java/com/example/umc10th/domain/mission/repository/MissionRepository.java similarity index 100% rename from luke/src/main/java/com/example/umc10th/domain/mission/repository/MissionRepository.java rename to src/main/java/com/example/umc10th/domain/mission/repository/MissionRepository.java diff --git a/luke/src/main/java/com/example/umc10th/domain/mission/service/MissionService.java b/src/main/java/com/example/umc10th/domain/mission/service/MissionService.java similarity index 100% rename from luke/src/main/java/com/example/umc10th/domain/mission/service/MissionService.java rename to src/main/java/com/example/umc10th/domain/mission/service/MissionService.java diff --git a/src/main/java/com/example/umc10th/domain/review/controller/ReviewController.java b/src/main/java/com/example/umc10th/domain/review/controller/ReviewController.java new file mode 100644 index 0000000..b236403 --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/review/controller/ReviewController.java @@ -0,0 +1,23 @@ +package com.example.umc10th.domain.review.controller; + +import com.example.umc10th.domain.review.dto.ReviewReqDTO; +import com.example.umc10th.domain.review.dto.ReviewResDTO; +import com.example.umc10th.global.apiPayload.ApiResponse; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/api/review") +@RequiredArgsConstructor +public class ReviewController { + + @PostMapping + public ApiResponse createReview( + @RequestBody ReviewReqDTO.CreateReviewDTO request + ) { + return ApiResponse.onSuccess(null); + } +} \ No newline at end of file diff --git a/luke/src/main/java/com/example/umc10th/domain/review/converter/ReviewConverter.java b/src/main/java/com/example/umc10th/domain/review/converter/ReviewConverter.java similarity index 100% rename from luke/src/main/java/com/example/umc10th/domain/review/converter/ReviewConverter.java rename to src/main/java/com/example/umc10th/domain/review/converter/ReviewConverter.java diff --git a/src/main/java/com/example/umc10th/domain/review/dto/ReviewReqDTO.java b/src/main/java/com/example/umc10th/domain/review/dto/ReviewReqDTO.java new file mode 100644 index 0000000..fba8311 --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/review/dto/ReviewReqDTO.java @@ -0,0 +1,11 @@ +package com.example.umc10th.domain.review.dto; + +public class ReviewReqDTO { + + public static class CreateReviewDTO { + public Long marketId; + public Long regionId; + public Integer stars; + public String content; + } +} \ No newline at end of file diff --git a/src/main/java/com/example/umc10th/domain/review/dto/ReviewResDTO.java b/src/main/java/com/example/umc10th/domain/review/dto/ReviewResDTO.java new file mode 100644 index 0000000..2d05bdd --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/review/dto/ReviewResDTO.java @@ -0,0 +1,9 @@ +package com.example.umc10th.domain.review.dto; + +public class ReviewResDTO { + + public static class CreateReviewDTO { + public Long reviewId; + public String message; + } +} \ No newline at end of file diff --git a/src/main/java/com/example/umc10th/domain/review/entity/Review.java b/src/main/java/com/example/umc10th/domain/review/entity/Review.java new file mode 100644 index 0000000..01d803f --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/review/entity/Review.java @@ -0,0 +1,23 @@ +package com.example.umc10th.domain.review.entity; + +import jakarta.persistence.*; +import java.time.LocalDateTime; + +@Entity +@Table(name = "review") +public class Review { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + private Long userId; + + private Long marketId; + + private Integer stars; + + private String content; + + private LocalDateTime createdAt; +} \ No newline at end of file diff --git a/luke/src/main/java/com/example/umc10th/domain/review/exception/ReviewException.java b/src/main/java/com/example/umc10th/domain/review/exception/ReviewException.java similarity index 100% rename from luke/src/main/java/com/example/umc10th/domain/review/exception/ReviewException.java rename to src/main/java/com/example/umc10th/domain/review/exception/ReviewException.java diff --git a/luke/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewErrorCode.java b/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewErrorCode.java similarity index 100% rename from luke/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewErrorCode.java rename to src/main/java/com/example/umc10th/domain/review/exception/code/ReviewErrorCode.java diff --git a/luke/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewSuccessCode.java b/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewSuccessCode.java similarity index 100% rename from luke/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewSuccessCode.java rename to src/main/java/com/example/umc10th/domain/review/exception/code/ReviewSuccessCode.java diff --git a/luke/src/main/java/com/example/umc10th/domain/review/repository/ReviewRepository.java b/src/main/java/com/example/umc10th/domain/review/repository/ReviewRepository.java similarity index 100% rename from luke/src/main/java/com/example/umc10th/domain/review/repository/ReviewRepository.java rename to src/main/java/com/example/umc10th/domain/review/repository/ReviewRepository.java diff --git a/luke/src/main/java/com/example/umc10th/domain/review/service/ReviewService.java b/src/main/java/com/example/umc10th/domain/review/service/ReviewService.java similarity index 100% rename from luke/src/main/java/com/example/umc10th/domain/review/service/ReviewService.java rename to src/main/java/com/example/umc10th/domain/review/service/ReviewService.java diff --git a/luke/src/main/java/com/example/umc10th/global/apiPayload/ApiResponse.java b/src/main/java/com/example/umc10th/global/apiPayload/ApiResponse.java similarity index 86% rename from luke/src/main/java/com/example/umc10th/global/apiPayload/ApiResponse.java rename to src/main/java/com/example/umc10th/global/apiPayload/ApiResponse.java index ee1d7f4..571fc2f 100644 --- a/luke/src/main/java/com/example/umc10th/global/apiPayload/ApiResponse.java +++ b/src/main/java/com/example/umc10th/global/apiPayload/ApiResponse.java @@ -24,6 +24,9 @@ public class ApiResponse { private final T result; // 성공한 경우 (result 포함) + public static ApiResponse onSuccess(T result) { + return new ApiResponse<>(true, "COMMON200", "성공입니다.", result); + } // 실패한 경우 (result 포함) public static ApiResponse onFailure(BaseErrorCode code, T result ) { diff --git a/luke/src/main/java/com/example/umc10th/global/apiPayload/code/BaseErrorCode.java b/src/main/java/com/example/umc10th/global/apiPayload/code/BaseErrorCode.java similarity index 100% rename from luke/src/main/java/com/example/umc10th/global/apiPayload/code/BaseErrorCode.java rename to src/main/java/com/example/umc10th/global/apiPayload/code/BaseErrorCode.java diff --git a/luke/src/main/java/com/example/umc10th/global/apiPayload/code/BaseSuccessCode.java b/src/main/java/com/example/umc10th/global/apiPayload/code/BaseSuccessCode.java similarity index 100% rename from luke/src/main/java/com/example/umc10th/global/apiPayload/code/BaseSuccessCode.java rename to src/main/java/com/example/umc10th/global/apiPayload/code/BaseSuccessCode.java diff --git a/luke/src/main/java/com/example/umc10th/global/apiPayload/code/GeneralErrorCode.java b/src/main/java/com/example/umc10th/global/apiPayload/code/GeneralErrorCode.java similarity index 100% rename from luke/src/main/java/com/example/umc10th/global/apiPayload/code/GeneralErrorCode.java rename to src/main/java/com/example/umc10th/global/apiPayload/code/GeneralErrorCode.java diff --git a/luke/src/main/java/com/example/umc10th/global/apiPayload/code/GeneralSuccessCode.java b/src/main/java/com/example/umc10th/global/apiPayload/code/GeneralSuccessCode.java similarity index 100% rename from luke/src/main/java/com/example/umc10th/global/apiPayload/code/GeneralSuccessCode.java rename to src/main/java/com/example/umc10th/global/apiPayload/code/GeneralSuccessCode.java diff --git a/luke/src/main/java/com/example/umc10th/global/config/SwaggerConfig.java b/src/main/java/com/example/umc10th/global/config/SwaggerConfig.java similarity index 100% rename from luke/src/main/java/com/example/umc10th/global/config/SwaggerConfig.java rename to src/main/java/com/example/umc10th/global/config/SwaggerConfig.java diff --git a/luke/src/test/java/com/example/umc10th/Umc10thApplicationTests.java b/src/test/java/com/example/umc10th/Umc10thApplicationTests.java similarity index 100% rename from luke/src/test/java/com/example/umc10th/Umc10thApplicationTests.java rename to src/test/java/com/example/umc10th/Umc10thApplicationTests.java From 1c7535e673cd6514a9d78011f88924c3010b6d50 Mon Sep 17 00:00:00 2001 From: yujining3827 Date: Wed, 29 Apr 2026 23:49:26 +0900 Subject: [PATCH 09/46] =?UTF-8?q?refactor=20:=20=EC=97=94=ED=8B=B0?= =?UTF-8?q?=ED=8B=B0=EC=97=90=20@Id=20=EB=B0=8F=20JPA=20=EB=A7=A4=ED=95=91?= =?UTF-8?q?=20=EC=B6=94=EA=B0=80=ED=95=98=EC=97=AC=20=EC=8B=A4=ED=96=89=20?= =?UTF-8?q?=EC=98=A4=EB=A5=98=20=ED=95=B4=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../umc10th/domain/member/entity/FoodCategory.java | 11 +++++++++++ .../example/umc10th/domain/member/entity/Member.java | 9 +++++++++ .../umc10th/domain/member/entity/Notification.java | 8 ++++++++ .../example/umc10th/domain/member/entity/Term.java | 8 ++++++++ .../example/umc10th/domain/mission/entity/Market.java | 8 ++++++++ .../umc10th/domain/mission/entity/Mission.java | 8 ++++++++ .../example/umc10th/domain/mission/entity/Region.java | 8 ++++++++ 7 files changed, 60 insertions(+) diff --git a/src/main/java/com/example/umc10th/domain/member/entity/FoodCategory.java b/src/main/java/com/example/umc10th/domain/member/entity/FoodCategory.java index e6e3886..cc619fb 100644 --- a/src/main/java/com/example/umc10th/domain/member/entity/FoodCategory.java +++ b/src/main/java/com/example/umc10th/domain/member/entity/FoodCategory.java @@ -1,4 +1,15 @@ package com.example.umc10th.domain.member.entity; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; + +@Entity public class FoodCategory { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + } diff --git a/src/main/java/com/example/umc10th/domain/member/entity/Member.java b/src/main/java/com/example/umc10th/domain/member/entity/Member.java index eb718c3..c3b4d77 100644 --- a/src/main/java/com/example/umc10th/domain/member/entity/Member.java +++ b/src/main/java/com/example/umc10th/domain/member/entity/Member.java @@ -1,4 +1,13 @@ package com.example.umc10th.domain.member.entity; +import jakarta.persistence.Entity; +import jakarta.persistence.*; + +@Entity public class Member { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + } diff --git a/src/main/java/com/example/umc10th/domain/member/entity/Notification.java b/src/main/java/com/example/umc10th/domain/member/entity/Notification.java index 9152d8e..cc91398 100644 --- a/src/main/java/com/example/umc10th/domain/member/entity/Notification.java +++ b/src/main/java/com/example/umc10th/domain/member/entity/Notification.java @@ -1,4 +1,12 @@ package com.example.umc10th.domain.member.entity; +import jakarta.persistence.Entity; +import jakarta.persistence.*; + +@Entity public class Notification { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + } diff --git a/src/main/java/com/example/umc10th/domain/member/entity/Term.java b/src/main/java/com/example/umc10th/domain/member/entity/Term.java index bb3b640..3a76c88 100644 --- a/src/main/java/com/example/umc10th/domain/member/entity/Term.java +++ b/src/main/java/com/example/umc10th/domain/member/entity/Term.java @@ -1,4 +1,12 @@ package com.example.umc10th.domain.member.entity; +import jakarta.persistence.Entity; +import jakarta.persistence.*; + +@Entity public class Term { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + } diff --git a/src/main/java/com/example/umc10th/domain/mission/entity/Market.java b/src/main/java/com/example/umc10th/domain/mission/entity/Market.java index 2741956..e70fc9a 100644 --- a/src/main/java/com/example/umc10th/domain/mission/entity/Market.java +++ b/src/main/java/com/example/umc10th/domain/mission/entity/Market.java @@ -1,4 +1,12 @@ package com.example.umc10th.domain.mission.entity; +import jakarta.persistence.Entity; +import jakarta.persistence.*; + +@Entity public class Market { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + } diff --git a/src/main/java/com/example/umc10th/domain/mission/entity/Mission.java b/src/main/java/com/example/umc10th/domain/mission/entity/Mission.java index 1dbae7c..17bbc63 100644 --- a/src/main/java/com/example/umc10th/domain/mission/entity/Mission.java +++ b/src/main/java/com/example/umc10th/domain/mission/entity/Mission.java @@ -1,4 +1,12 @@ package com.example.umc10th.domain.mission.entity; +import jakarta.persistence.Entity; +import jakarta.persistence.*; + +@Entity public class Mission { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + } diff --git a/src/main/java/com/example/umc10th/domain/mission/entity/Region.java b/src/main/java/com/example/umc10th/domain/mission/entity/Region.java index fbb978d..97b4404 100644 --- a/src/main/java/com/example/umc10th/domain/mission/entity/Region.java +++ b/src/main/java/com/example/umc10th/domain/mission/entity/Region.java @@ -1,4 +1,12 @@ package com.example.umc10th.domain.mission.entity; +import jakarta.persistence.Entity; +import jakarta.persistence.*; + +@Entity public class Region { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + } From fae1cd465985ff3d598ab9846c90172e3eedb065 Mon Sep 17 00:00:00 2001 From: yujining3827 Date: Thu, 30 Apr 2026 00:01:50 +0900 Subject: [PATCH 10/46] =?UTF-8?q?feat=20:=20=EB=AF=B8=EC=85=98=20=EB=AA=A9?= =?UTF-8?q?=EB=A1=9D=20=EC=A1=B0=ED=9A=8C=20api=20=EA=B5=AC=EC=A1=B0=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mission/controller/MissionController.java | 28 ++++++++++++++++++- .../domain/mission/dto/MissionResDTO.java | 16 +++++++++++ 2 files changed, 43 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/example/umc10th/domain/mission/controller/MissionController.java b/src/main/java/com/example/umc10th/domain/mission/controller/MissionController.java index 123c932..571f28b 100644 --- a/src/main/java/com/example/umc10th/domain/mission/controller/MissionController.java +++ b/src/main/java/com/example/umc10th/domain/mission/controller/MissionController.java @@ -1,4 +1,30 @@ package com.example.umc10th.domain.mission.controller; +import com.example.umc10th.domain.mission.dto.MissionResDTO; +import com.example.umc10th.global.apiPayload.ApiResponse; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; +import java.util.List; + +@RestController +@RequestMapping("/api/mission") +@RequiredArgsConstructor public class MissionController { -} + + @GetMapping + public ApiResponse getMissionList( + @RequestParam(name = "regionName", required = false) String regionName, + @RequestParam(name = "status") String status, + @RequestParam(name = "page") Integer page, + @RequestParam(name = "size") Integer size + ) { + + MissionResDTO.MissionListDTO response = new MissionResDTO.MissionListDTO(); + response.content = List.of(); + response.page = page; + response.size = size; + response.hasNext = false; + + return ApiResponse.onSuccess(response); + } +} \ No newline at end of file diff --git a/src/main/java/com/example/umc10th/domain/mission/dto/MissionResDTO.java b/src/main/java/com/example/umc10th/domain/mission/dto/MissionResDTO.java index 7fc7697..4c0ab66 100644 --- a/src/main/java/com/example/umc10th/domain/mission/dto/MissionResDTO.java +++ b/src/main/java/com/example/umc10th/domain/mission/dto/MissionResDTO.java @@ -1,4 +1,20 @@ package com.example.umc10th.domain.mission.dto; +import java.util.List; + public class MissionResDTO { + + public static class MissionListDTO { + public List content; + public Integer page; + public Integer size; + public Boolean hasNext; + } + + public static class MissionDTO { + public Long missionId; + public String marketName; + public Integer point; + public String status; + } } From f531d0f8f9a89034acd6159c0b8b91da9b895751 Mon Sep 17 00:00:00 2001 From: yujining3827 Date: Thu, 30 Apr 2026 00:05:35 +0900 Subject: [PATCH 11/46] =?UTF-8?q?feat=20:=20=EB=AF=B8=EC=85=98=20=EC=83=81?= =?UTF-8?q?=ED=83=9C=20=EB=B3=80=EA=B2=BD=20api=20=EA=B5=AC=EC=A1=B0=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mission/controller/MissionController.java | 13 +++++++++++++ .../umc10th/domain/mission/dto/MissionReqDTO.java | 5 +++++ .../umc10th/domain/mission/dto/MissionResDTO.java | 5 +++++ 3 files changed, 23 insertions(+) diff --git a/src/main/java/com/example/umc10th/domain/mission/controller/MissionController.java b/src/main/java/com/example/umc10th/domain/mission/controller/MissionController.java index 571f28b..8e0a83a 100644 --- a/src/main/java/com/example/umc10th/domain/mission/controller/MissionController.java +++ b/src/main/java/com/example/umc10th/domain/mission/controller/MissionController.java @@ -1,5 +1,6 @@ package com.example.umc10th.domain.mission.controller; +import com.example.umc10th.domain.mission.dto.MissionReqDTO; import com.example.umc10th.domain.mission.dto.MissionResDTO; import com.example.umc10th.global.apiPayload.ApiResponse; import lombok.RequiredArgsConstructor; @@ -27,4 +28,16 @@ public ApiResponse getMissionList( return ApiResponse.onSuccess(response); } + + @PostMapping("/completed") + public ApiResponse completeMission( + @RequestBody MissionReqDTO.CompleteDTO request + ) { + + MissionResDTO.CompleteDTO response = new MissionResDTO.CompleteDTO(); + response.missionId = request.missionId; + response.message = "미션이 정상적으로 완료되었습니다."; + + return ApiResponse.onSuccess(response); + } } \ No newline at end of file diff --git a/src/main/java/com/example/umc10th/domain/mission/dto/MissionReqDTO.java b/src/main/java/com/example/umc10th/domain/mission/dto/MissionReqDTO.java index e33508b..e023c24 100644 --- a/src/main/java/com/example/umc10th/domain/mission/dto/MissionReqDTO.java +++ b/src/main/java/com/example/umc10th/domain/mission/dto/MissionReqDTO.java @@ -1,4 +1,9 @@ package com.example.umc10th.domain.mission.dto; public class MissionReqDTO { + + public static class CompleteDTO { + public Long missionId; + } + } diff --git a/src/main/java/com/example/umc10th/domain/mission/dto/MissionResDTO.java b/src/main/java/com/example/umc10th/domain/mission/dto/MissionResDTO.java index 4c0ab66..ea72ca4 100644 --- a/src/main/java/com/example/umc10th/domain/mission/dto/MissionResDTO.java +++ b/src/main/java/com/example/umc10th/domain/mission/dto/MissionResDTO.java @@ -17,4 +17,9 @@ public static class MissionDTO { public Integer point; public String status; } + + public static class CompleteDTO { + public Long missionId; + public String message; + } } From 0b44d0bf2e00c52248033130f4966edfbada9a80 Mon Sep 17 00:00:00 2001 From: yujining3827 Date: Thu, 30 Apr 2026 00:13:17 +0900 Subject: [PATCH 12/46] =?UTF-8?q?feat=20:=20=ED=9A=8C=EC=9B=90=EA=B0=80?= =?UTF-8?q?=EC=9E=85=20api=20=EA=B5=AC=EC=A1=B0=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../member/controller/MemberController.java | 21 +++++++++++++++++++ .../domain/member/dto/MemberReqDTO.java | 18 ++++++++++++++++ .../domain/member/dto/MemberResDTO.java | 6 ++++++ 3 files changed, 45 insertions(+) diff --git a/src/main/java/com/example/umc10th/domain/member/controller/MemberController.java b/src/main/java/com/example/umc10th/domain/member/controller/MemberController.java index cfe81a6..299e7ff 100644 --- a/src/main/java/com/example/umc10th/domain/member/controller/MemberController.java +++ b/src/main/java/com/example/umc10th/domain/member/controller/MemberController.java @@ -1,4 +1,25 @@ package com.example.umc10th.domain.member.controller; +import com.example.umc10th.domain.member.dto.MemberReqDTO; +import com.example.umc10th.domain.member.dto.MemberResDTO; +import com.example.umc10th.global.apiPayload.ApiResponse; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequestMapping("/api") +@RequiredArgsConstructor public class MemberController { + + @PostMapping("/signup") + public ApiResponse signup( + @RequestBody MemberReqDTO.SignupDTO request + ) { + + MemberResDTO.SignupDTO response = new MemberResDTO.SignupDTO(); + response.userId = 1L; + response.message = "회원가입이 완료되었습니다."; + + return ApiResponse.onSuccess(response); + } } diff --git a/src/main/java/com/example/umc10th/domain/member/dto/MemberReqDTO.java b/src/main/java/com/example/umc10th/domain/member/dto/MemberReqDTO.java index 3905d3b..2016f60 100644 --- a/src/main/java/com/example/umc10th/domain/member/dto/MemberReqDTO.java +++ b/src/main/java/com/example/umc10th/domain/member/dto/MemberReqDTO.java @@ -1,4 +1,22 @@ package com.example.umc10th.domain.member.dto; +import com.example.umc10th.domain.member.enums.Gender; +import com.example.umc10th.domain.member.enums.UserType; + +import java.time.LocalDate; + public class MemberReqDTO { + + public static class SignupDTO { + public String name; + public Gender gender; + public LocalDate birth; + public String addressLine1; + public String addressLine2; + public String email; + public String phoneNumber; + public UserType type; + public Long agreeId; + } + } diff --git a/src/main/java/com/example/umc10th/domain/member/dto/MemberResDTO.java b/src/main/java/com/example/umc10th/domain/member/dto/MemberResDTO.java index 8e81830..9629b75 100644 --- a/src/main/java/com/example/umc10th/domain/member/dto/MemberResDTO.java +++ b/src/main/java/com/example/umc10th/domain/member/dto/MemberResDTO.java @@ -1,4 +1,10 @@ package com.example.umc10th.domain.member.dto; public class MemberResDTO { + + public static class SignupDTO { + public Long userId; + public String message; + } + } From 3d7bbe6da901670469b0844e7ce91e6c3214cdc4 Mon Sep 17 00:00:00 2001 From: yujining3827 Date: Thu, 30 Apr 2026 00:22:31 +0900 Subject: [PATCH 13/46] =?UTF-8?q?chore=20:=20=ED=8C=8C=EC=9D=BC=EB=AA=85?= =?UTF-8?q?=20=EC=98=A4=ED=83=80=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/member/controller/MemberController.java | 10 ++++++++++ .../umc10th/domain/member/dto/MemberResDTO.java | 8 ++++++++ .../{MewmberService.java => MemberService.java} | 2 +- 3 files changed, 19 insertions(+), 1 deletion(-) rename src/main/java/com/example/umc10th/domain/member/service/{MewmberService.java => MemberService.java} (64%) diff --git a/src/main/java/com/example/umc10th/domain/member/controller/MemberController.java b/src/main/java/com/example/umc10th/domain/member/controller/MemberController.java index 299e7ff..a65d75f 100644 --- a/src/main/java/com/example/umc10th/domain/member/controller/MemberController.java +++ b/src/main/java/com/example/umc10th/domain/member/controller/MemberController.java @@ -2,10 +2,13 @@ import com.example.umc10th.domain.member.dto.MemberReqDTO; import com.example.umc10th.domain.member.dto.MemberResDTO; +import com.example.umc10th.domain.member.service.MemberService; import com.example.umc10th.global.apiPayload.ApiResponse; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; +import java.lang.reflect.Member; + @RestController @RequestMapping("/api") @RequiredArgsConstructor @@ -22,4 +25,11 @@ public ApiResponse signup( return ApiResponse.onSuccess(response); } + + @GetMapping("/home/my") + public ApiResponse getMyPage() { + + MemberResDTO.MyPageDTO response = new MemberResDTO.MyPageDTO(); + return ApiResponse.onSuccess(response); + } } diff --git a/src/main/java/com/example/umc10th/domain/member/dto/MemberResDTO.java b/src/main/java/com/example/umc10th/domain/member/dto/MemberResDTO.java index 9629b75..08c456e 100644 --- a/src/main/java/com/example/umc10th/domain/member/dto/MemberResDTO.java +++ b/src/main/java/com/example/umc10th/domain/member/dto/MemberResDTO.java @@ -7,4 +7,12 @@ public static class SignupDTO { public String message; } + public static class MyPageDTO { + public String nickname; + public String email; + public String phoneNumber; + public Integer phoneNumberStatus; + public Integer userPoint; + } + } diff --git a/src/main/java/com/example/umc10th/domain/member/service/MewmberService.java b/src/main/java/com/example/umc10th/domain/member/service/MemberService.java similarity index 64% rename from src/main/java/com/example/umc10th/domain/member/service/MewmberService.java rename to src/main/java/com/example/umc10th/domain/member/service/MemberService.java index 009b7cf..8d867f2 100644 --- a/src/main/java/com/example/umc10th/domain/member/service/MewmberService.java +++ b/src/main/java/com/example/umc10th/domain/member/service/MemberService.java @@ -1,4 +1,4 @@ package com.example.umc10th.domain.member.service; -public class MewmberService { +public class MemberService { } From 09845637ccb4efa638c741899a2dfc660e843ce9 Mon Sep 17 00:00:00 2001 From: yujining3827 Date: Thu, 30 Apr 2026 14:30:17 +0900 Subject: [PATCH 14/46] =?UTF-8?q?refactor:=20=ED=94=84=EB=A1=9C=EC=A0=9D?= =?UTF-8?q?=ED=8A=B8=20=EB=A3=A8=ED=8A=B8=EC=97=90=20luke=20=EB=94=94?= =?UTF-8?q?=EB=A0=89=ED=86=A0=EB=A6=AC=20=EC=B6=94=EA=B0=80=20=EB=B0=8F=20?= =?UTF-8?q?=EA=B5=AC=EC=A1=B0=20=EC=9E=AC=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- luke/.gitattributes | 3 + .../ISSUE_TEMPLATE/mission_template.md | 18 ++ luke/.github/PULL_REQUEST_TEMPLATE.md | 15 ++ luke/.gitignore | 41 +++ luke/README.md | 74 ++++++ luke/build.gradle | 40 +++ luke/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 48966 bytes luke/gradle/wrapper/gradle-wrapper.properties | 7 + luke/gradlew | 248 ++++++++++++++++++ luke/gradlew.bat | 93 +++++++ luke/settings.gradle | 1 + .../example/umc10th/Umc10thApplication.java | 13 + .../member/controller/MemberController.java | 35 +++ .../member/converter/MemberConverter.java | 4 + .../domain/member/dto/MemberReqDTO.java | 22 ++ .../domain/member/dto/MemberResDTO.java | 18 ++ .../domain/member/entity/FoodCategory.java | 15 ++ .../umc10th/domain/member/entity/Member.java | 13 + .../domain/member/entity/Notification.java | 12 + .../umc10th/domain/member/entity/Term.java | 12 + .../member/entity/mapping/Preference.java | 4 + .../entity/mapping/UserTermAgreement.java | 4 + .../umc10th/domain/member/enums/Gender.java | 4 + .../member/enums/NotifictationType.java | 4 + .../umc10th/domain/member/enums/UserType.java | 4 + .../member/exception/MemberExpection.java | 4 + .../exception/code/MemberErrorCode.java | 4 + .../exception/code/MemberSuccessCode.java | 4 + .../member/repository/MemberRepository.java | 7 + .../domain/member/service/MemberService.java | 4 + .../mission/controller/MissionController.java | 43 +++ .../mission/converter/MissionConverter.java | 4 + .../domain/mission/dto/MissionReqDTO.java | 9 + .../domain/mission/dto/MissionResDTO.java | 25 ++ .../umc10th/domain/mission/entity/Market.java | 12 + .../domain/mission/entity/Mission.java | 12 + .../umc10th/domain/mission/entity/Region.java | 12 + .../mission/entity/mapping/Particiopate.java | 4 + .../domain/mission/enums/MissionStatus.java | 4 + .../mission/enums/ParticipatedStatus.java | 4 + .../mission/exception/MissionExcepotion.java | 4 + .../exception/code/MissionErrorCode.java | 4 + .../exception/code/MissionSuccessCode.java | 4 + .../mission/repository/MissionRepository.java | 7 + .../mission/service/MissionService.java | 4 + .../review/controller/ReviewController.java | 23 ++ .../review/converter/ReviewConverter.java | 4 + .../domain/review/dto/ReviewReqDTO.java | 11 + .../domain/review/dto/ReviewResDTO.java | 9 + .../umc10th/domain/review/entity/Review.java | 23 ++ .../review/exception/ReviewException.java | 4 + .../exception/code/ReviewErrorCode.java | 4 + .../exception/code/ReviewSuccessCode.java | 4 + .../review/repository/ReviewRepository.java | 7 + .../domain/review/service/ReviewService.java | 4 + .../global/apiPayload/ApiResponse.java | 35 +++ .../global/apiPayload/code/BaseErrorCode.java | 9 + .../apiPayload/code/BaseSuccessCode.java | 10 + .../apiPayload/code/GeneralErrorCode.java | 34 +++ .../apiPayload/code/GeneralSuccessCode.java | 19 ++ .../umc10th/global/config/SwaggerConfig.java | 36 +++ .../umc10th/Umc10thApplicationTests.java | 13 + 62 files changed, 1128 insertions(+) create mode 100644 luke/.gitattributes create mode 100644 luke/.github/ISSUE_TEMPLATE/mission_template.md create mode 100644 luke/.github/PULL_REQUEST_TEMPLATE.md create mode 100644 luke/.gitignore create mode 100644 luke/README.md create mode 100644 luke/build.gradle create mode 100644 luke/gradle/wrapper/gradle-wrapper.jar create mode 100644 luke/gradle/wrapper/gradle-wrapper.properties create mode 100755 luke/gradlew create mode 100644 luke/gradlew.bat create mode 100644 luke/settings.gradle create mode 100644 luke/src/main/java/com/example/umc10th/Umc10thApplication.java create mode 100644 luke/src/main/java/com/example/umc10th/domain/member/controller/MemberController.java create mode 100644 luke/src/main/java/com/example/umc10th/domain/member/converter/MemberConverter.java create mode 100644 luke/src/main/java/com/example/umc10th/domain/member/dto/MemberReqDTO.java create mode 100644 luke/src/main/java/com/example/umc10th/domain/member/dto/MemberResDTO.java create mode 100644 luke/src/main/java/com/example/umc10th/domain/member/entity/FoodCategory.java create mode 100644 luke/src/main/java/com/example/umc10th/domain/member/entity/Member.java create mode 100644 luke/src/main/java/com/example/umc10th/domain/member/entity/Notification.java create mode 100644 luke/src/main/java/com/example/umc10th/domain/member/entity/Term.java create mode 100644 luke/src/main/java/com/example/umc10th/domain/member/entity/mapping/Preference.java create mode 100644 luke/src/main/java/com/example/umc10th/domain/member/entity/mapping/UserTermAgreement.java create mode 100644 luke/src/main/java/com/example/umc10th/domain/member/enums/Gender.java create mode 100644 luke/src/main/java/com/example/umc10th/domain/member/enums/NotifictationType.java create mode 100644 luke/src/main/java/com/example/umc10th/domain/member/enums/UserType.java create mode 100644 luke/src/main/java/com/example/umc10th/domain/member/exception/MemberExpection.java create mode 100644 luke/src/main/java/com/example/umc10th/domain/member/exception/code/MemberErrorCode.java create mode 100644 luke/src/main/java/com/example/umc10th/domain/member/exception/code/MemberSuccessCode.java create mode 100644 luke/src/main/java/com/example/umc10th/domain/member/repository/MemberRepository.java create mode 100644 luke/src/main/java/com/example/umc10th/domain/member/service/MemberService.java create mode 100644 luke/src/main/java/com/example/umc10th/domain/mission/controller/MissionController.java create mode 100644 luke/src/main/java/com/example/umc10th/domain/mission/converter/MissionConverter.java create mode 100644 luke/src/main/java/com/example/umc10th/domain/mission/dto/MissionReqDTO.java create mode 100644 luke/src/main/java/com/example/umc10th/domain/mission/dto/MissionResDTO.java create mode 100644 luke/src/main/java/com/example/umc10th/domain/mission/entity/Market.java create mode 100644 luke/src/main/java/com/example/umc10th/domain/mission/entity/Mission.java create mode 100644 luke/src/main/java/com/example/umc10th/domain/mission/entity/Region.java create mode 100644 luke/src/main/java/com/example/umc10th/domain/mission/entity/mapping/Particiopate.java create mode 100644 luke/src/main/java/com/example/umc10th/domain/mission/enums/MissionStatus.java create mode 100644 luke/src/main/java/com/example/umc10th/domain/mission/enums/ParticipatedStatus.java create mode 100644 luke/src/main/java/com/example/umc10th/domain/mission/exception/MissionExcepotion.java create mode 100644 luke/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionErrorCode.java create mode 100644 luke/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionSuccessCode.java create mode 100644 luke/src/main/java/com/example/umc10th/domain/mission/repository/MissionRepository.java create mode 100644 luke/src/main/java/com/example/umc10th/domain/mission/service/MissionService.java create mode 100644 luke/src/main/java/com/example/umc10th/domain/review/controller/ReviewController.java create mode 100644 luke/src/main/java/com/example/umc10th/domain/review/converter/ReviewConverter.java create mode 100644 luke/src/main/java/com/example/umc10th/domain/review/dto/ReviewReqDTO.java create mode 100644 luke/src/main/java/com/example/umc10th/domain/review/dto/ReviewResDTO.java create mode 100644 luke/src/main/java/com/example/umc10th/domain/review/entity/Review.java create mode 100644 luke/src/main/java/com/example/umc10th/domain/review/exception/ReviewException.java create mode 100644 luke/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewErrorCode.java create mode 100644 luke/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewSuccessCode.java create mode 100644 luke/src/main/java/com/example/umc10th/domain/review/repository/ReviewRepository.java create mode 100644 luke/src/main/java/com/example/umc10th/domain/review/service/ReviewService.java create mode 100644 luke/src/main/java/com/example/umc10th/global/apiPayload/ApiResponse.java create mode 100644 luke/src/main/java/com/example/umc10th/global/apiPayload/code/BaseErrorCode.java create mode 100644 luke/src/main/java/com/example/umc10th/global/apiPayload/code/BaseSuccessCode.java create mode 100644 luke/src/main/java/com/example/umc10th/global/apiPayload/code/GeneralErrorCode.java create mode 100644 luke/src/main/java/com/example/umc10th/global/apiPayload/code/GeneralSuccessCode.java create mode 100644 luke/src/main/java/com/example/umc10th/global/config/SwaggerConfig.java create mode 100644 luke/src/test/java/com/example/umc10th/Umc10thApplicationTests.java diff --git a/luke/.gitattributes b/luke/.gitattributes new file mode 100644 index 0000000..8af972c --- /dev/null +++ b/luke/.gitattributes @@ -0,0 +1,3 @@ +/gradlew text eol=lf +*.bat text eol=crlf +*.jar binary diff --git a/luke/.github/ISSUE_TEMPLATE/mission_template.md b/luke/.github/ISSUE_TEMPLATE/mission_template.md new file mode 100644 index 0000000..9c5b6ef --- /dev/null +++ b/luke/.github/ISSUE_TEMPLATE/mission_template.md @@ -0,0 +1,18 @@ +--- +name: "🚩 미션" +about: "미션 단위로 관리하는 이슈 템플릿" +title: "[Mission]" +labels: [] +assignees: [] +--- + +## 🚩 미션 설명 + + +## ✅ 체크리스트 +- [ ] +- [ ] +- [ ] + +## 💬 참고 자료 + diff --git a/luke/.github/PULL_REQUEST_TEMPLATE.md b/luke/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..4915b04 --- /dev/null +++ b/luke/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,15 @@ +## 🚩 관련 이슈 + +- close #이슈번호 + +## 📌 구현 결과 + + +## ❓ 리뷰 요청 + + +## 🤔 질문 + + +## 💬 기타 공유 사항 + diff --git a/luke/.gitignore b/luke/.gitignore new file mode 100644 index 0000000..af0a9b5 --- /dev/null +++ b/luke/.gitignore @@ -0,0 +1,41 @@ +HELP.md +.gradle +build/ +!luke/gradle/wrapper/gradle-wrapper.jar +!**/src/main/**/build/ +!**/src/test/**/build/ + +### 민감한 정보 ### +.env +application.yml + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache +bin/ +!**/src/main/**/bin/ +!**/src/test/**/bin/ + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr +out/ +!**/src/main/**/out/ +!**/src/test/**/out/ + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ + +### VS Code ### +.vscode/ diff --git a/luke/README.md b/luke/README.md new file mode 100644 index 0000000..33c0edc --- /dev/null +++ b/luke/README.md @@ -0,0 +1,74 @@ +# 10th_SpringBoot_B + +### Git 작업 순서 + +본인의 브랜치에서만 작업하고, `main` 브랜치는 직접 수정하지 않습니다. + +#### 1. 현재 브랜치 확인 +```sh +git branch +``` + +#### 2. 변경 사항 확인 +```sh +git status +``` + +#### 3. 변경된 파일 추가 +```sh +git add . +``` + +#### 4. 커밋 메시지 작성 +```sh +git commit-m "Commit Message" +``` + +#### 5. 원격 저장소에 본인 브랜치로 푸시 +```sh +git push origin <브랜치명> +``` + +### Commit Convention + +커밋 메시지는 `타입: n주차 미션 설명 #이슈넘버`의 형식을 갖추어 작성합니다. + +| 타입 | 설명 | +|-----------|--------------------------------| +| feat | 새로운 기능 추가 | +| fix | 버그 수정 | +| refactor | 코드 리팩토링 | +| docs | 문서 수정 (README 등) | +| style | 코드 스타일 변경 (세미콜론 추가 등)| +| chore | 빌드 및 패키지 설정 변경 | +| test | 테스트 코드 추가 | + +#### Commit Example +```sh +git commit -m "feat: 4주차 미션 엔터티 작성 #1" +git commit -m "fix: 5주차 미션 연관관계 수정 #2" +``` + +### Branch Naming Convention + +브랜치는 `닉네임/weekN` 형식으로 생성합니다. + +| 규칙 | 설명 | 예시 | +| --- | --- | --- | +| 닉네임 | GitHub 닉네임 또는 팀 내 별칭 사용 | `naru`, `leeseo` | +| weekN | 미션 주차 번호 (`N`은 숫자) | `week1`, `week4` | +| 구분자 | 슬래시(`/`)로 닉네임과 주차 구분 | `naru/week4` | + +#### Commit Example +- `naru/week4` -> 나루의 4주차 미션 브랜치 +- `leeseo/week5` -> 이서의 5주차 미션 브랜치 + +### PR Convention + +- Pull Request(PR)은 미션 별로 생성합니다. +- PR 제목은 `n주차 미션 [닉네임]` 형식으로 작성합니다. +- 스터디원끼리 승인한 후, main 브랜치로 Merge 합니다. + +#### PR Example +- 1주차 미션 [나루] +- 2주차 미션 [이서] diff --git a/luke/build.gradle b/luke/build.gradle new file mode 100644 index 0000000..4c42238 --- /dev/null +++ b/luke/build.gradle @@ -0,0 +1,40 @@ +plugins { + id 'java' + id 'org.springframework.boot' version '4.0.5' + id 'io.spring.dependency-management' version '1.1.7' +} + +group = 'com.example' +version = '0.0.1-SNAPSHOT' +description = 'umc10th' + +java { + toolchain { + languageVersion = JavaLanguageVersion.of(21) + } +} + +repositories { + mavenCentral() +} + +dependencies { + implementation 'org.springframework.boot:spring-boot-starter-data-jpa' + implementation 'org.springframework.boot:spring-boot-starter-webmvc' + compileOnly 'org.projectlombok:lombok' + runtimeOnly 'com.mysql:mysql-connector-j' + annotationProcessor 'org.projectlombok:lombok' + testImplementation 'org.springframework.boot:spring-boot-starter-data-jpa-test' + testImplementation 'org.springframework.boot:spring-boot-starter-webmvc-test' + testCompileOnly 'org.projectlombok:lombok' + testRuntimeOnly 'org.junit.platform:junit-platform-launcher' + testAnnotationProcessor 'org.projectlombok:lombok' + + // Swagger + implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:3.0.1' + implementation 'org.springdoc:springdoc-openapi-starter-webmvc-api:3.0.1' +} + +tasks.named('test') { + useJUnitPlatform() +} diff --git a/luke/gradle/wrapper/gradle-wrapper.jar b/luke/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..d997cfc60f4cff0e7451d19d49a82fa986695d07 GIT binary patch literal 48966 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

`Lem|V$A>eR0uN8Y&sdjtu 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

1bvi{DS7E@q1{$_8->K{_OWv2 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 literal 0 HcmV?d00001 diff --git a/luke/gradle/wrapper/gradle-wrapper.properties b/luke/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..c61a118 --- /dev/null +++ b/luke/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,7 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.1-bin.zip +networkTimeout=10000 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/luke/gradlew b/luke/gradlew new file mode 100755 index 0000000..739907d --- /dev/null +++ b/luke/gradlew @@ -0,0 +1,248 @@ +#!/bin/sh + +# +# Copyright © 2015 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/2d6327017519d23b96af35865dc997fcb544fb40/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/luke/gradlew.bat b/luke/gradlew.bat new file mode 100644 index 0000000..c4bdd3a --- /dev/null +++ b/luke/gradlew.bat @@ -0,0 +1,93 @@ +@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 +@rem SPDX-License-Identifier: Apache-2.0 +@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=. +@rem This is normally unused +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% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:execute +@rem Setup the command line + + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 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! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/luke/settings.gradle b/luke/settings.gradle new file mode 100644 index 0000000..67a1b8e --- /dev/null +++ b/luke/settings.gradle @@ -0,0 +1 @@ +rootProject.name = 'umc10th' diff --git a/luke/src/main/java/com/example/umc10th/Umc10thApplication.java b/luke/src/main/java/com/example/umc10th/Umc10thApplication.java new file mode 100644 index 0000000..9983f43 --- /dev/null +++ b/luke/src/main/java/com/example/umc10th/Umc10thApplication.java @@ -0,0 +1,13 @@ +package com.example.umc10th; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class Umc10thApplication { + + public static void main(String[] args) { + SpringApplication.run(Umc10thApplication.class, args); + } + +} diff --git a/luke/src/main/java/com/example/umc10th/domain/member/controller/MemberController.java b/luke/src/main/java/com/example/umc10th/domain/member/controller/MemberController.java new file mode 100644 index 0000000..a65d75f --- /dev/null +++ b/luke/src/main/java/com/example/umc10th/domain/member/controller/MemberController.java @@ -0,0 +1,35 @@ +package com.example.umc10th.domain.member.controller; + +import com.example.umc10th.domain.member.dto.MemberReqDTO; +import com.example.umc10th.domain.member.dto.MemberResDTO; +import com.example.umc10th.domain.member.service.MemberService; +import com.example.umc10th.global.apiPayload.ApiResponse; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import java.lang.reflect.Member; + +@RestController +@RequestMapping("/api") +@RequiredArgsConstructor +public class MemberController { + + @PostMapping("/signup") + public ApiResponse signup( + @RequestBody MemberReqDTO.SignupDTO request + ) { + + MemberResDTO.SignupDTO response = new MemberResDTO.SignupDTO(); + response.userId = 1L; + response.message = "회원가입이 완료되었습니다."; + + return ApiResponse.onSuccess(response); + } + + @GetMapping("/home/my") + public ApiResponse getMyPage() { + + MemberResDTO.MyPageDTO response = new MemberResDTO.MyPageDTO(); + return ApiResponse.onSuccess(response); + } +} diff --git a/luke/src/main/java/com/example/umc10th/domain/member/converter/MemberConverter.java b/luke/src/main/java/com/example/umc10th/domain/member/converter/MemberConverter.java new file mode 100644 index 0000000..2c6188e --- /dev/null +++ b/luke/src/main/java/com/example/umc10th/domain/member/converter/MemberConverter.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.member.converter; + +public class MemberConverter { +} diff --git a/luke/src/main/java/com/example/umc10th/domain/member/dto/MemberReqDTO.java b/luke/src/main/java/com/example/umc10th/domain/member/dto/MemberReqDTO.java new file mode 100644 index 0000000..2016f60 --- /dev/null +++ b/luke/src/main/java/com/example/umc10th/domain/member/dto/MemberReqDTO.java @@ -0,0 +1,22 @@ +package com.example.umc10th.domain.member.dto; + +import com.example.umc10th.domain.member.enums.Gender; +import com.example.umc10th.domain.member.enums.UserType; + +import java.time.LocalDate; + +public class MemberReqDTO { + + public static class SignupDTO { + public String name; + public Gender gender; + public LocalDate birth; + public String addressLine1; + public String addressLine2; + public String email; + public String phoneNumber; + public UserType type; + public Long agreeId; + } + +} diff --git a/luke/src/main/java/com/example/umc10th/domain/member/dto/MemberResDTO.java b/luke/src/main/java/com/example/umc10th/domain/member/dto/MemberResDTO.java new file mode 100644 index 0000000..08c456e --- /dev/null +++ b/luke/src/main/java/com/example/umc10th/domain/member/dto/MemberResDTO.java @@ -0,0 +1,18 @@ +package com.example.umc10th.domain.member.dto; + +public class MemberResDTO { + + public static class SignupDTO { + public Long userId; + public String message; + } + + public static class MyPageDTO { + public String nickname; + public String email; + public String phoneNumber; + public Integer phoneNumberStatus; + public Integer userPoint; + } + +} diff --git a/luke/src/main/java/com/example/umc10th/domain/member/entity/FoodCategory.java b/luke/src/main/java/com/example/umc10th/domain/member/entity/FoodCategory.java new file mode 100644 index 0000000..cc619fb --- /dev/null +++ b/luke/src/main/java/com/example/umc10th/domain/member/entity/FoodCategory.java @@ -0,0 +1,15 @@ +package com.example.umc10th.domain.member.entity; + +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; + +@Entity +public class FoodCategory { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + +} diff --git a/luke/src/main/java/com/example/umc10th/domain/member/entity/Member.java b/luke/src/main/java/com/example/umc10th/domain/member/entity/Member.java new file mode 100644 index 0000000..c3b4d77 --- /dev/null +++ b/luke/src/main/java/com/example/umc10th/domain/member/entity/Member.java @@ -0,0 +1,13 @@ +package com.example.umc10th.domain.member.entity; + +import jakarta.persistence.Entity; +import jakarta.persistence.*; + +@Entity +public class Member { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + +} diff --git a/luke/src/main/java/com/example/umc10th/domain/member/entity/Notification.java b/luke/src/main/java/com/example/umc10th/domain/member/entity/Notification.java new file mode 100644 index 0000000..cc91398 --- /dev/null +++ b/luke/src/main/java/com/example/umc10th/domain/member/entity/Notification.java @@ -0,0 +1,12 @@ +package com.example.umc10th.domain.member.entity; + +import jakarta.persistence.Entity; +import jakarta.persistence.*; + +@Entity +public class Notification { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + +} diff --git a/luke/src/main/java/com/example/umc10th/domain/member/entity/Term.java b/luke/src/main/java/com/example/umc10th/domain/member/entity/Term.java new file mode 100644 index 0000000..3a76c88 --- /dev/null +++ b/luke/src/main/java/com/example/umc10th/domain/member/entity/Term.java @@ -0,0 +1,12 @@ +package com.example.umc10th.domain.member.entity; + +import jakarta.persistence.Entity; +import jakarta.persistence.*; + +@Entity +public class Term { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + +} diff --git a/luke/src/main/java/com/example/umc10th/domain/member/entity/mapping/Preference.java b/luke/src/main/java/com/example/umc10th/domain/member/entity/mapping/Preference.java new file mode 100644 index 0000000..07736e4 --- /dev/null +++ b/luke/src/main/java/com/example/umc10th/domain/member/entity/mapping/Preference.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.member.entity.mapping; + +public class Preference { +} diff --git a/luke/src/main/java/com/example/umc10th/domain/member/entity/mapping/UserTermAgreement.java b/luke/src/main/java/com/example/umc10th/domain/member/entity/mapping/UserTermAgreement.java new file mode 100644 index 0000000..94df8e7 --- /dev/null +++ b/luke/src/main/java/com/example/umc10th/domain/member/entity/mapping/UserTermAgreement.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.member.entity.mapping; + +public class UserTermAgreement { +} diff --git a/luke/src/main/java/com/example/umc10th/domain/member/enums/Gender.java b/luke/src/main/java/com/example/umc10th/domain/member/enums/Gender.java new file mode 100644 index 0000000..729751d --- /dev/null +++ b/luke/src/main/java/com/example/umc10th/domain/member/enums/Gender.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.member.enums; + +public enum Gender { +} diff --git a/luke/src/main/java/com/example/umc10th/domain/member/enums/NotifictationType.java b/luke/src/main/java/com/example/umc10th/domain/member/enums/NotifictationType.java new file mode 100644 index 0000000..3bfa309 --- /dev/null +++ b/luke/src/main/java/com/example/umc10th/domain/member/enums/NotifictationType.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.member.enums; + +public enum NotifictationType { +} diff --git a/luke/src/main/java/com/example/umc10th/domain/member/enums/UserType.java b/luke/src/main/java/com/example/umc10th/domain/member/enums/UserType.java new file mode 100644 index 0000000..9f0d674 --- /dev/null +++ b/luke/src/main/java/com/example/umc10th/domain/member/enums/UserType.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.member.enums; + +public enum UserType { +} diff --git a/luke/src/main/java/com/example/umc10th/domain/member/exception/MemberExpection.java b/luke/src/main/java/com/example/umc10th/domain/member/exception/MemberExpection.java new file mode 100644 index 0000000..cfc9d67 --- /dev/null +++ b/luke/src/main/java/com/example/umc10th/domain/member/exception/MemberExpection.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.member.exception; + +public class MemberExpection { +} diff --git a/luke/src/main/java/com/example/umc10th/domain/member/exception/code/MemberErrorCode.java b/luke/src/main/java/com/example/umc10th/domain/member/exception/code/MemberErrorCode.java new file mode 100644 index 0000000..135bd22 --- /dev/null +++ b/luke/src/main/java/com/example/umc10th/domain/member/exception/code/MemberErrorCode.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.member.exception.code; + +public enum MemberErrorCode { +} diff --git a/luke/src/main/java/com/example/umc10th/domain/member/exception/code/MemberSuccessCode.java b/luke/src/main/java/com/example/umc10th/domain/member/exception/code/MemberSuccessCode.java new file mode 100644 index 0000000..f42e80f --- /dev/null +++ b/luke/src/main/java/com/example/umc10th/domain/member/exception/code/MemberSuccessCode.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.member.exception.code; + +public enum MemberSuccessCode { +} diff --git a/luke/src/main/java/com/example/umc10th/domain/member/repository/MemberRepository.java b/luke/src/main/java/com/example/umc10th/domain/member/repository/MemberRepository.java new file mode 100644 index 0000000..e878bbb --- /dev/null +++ b/luke/src/main/java/com/example/umc10th/domain/member/repository/MemberRepository.java @@ -0,0 +1,7 @@ +package com.example.umc10th.domain.member.repository; + +import com.example.umc10th.domain.member.entity.Member; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface MemberRepository extends JpaRepository { +} \ No newline at end of file diff --git a/luke/src/main/java/com/example/umc10th/domain/member/service/MemberService.java b/luke/src/main/java/com/example/umc10th/domain/member/service/MemberService.java new file mode 100644 index 0000000..8d867f2 --- /dev/null +++ b/luke/src/main/java/com/example/umc10th/domain/member/service/MemberService.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.member.service; + +public class MemberService { +} diff --git a/luke/src/main/java/com/example/umc10th/domain/mission/controller/MissionController.java b/luke/src/main/java/com/example/umc10th/domain/mission/controller/MissionController.java new file mode 100644 index 0000000..8e0a83a --- /dev/null +++ b/luke/src/main/java/com/example/umc10th/domain/mission/controller/MissionController.java @@ -0,0 +1,43 @@ +package com.example.umc10th.domain.mission.controller; + +import com.example.umc10th.domain.mission.dto.MissionReqDTO; +import com.example.umc10th.domain.mission.dto.MissionResDTO; +import com.example.umc10th.global.apiPayload.ApiResponse; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; +import java.util.List; + +@RestController +@RequestMapping("/api/mission") +@RequiredArgsConstructor +public class MissionController { + + @GetMapping + public ApiResponse getMissionList( + @RequestParam(name = "regionName", required = false) String regionName, + @RequestParam(name = "status") String status, + @RequestParam(name = "page") Integer page, + @RequestParam(name = "size") Integer size + ) { + + MissionResDTO.MissionListDTO response = new MissionResDTO.MissionListDTO(); + response.content = List.of(); + response.page = page; + response.size = size; + response.hasNext = false; + + return ApiResponse.onSuccess(response); + } + + @PostMapping("/completed") + public ApiResponse completeMission( + @RequestBody MissionReqDTO.CompleteDTO request + ) { + + MissionResDTO.CompleteDTO response = new MissionResDTO.CompleteDTO(); + response.missionId = request.missionId; + response.message = "미션이 정상적으로 완료되었습니다."; + + return ApiResponse.onSuccess(response); + } +} \ No newline at end of file diff --git a/luke/src/main/java/com/example/umc10th/domain/mission/converter/MissionConverter.java b/luke/src/main/java/com/example/umc10th/domain/mission/converter/MissionConverter.java new file mode 100644 index 0000000..336f76a --- /dev/null +++ b/luke/src/main/java/com/example/umc10th/domain/mission/converter/MissionConverter.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.mission.converter; + +public class MissionConverter { +} diff --git a/luke/src/main/java/com/example/umc10th/domain/mission/dto/MissionReqDTO.java b/luke/src/main/java/com/example/umc10th/domain/mission/dto/MissionReqDTO.java new file mode 100644 index 0000000..e023c24 --- /dev/null +++ b/luke/src/main/java/com/example/umc10th/domain/mission/dto/MissionReqDTO.java @@ -0,0 +1,9 @@ +package com.example.umc10th.domain.mission.dto; + +public class MissionReqDTO { + + public static class CompleteDTO { + public Long missionId; + } + +} diff --git a/luke/src/main/java/com/example/umc10th/domain/mission/dto/MissionResDTO.java b/luke/src/main/java/com/example/umc10th/domain/mission/dto/MissionResDTO.java new file mode 100644 index 0000000..ea72ca4 --- /dev/null +++ b/luke/src/main/java/com/example/umc10th/domain/mission/dto/MissionResDTO.java @@ -0,0 +1,25 @@ +package com.example.umc10th.domain.mission.dto; + +import java.util.List; + +public class MissionResDTO { + + public static class MissionListDTO { + public List content; + public Integer page; + public Integer size; + public Boolean hasNext; + } + + public static class MissionDTO { + public Long missionId; + public String marketName; + public Integer point; + public String status; + } + + public static class CompleteDTO { + public Long missionId; + public String message; + } +} diff --git a/luke/src/main/java/com/example/umc10th/domain/mission/entity/Market.java b/luke/src/main/java/com/example/umc10th/domain/mission/entity/Market.java new file mode 100644 index 0000000..e70fc9a --- /dev/null +++ b/luke/src/main/java/com/example/umc10th/domain/mission/entity/Market.java @@ -0,0 +1,12 @@ +package com.example.umc10th.domain.mission.entity; + +import jakarta.persistence.Entity; +import jakarta.persistence.*; + +@Entity +public class Market { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + +} diff --git a/luke/src/main/java/com/example/umc10th/domain/mission/entity/Mission.java b/luke/src/main/java/com/example/umc10th/domain/mission/entity/Mission.java new file mode 100644 index 0000000..17bbc63 --- /dev/null +++ b/luke/src/main/java/com/example/umc10th/domain/mission/entity/Mission.java @@ -0,0 +1,12 @@ +package com.example.umc10th.domain.mission.entity; + +import jakarta.persistence.Entity; +import jakarta.persistence.*; + +@Entity +public class Mission { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + +} diff --git a/luke/src/main/java/com/example/umc10th/domain/mission/entity/Region.java b/luke/src/main/java/com/example/umc10th/domain/mission/entity/Region.java new file mode 100644 index 0000000..97b4404 --- /dev/null +++ b/luke/src/main/java/com/example/umc10th/domain/mission/entity/Region.java @@ -0,0 +1,12 @@ +package com.example.umc10th.domain.mission.entity; + +import jakarta.persistence.Entity; +import jakarta.persistence.*; + +@Entity +public class Region { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + +} diff --git a/luke/src/main/java/com/example/umc10th/domain/mission/entity/mapping/Particiopate.java b/luke/src/main/java/com/example/umc10th/domain/mission/entity/mapping/Particiopate.java new file mode 100644 index 0000000..821c13b --- /dev/null +++ b/luke/src/main/java/com/example/umc10th/domain/mission/entity/mapping/Particiopate.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.mission.entity.mapping; + +public class Particiopate { +} diff --git a/luke/src/main/java/com/example/umc10th/domain/mission/enums/MissionStatus.java b/luke/src/main/java/com/example/umc10th/domain/mission/enums/MissionStatus.java new file mode 100644 index 0000000..ed7ebba --- /dev/null +++ b/luke/src/main/java/com/example/umc10th/domain/mission/enums/MissionStatus.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.mission.enums; + +public enum MissionStatus { +} diff --git a/luke/src/main/java/com/example/umc10th/domain/mission/enums/ParticipatedStatus.java b/luke/src/main/java/com/example/umc10th/domain/mission/enums/ParticipatedStatus.java new file mode 100644 index 0000000..bf497db --- /dev/null +++ b/luke/src/main/java/com/example/umc10th/domain/mission/enums/ParticipatedStatus.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.mission.enums; + +public enum ParticipatedStatus { +} diff --git a/luke/src/main/java/com/example/umc10th/domain/mission/exception/MissionExcepotion.java b/luke/src/main/java/com/example/umc10th/domain/mission/exception/MissionExcepotion.java new file mode 100644 index 0000000..499fc5f --- /dev/null +++ b/luke/src/main/java/com/example/umc10th/domain/mission/exception/MissionExcepotion.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.mission.exception; + +public class MissionExcepotion { +} diff --git a/luke/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionErrorCode.java b/luke/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionErrorCode.java new file mode 100644 index 0000000..ee79191 --- /dev/null +++ b/luke/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionErrorCode.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.mission.exception.code; + +public enum MissionErrorCode { +} diff --git a/luke/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionSuccessCode.java b/luke/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionSuccessCode.java new file mode 100644 index 0000000..a30e4ea --- /dev/null +++ b/luke/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionSuccessCode.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.mission.exception.code; + +public enum MissionSuccessCode { +} diff --git a/luke/src/main/java/com/example/umc10th/domain/mission/repository/MissionRepository.java b/luke/src/main/java/com/example/umc10th/domain/mission/repository/MissionRepository.java new file mode 100644 index 0000000..71f7528 --- /dev/null +++ b/luke/src/main/java/com/example/umc10th/domain/mission/repository/MissionRepository.java @@ -0,0 +1,7 @@ +package com.example.umc10th.domain.mission.repository; + +import com.example.umc10th.domain.mission.entity.Mission; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface MissionRepository extends JpaRepository { +} diff --git a/luke/src/main/java/com/example/umc10th/domain/mission/service/MissionService.java b/luke/src/main/java/com/example/umc10th/domain/mission/service/MissionService.java new file mode 100644 index 0000000..d69ce74 --- /dev/null +++ b/luke/src/main/java/com/example/umc10th/domain/mission/service/MissionService.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.mission.service; + +public class MissionService { +} diff --git a/luke/src/main/java/com/example/umc10th/domain/review/controller/ReviewController.java b/luke/src/main/java/com/example/umc10th/domain/review/controller/ReviewController.java new file mode 100644 index 0000000..b236403 --- /dev/null +++ b/luke/src/main/java/com/example/umc10th/domain/review/controller/ReviewController.java @@ -0,0 +1,23 @@ +package com.example.umc10th.domain.review.controller; + +import com.example.umc10th.domain.review.dto.ReviewReqDTO; +import com.example.umc10th.domain.review.dto.ReviewResDTO; +import com.example.umc10th.global.apiPayload.ApiResponse; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/api/review") +@RequiredArgsConstructor +public class ReviewController { + + @PostMapping + public ApiResponse createReview( + @RequestBody ReviewReqDTO.CreateReviewDTO request + ) { + return ApiResponse.onSuccess(null); + } +} \ No newline at end of file diff --git a/luke/src/main/java/com/example/umc10th/domain/review/converter/ReviewConverter.java b/luke/src/main/java/com/example/umc10th/domain/review/converter/ReviewConverter.java new file mode 100644 index 0000000..c2fd181 --- /dev/null +++ b/luke/src/main/java/com/example/umc10th/domain/review/converter/ReviewConverter.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.review.converter; + +public class ReviewConverter { +} diff --git a/luke/src/main/java/com/example/umc10th/domain/review/dto/ReviewReqDTO.java b/luke/src/main/java/com/example/umc10th/domain/review/dto/ReviewReqDTO.java new file mode 100644 index 0000000..fba8311 --- /dev/null +++ b/luke/src/main/java/com/example/umc10th/domain/review/dto/ReviewReqDTO.java @@ -0,0 +1,11 @@ +package com.example.umc10th.domain.review.dto; + +public class ReviewReqDTO { + + public static class CreateReviewDTO { + public Long marketId; + public Long regionId; + public Integer stars; + public String content; + } +} \ No newline at end of file diff --git a/luke/src/main/java/com/example/umc10th/domain/review/dto/ReviewResDTO.java b/luke/src/main/java/com/example/umc10th/domain/review/dto/ReviewResDTO.java new file mode 100644 index 0000000..2d05bdd --- /dev/null +++ b/luke/src/main/java/com/example/umc10th/domain/review/dto/ReviewResDTO.java @@ -0,0 +1,9 @@ +package com.example.umc10th.domain.review.dto; + +public class ReviewResDTO { + + public static class CreateReviewDTO { + public Long reviewId; + public String message; + } +} \ No newline at end of file diff --git a/luke/src/main/java/com/example/umc10th/domain/review/entity/Review.java b/luke/src/main/java/com/example/umc10th/domain/review/entity/Review.java new file mode 100644 index 0000000..01d803f --- /dev/null +++ b/luke/src/main/java/com/example/umc10th/domain/review/entity/Review.java @@ -0,0 +1,23 @@ +package com.example.umc10th.domain.review.entity; + +import jakarta.persistence.*; +import java.time.LocalDateTime; + +@Entity +@Table(name = "review") +public class Review { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + private Long userId; + + private Long marketId; + + private Integer stars; + + private String content; + + private LocalDateTime createdAt; +} \ No newline at end of file diff --git a/luke/src/main/java/com/example/umc10th/domain/review/exception/ReviewException.java b/luke/src/main/java/com/example/umc10th/domain/review/exception/ReviewException.java new file mode 100644 index 0000000..e91c51a --- /dev/null +++ b/luke/src/main/java/com/example/umc10th/domain/review/exception/ReviewException.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.review.exception; + +public class ReviewException { +} diff --git a/luke/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewErrorCode.java b/luke/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewErrorCode.java new file mode 100644 index 0000000..0d1fcb3 --- /dev/null +++ b/luke/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewErrorCode.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.review.exception.code; + +public enum ReviewErrorCode { +} diff --git a/luke/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewSuccessCode.java b/luke/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewSuccessCode.java new file mode 100644 index 0000000..fb2f221 --- /dev/null +++ b/luke/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewSuccessCode.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.review.exception.code; + +public enum ReviewSuccessCode { +} diff --git a/luke/src/main/java/com/example/umc10th/domain/review/repository/ReviewRepository.java b/luke/src/main/java/com/example/umc10th/domain/review/repository/ReviewRepository.java new file mode 100644 index 0000000..d754a10 --- /dev/null +++ b/luke/src/main/java/com/example/umc10th/domain/review/repository/ReviewRepository.java @@ -0,0 +1,7 @@ +package com.example.umc10th.domain.review.repository; + +import com.example.umc10th.domain.review.entity.Review; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface ReviewRepository extends JpaRepository { +} diff --git a/luke/src/main/java/com/example/umc10th/domain/review/service/ReviewService.java b/luke/src/main/java/com/example/umc10th/domain/review/service/ReviewService.java new file mode 100644 index 0000000..c60e350 --- /dev/null +++ b/luke/src/main/java/com/example/umc10th/domain/review/service/ReviewService.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.review.service; + +public class ReviewService { +} diff --git a/luke/src/main/java/com/example/umc10th/global/apiPayload/ApiResponse.java b/luke/src/main/java/com/example/umc10th/global/apiPayload/ApiResponse.java new file mode 100644 index 0000000..571fc2f --- /dev/null +++ b/luke/src/main/java/com/example/umc10th/global/apiPayload/ApiResponse.java @@ -0,0 +1,35 @@ +package com.example.umc10th.global.apiPayload; + +import com.example.umc10th.global.apiPayload.code.BaseErrorCode; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +@JsonPropertyOrder({"isSuccess", "code", "message", "result"}) +public class ApiResponse { + + @JsonProperty("isSuccess") + private final boolean isSuccess; + + @JsonProperty("code") + private final String code; + + @JsonProperty("message") + private final String message; + + @JsonProperty("result") + private final T result; + + // 성공한 경우 (result 포함) + public static ApiResponse onSuccess(T result) { + return new ApiResponse<>(true, "COMMON200", "성공입니다.", result); + } + + // 실패한 경우 (result 포함) + public static ApiResponse onFailure(BaseErrorCode code, T result ) { + return new ApiResponse<>(false, code.getCode(), code.getMessage(), result); + } +} diff --git a/luke/src/main/java/com/example/umc10th/global/apiPayload/code/BaseErrorCode.java b/luke/src/main/java/com/example/umc10th/global/apiPayload/code/BaseErrorCode.java new file mode 100644 index 0000000..137c8ac --- /dev/null +++ b/luke/src/main/java/com/example/umc10th/global/apiPayload/code/BaseErrorCode.java @@ -0,0 +1,9 @@ +package com.example.umc10th.global.apiPayload.code; + +import org.springframework.http.HttpStatus; + +public interface BaseErrorCode { + HttpStatus getStatus(); + String getCode(); + String getMessage(); +} diff --git a/luke/src/main/java/com/example/umc10th/global/apiPayload/code/BaseSuccessCode.java b/luke/src/main/java/com/example/umc10th/global/apiPayload/code/BaseSuccessCode.java new file mode 100644 index 0000000..5ebb033 --- /dev/null +++ b/luke/src/main/java/com/example/umc10th/global/apiPayload/code/BaseSuccessCode.java @@ -0,0 +1,10 @@ +package com.example.umc10th.global.apiPayload.code; + +import org.springframework.http.HttpStatus; + +public interface BaseSuccessCode { + + HttpStatus getStatus(); + String getCode(); + String getMessage(); +} diff --git a/luke/src/main/java/com/example/umc10th/global/apiPayload/code/GeneralErrorCode.java b/luke/src/main/java/com/example/umc10th/global/apiPayload/code/GeneralErrorCode.java new file mode 100644 index 0000000..6f77729 --- /dev/null +++ b/luke/src/main/java/com/example/umc10th/global/apiPayload/code/GeneralErrorCode.java @@ -0,0 +1,34 @@ +package com.example.umc10th.global.apiPayload.code; + +import lombok.Getter; +import lombok.RequiredArgsConstructor; +import org.springframework.http.HttpStatus; + +@Getter +@RequiredArgsConstructor +public enum GeneralErrorCode implements BaseErrorCode { + + BAD_REQUEST(HttpStatus.BAD_REQUEST, + "COMMON400_1", + "잘못된 요청입니다."), + UNAUTHORIZED(HttpStatus.UNAUTHORIZED, + "COMMON401_1", + "인증되지 않았습니다."), + FORBIDDEN(HttpStatus.FORBIDDEN, + "COMMON403_1", + "접근이 금지되었습니다."), + NOT_FOUND(HttpStatus.NOT_FOUND, + "Common404_1", + "해당 리소스를 찾을 수 없습니다." + ), + ; + + private final HttpStatus status; + private final String code; + private final String message; + +} + + + + diff --git a/luke/src/main/java/com/example/umc10th/global/apiPayload/code/GeneralSuccessCode.java b/luke/src/main/java/com/example/umc10th/global/apiPayload/code/GeneralSuccessCode.java new file mode 100644 index 0000000..4e0d00f --- /dev/null +++ b/luke/src/main/java/com/example/umc10th/global/apiPayload/code/GeneralSuccessCode.java @@ -0,0 +1,19 @@ +package com.example.umc10th.global.apiPayload.code; + +import lombok.Getter; +import lombok.RequiredArgsConstructor; +import org.springframework.http.HttpStatus; + +@Getter@RequiredArgsConstructor +public enum GeneralSuccessCode implements BaseErrorCode{ + + OK(HttpStatus.OK, + "COMMON200_1", + "성공적으로 요청을 처리했습니다."), + + ; + + private final HttpStatus status; + private final String code; + private final String message; +} diff --git a/luke/src/main/java/com/example/umc10th/global/config/SwaggerConfig.java b/luke/src/main/java/com/example/umc10th/global/config/SwaggerConfig.java new file mode 100644 index 0000000..efda88f --- /dev/null +++ b/luke/src/main/java/com/example/umc10th/global/config/SwaggerConfig.java @@ -0,0 +1,36 @@ +package com.example.umc10th.global.config; + +import io.swagger.v3.oas.models.info.Info; +import io.swagger.v3.oas.models.servers.Server; +import io.swagger.v3.oas.models.Components; +import io.swagger.v3.oas.models.OpenAPI; +import io.swagger.v3.oas.models.security.SecurityRequirement; +import io.swagger.v3.oas.models.security.SecurityScheme; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class SwaggerConfig { + + @Bean + public OpenAPI swagger() { + Info info = new Info().title("UMC10th").description("10기 Swagger").version("0.0.1"); + + // JWT 토큰 헤더 방식 + String securityScheme = "JWT TOKEN"; + SecurityRequirement securityRequirement = new SecurityRequirement().addList(securityScheme); + + Components components = new Components() + .addSecuritySchemes(securityScheme, new SecurityScheme() + .name(securityScheme) + .type(SecurityScheme.Type.HTTP) + .scheme("Bearer") + .bearerFormat("JWT")); + + return new OpenAPI() + .info(info) + .addServersItem(new Server().url("/")) + .addSecurityItem(securityRequirement) + .components(components); + } +} diff --git a/luke/src/test/java/com/example/umc10th/Umc10thApplicationTests.java b/luke/src/test/java/com/example/umc10th/Umc10thApplicationTests.java new file mode 100644 index 0000000..b43a96f --- /dev/null +++ b/luke/src/test/java/com/example/umc10th/Umc10thApplicationTests.java @@ -0,0 +1,13 @@ +package com.example.umc10th; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +class Umc10thApplicationTests { + + @Test + void contextLoads() { + } + +} From b637cedf87f4f9d7cb372f178e745232b68b8c7e Mon Sep 17 00:00:00 2001 From: yujining3827 Date: Thu, 30 Apr 2026 14:37:52 +0900 Subject: [PATCH 15/46] =?UTF-8?q?refactor:=20=EA=B8=B0=EC=A1=B4=20?= =?UTF-8?q?=EB=A3=A8=ED=8A=B8=20src=20=EC=A0=9C=EA=B1=B0=20=EB=B0=8F=20luk?= =?UTF-8?q?e=20=EA=B5=AC=EC=A1=B0=EB=A1=9C=20=EC=9E=AC=EA=B5=AC=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../example/umc10th/Umc10thApplication.java | 13 ------ .../member/controller/MemberController.java | 35 --------------- .../member/converter/MemberConverter.java | 4 -- .../domain/member/dto/MemberReqDTO.java | 22 ---------- .../domain/member/dto/MemberResDTO.java | 18 -------- .../domain/member/entity/FoodCategory.java | 15 ------- .../umc10th/domain/member/entity/Member.java | 13 ------ .../domain/member/entity/Notification.java | 12 ------ .../umc10th/domain/member/entity/Term.java | 12 ------ .../member/entity/mapping/Preference.java | 4 -- .../entity/mapping/UserTermAgreement.java | 4 -- .../umc10th/domain/member/enums/Gender.java | 4 -- .../member/enums/NotifictationType.java | 4 -- .../umc10th/domain/member/enums/UserType.java | 4 -- .../member/exception/MemberExpection.java | 4 -- .../exception/code/MemberErrorCode.java | 4 -- .../exception/code/MemberSuccessCode.java | 4 -- .../member/repository/MemberRepository.java | 7 --- .../domain/member/service/MemberService.java | 4 -- .../mission/controller/MissionController.java | 43 ------------------- .../mission/converter/MissionConverter.java | 4 -- .../domain/mission/dto/MissionReqDTO.java | 9 ---- .../domain/mission/dto/MissionResDTO.java | 25 ----------- .../umc10th/domain/mission/entity/Market.java | 12 ------ .../domain/mission/entity/Mission.java | 12 ------ .../umc10th/domain/mission/entity/Region.java | 12 ------ .../mission/entity/mapping/Particiopate.java | 4 -- .../domain/mission/enums/MissionStatus.java | 4 -- .../mission/enums/ParticipatedStatus.java | 4 -- .../mission/exception/MissionExcepotion.java | 4 -- .../exception/code/MissionErrorCode.java | 4 -- .../exception/code/MissionSuccessCode.java | 4 -- .../mission/repository/MissionRepository.java | 7 --- .../mission/service/MissionService.java | 4 -- .../review/controller/ReviewController.java | 23 ---------- .../review/converter/ReviewConverter.java | 4 -- .../domain/review/dto/ReviewReqDTO.java | 11 ----- .../domain/review/dto/ReviewResDTO.java | 9 ---- .../umc10th/domain/review/entity/Review.java | 23 ---------- .../review/exception/ReviewException.java | 4 -- .../exception/code/ReviewErrorCode.java | 4 -- .../exception/code/ReviewSuccessCode.java | 4 -- .../review/repository/ReviewRepository.java | 7 --- .../domain/review/service/ReviewService.java | 4 -- .../global/apiPayload/ApiResponse.java | 35 --------------- .../global/apiPayload/code/BaseErrorCode.java | 9 ---- .../apiPayload/code/BaseSuccessCode.java | 10 ----- .../apiPayload/code/GeneralErrorCode.java | 34 --------------- .../apiPayload/code/GeneralSuccessCode.java | 19 -------- .../umc10th/global/config/SwaggerConfig.java | 36 ---------------- .../umc10th/Umc10thApplicationTests.java | 13 ------ 51 files changed, 588 deletions(-) delete mode 100644 src/main/java/com/example/umc10th/Umc10thApplication.java delete mode 100644 src/main/java/com/example/umc10th/domain/member/controller/MemberController.java delete mode 100644 src/main/java/com/example/umc10th/domain/member/converter/MemberConverter.java delete mode 100644 src/main/java/com/example/umc10th/domain/member/dto/MemberReqDTO.java delete mode 100644 src/main/java/com/example/umc10th/domain/member/dto/MemberResDTO.java delete mode 100644 src/main/java/com/example/umc10th/domain/member/entity/FoodCategory.java delete mode 100644 src/main/java/com/example/umc10th/domain/member/entity/Member.java delete mode 100644 src/main/java/com/example/umc10th/domain/member/entity/Notification.java delete mode 100644 src/main/java/com/example/umc10th/domain/member/entity/Term.java delete mode 100644 src/main/java/com/example/umc10th/domain/member/entity/mapping/Preference.java delete mode 100644 src/main/java/com/example/umc10th/domain/member/entity/mapping/UserTermAgreement.java delete mode 100644 src/main/java/com/example/umc10th/domain/member/enums/Gender.java delete mode 100644 src/main/java/com/example/umc10th/domain/member/enums/NotifictationType.java delete mode 100644 src/main/java/com/example/umc10th/domain/member/enums/UserType.java delete mode 100644 src/main/java/com/example/umc10th/domain/member/exception/MemberExpection.java delete mode 100644 src/main/java/com/example/umc10th/domain/member/exception/code/MemberErrorCode.java delete mode 100644 src/main/java/com/example/umc10th/domain/member/exception/code/MemberSuccessCode.java delete mode 100644 src/main/java/com/example/umc10th/domain/member/repository/MemberRepository.java delete mode 100644 src/main/java/com/example/umc10th/domain/member/service/MemberService.java delete mode 100644 src/main/java/com/example/umc10th/domain/mission/controller/MissionController.java delete mode 100644 src/main/java/com/example/umc10th/domain/mission/converter/MissionConverter.java delete mode 100644 src/main/java/com/example/umc10th/domain/mission/dto/MissionReqDTO.java delete mode 100644 src/main/java/com/example/umc10th/domain/mission/dto/MissionResDTO.java delete mode 100644 src/main/java/com/example/umc10th/domain/mission/entity/Market.java delete mode 100644 src/main/java/com/example/umc10th/domain/mission/entity/Mission.java delete mode 100644 src/main/java/com/example/umc10th/domain/mission/entity/Region.java delete mode 100644 src/main/java/com/example/umc10th/domain/mission/entity/mapping/Particiopate.java delete mode 100644 src/main/java/com/example/umc10th/domain/mission/enums/MissionStatus.java delete mode 100644 src/main/java/com/example/umc10th/domain/mission/enums/ParticipatedStatus.java delete mode 100644 src/main/java/com/example/umc10th/domain/mission/exception/MissionExcepotion.java delete mode 100644 src/main/java/com/example/umc10th/domain/mission/exception/code/MissionErrorCode.java delete mode 100644 src/main/java/com/example/umc10th/domain/mission/exception/code/MissionSuccessCode.java delete mode 100644 src/main/java/com/example/umc10th/domain/mission/repository/MissionRepository.java delete mode 100644 src/main/java/com/example/umc10th/domain/mission/service/MissionService.java delete mode 100644 src/main/java/com/example/umc10th/domain/review/controller/ReviewController.java delete mode 100644 src/main/java/com/example/umc10th/domain/review/converter/ReviewConverter.java delete mode 100644 src/main/java/com/example/umc10th/domain/review/dto/ReviewReqDTO.java delete mode 100644 src/main/java/com/example/umc10th/domain/review/dto/ReviewResDTO.java delete mode 100644 src/main/java/com/example/umc10th/domain/review/entity/Review.java delete mode 100644 src/main/java/com/example/umc10th/domain/review/exception/ReviewException.java delete mode 100644 src/main/java/com/example/umc10th/domain/review/exception/code/ReviewErrorCode.java delete mode 100644 src/main/java/com/example/umc10th/domain/review/exception/code/ReviewSuccessCode.java delete mode 100644 src/main/java/com/example/umc10th/domain/review/repository/ReviewRepository.java delete mode 100644 src/main/java/com/example/umc10th/domain/review/service/ReviewService.java delete mode 100644 src/main/java/com/example/umc10th/global/apiPayload/ApiResponse.java delete mode 100644 src/main/java/com/example/umc10th/global/apiPayload/code/BaseErrorCode.java delete mode 100644 src/main/java/com/example/umc10th/global/apiPayload/code/BaseSuccessCode.java delete mode 100644 src/main/java/com/example/umc10th/global/apiPayload/code/GeneralErrorCode.java delete mode 100644 src/main/java/com/example/umc10th/global/apiPayload/code/GeneralSuccessCode.java delete mode 100644 src/main/java/com/example/umc10th/global/config/SwaggerConfig.java delete mode 100644 src/test/java/com/example/umc10th/Umc10thApplicationTests.java diff --git a/src/main/java/com/example/umc10th/Umc10thApplication.java b/src/main/java/com/example/umc10th/Umc10thApplication.java deleted file mode 100644 index 9983f43..0000000 --- a/src/main/java/com/example/umc10th/Umc10thApplication.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.example.umc10th; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class Umc10thApplication { - - public static void main(String[] args) { - SpringApplication.run(Umc10thApplication.class, args); - } - -} diff --git a/src/main/java/com/example/umc10th/domain/member/controller/MemberController.java b/src/main/java/com/example/umc10th/domain/member/controller/MemberController.java deleted file mode 100644 index a65d75f..0000000 --- a/src/main/java/com/example/umc10th/domain/member/controller/MemberController.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.example.umc10th.domain.member.controller; - -import com.example.umc10th.domain.member.dto.MemberReqDTO; -import com.example.umc10th.domain.member.dto.MemberResDTO; -import com.example.umc10th.domain.member.service.MemberService; -import com.example.umc10th.global.apiPayload.ApiResponse; -import lombok.RequiredArgsConstructor; -import org.springframework.web.bind.annotation.*; - -import java.lang.reflect.Member; - -@RestController -@RequestMapping("/api") -@RequiredArgsConstructor -public class MemberController { - - @PostMapping("/signup") - public ApiResponse signup( - @RequestBody MemberReqDTO.SignupDTO request - ) { - - MemberResDTO.SignupDTO response = new MemberResDTO.SignupDTO(); - response.userId = 1L; - response.message = "회원가입이 완료되었습니다."; - - return ApiResponse.onSuccess(response); - } - - @GetMapping("/home/my") - public ApiResponse getMyPage() { - - MemberResDTO.MyPageDTO response = new MemberResDTO.MyPageDTO(); - return ApiResponse.onSuccess(response); - } -} diff --git a/src/main/java/com/example/umc10th/domain/member/converter/MemberConverter.java b/src/main/java/com/example/umc10th/domain/member/converter/MemberConverter.java deleted file mode 100644 index 2c6188e..0000000 --- a/src/main/java/com/example/umc10th/domain/member/converter/MemberConverter.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.member.converter; - -public class MemberConverter { -} diff --git a/src/main/java/com/example/umc10th/domain/member/dto/MemberReqDTO.java b/src/main/java/com/example/umc10th/domain/member/dto/MemberReqDTO.java deleted file mode 100644 index 2016f60..0000000 --- a/src/main/java/com/example/umc10th/domain/member/dto/MemberReqDTO.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.example.umc10th.domain.member.dto; - -import com.example.umc10th.domain.member.enums.Gender; -import com.example.umc10th.domain.member.enums.UserType; - -import java.time.LocalDate; - -public class MemberReqDTO { - - public static class SignupDTO { - public String name; - public Gender gender; - public LocalDate birth; - public String addressLine1; - public String addressLine2; - public String email; - public String phoneNumber; - public UserType type; - public Long agreeId; - } - -} diff --git a/src/main/java/com/example/umc10th/domain/member/dto/MemberResDTO.java b/src/main/java/com/example/umc10th/domain/member/dto/MemberResDTO.java deleted file mode 100644 index 08c456e..0000000 --- a/src/main/java/com/example/umc10th/domain/member/dto/MemberResDTO.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.example.umc10th.domain.member.dto; - -public class MemberResDTO { - - public static class SignupDTO { - public Long userId; - public String message; - } - - public static class MyPageDTO { - public String nickname; - public String email; - public String phoneNumber; - public Integer phoneNumberStatus; - public Integer userPoint; - } - -} diff --git a/src/main/java/com/example/umc10th/domain/member/entity/FoodCategory.java b/src/main/java/com/example/umc10th/domain/member/entity/FoodCategory.java deleted file mode 100644 index cc619fb..0000000 --- a/src/main/java/com/example/umc10th/domain/member/entity/FoodCategory.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.example.umc10th.domain.member.entity; - -import jakarta.persistence.Entity; -import jakarta.persistence.GeneratedValue; -import jakarta.persistence.GenerationType; -import jakarta.persistence.Id; - -@Entity -public class FoodCategory { - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long id; - -} diff --git a/src/main/java/com/example/umc10th/domain/member/entity/Member.java b/src/main/java/com/example/umc10th/domain/member/entity/Member.java deleted file mode 100644 index c3b4d77..0000000 --- a/src/main/java/com/example/umc10th/domain/member/entity/Member.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.example.umc10th.domain.member.entity; - -import jakarta.persistence.Entity; -import jakarta.persistence.*; - -@Entity -public class Member { - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long id; - -} diff --git a/src/main/java/com/example/umc10th/domain/member/entity/Notification.java b/src/main/java/com/example/umc10th/domain/member/entity/Notification.java deleted file mode 100644 index cc91398..0000000 --- a/src/main/java/com/example/umc10th/domain/member/entity/Notification.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.example.umc10th.domain.member.entity; - -import jakarta.persistence.Entity; -import jakarta.persistence.*; - -@Entity -public class Notification { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long id; - -} diff --git a/src/main/java/com/example/umc10th/domain/member/entity/Term.java b/src/main/java/com/example/umc10th/domain/member/entity/Term.java deleted file mode 100644 index 3a76c88..0000000 --- a/src/main/java/com/example/umc10th/domain/member/entity/Term.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.example.umc10th.domain.member.entity; - -import jakarta.persistence.Entity; -import jakarta.persistence.*; - -@Entity -public class Term { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long id; - -} diff --git a/src/main/java/com/example/umc10th/domain/member/entity/mapping/Preference.java b/src/main/java/com/example/umc10th/domain/member/entity/mapping/Preference.java deleted file mode 100644 index 07736e4..0000000 --- a/src/main/java/com/example/umc10th/domain/member/entity/mapping/Preference.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.member.entity.mapping; - -public class Preference { -} diff --git a/src/main/java/com/example/umc10th/domain/member/entity/mapping/UserTermAgreement.java b/src/main/java/com/example/umc10th/domain/member/entity/mapping/UserTermAgreement.java deleted file mode 100644 index 94df8e7..0000000 --- a/src/main/java/com/example/umc10th/domain/member/entity/mapping/UserTermAgreement.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.member.entity.mapping; - -public class UserTermAgreement { -} diff --git a/src/main/java/com/example/umc10th/domain/member/enums/Gender.java b/src/main/java/com/example/umc10th/domain/member/enums/Gender.java deleted file mode 100644 index 729751d..0000000 --- a/src/main/java/com/example/umc10th/domain/member/enums/Gender.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.member.enums; - -public enum Gender { -} diff --git a/src/main/java/com/example/umc10th/domain/member/enums/NotifictationType.java b/src/main/java/com/example/umc10th/domain/member/enums/NotifictationType.java deleted file mode 100644 index 3bfa309..0000000 --- a/src/main/java/com/example/umc10th/domain/member/enums/NotifictationType.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.member.enums; - -public enum NotifictationType { -} diff --git a/src/main/java/com/example/umc10th/domain/member/enums/UserType.java b/src/main/java/com/example/umc10th/domain/member/enums/UserType.java deleted file mode 100644 index 9f0d674..0000000 --- a/src/main/java/com/example/umc10th/domain/member/enums/UserType.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.member.enums; - -public enum UserType { -} diff --git a/src/main/java/com/example/umc10th/domain/member/exception/MemberExpection.java b/src/main/java/com/example/umc10th/domain/member/exception/MemberExpection.java deleted file mode 100644 index cfc9d67..0000000 --- a/src/main/java/com/example/umc10th/domain/member/exception/MemberExpection.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.member.exception; - -public class MemberExpection { -} diff --git a/src/main/java/com/example/umc10th/domain/member/exception/code/MemberErrorCode.java b/src/main/java/com/example/umc10th/domain/member/exception/code/MemberErrorCode.java deleted file mode 100644 index 135bd22..0000000 --- a/src/main/java/com/example/umc10th/domain/member/exception/code/MemberErrorCode.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.member.exception.code; - -public enum MemberErrorCode { -} diff --git a/src/main/java/com/example/umc10th/domain/member/exception/code/MemberSuccessCode.java b/src/main/java/com/example/umc10th/domain/member/exception/code/MemberSuccessCode.java deleted file mode 100644 index f42e80f..0000000 --- a/src/main/java/com/example/umc10th/domain/member/exception/code/MemberSuccessCode.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.member.exception.code; - -public enum MemberSuccessCode { -} diff --git a/src/main/java/com/example/umc10th/domain/member/repository/MemberRepository.java b/src/main/java/com/example/umc10th/domain/member/repository/MemberRepository.java deleted file mode 100644 index e878bbb..0000000 --- a/src/main/java/com/example/umc10th/domain/member/repository/MemberRepository.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.example.umc10th.domain.member.repository; - -import com.example.umc10th.domain.member.entity.Member; -import org.springframework.data.jpa.repository.JpaRepository; - -public interface MemberRepository extends JpaRepository { -} \ No newline at end of file diff --git a/src/main/java/com/example/umc10th/domain/member/service/MemberService.java b/src/main/java/com/example/umc10th/domain/member/service/MemberService.java deleted file mode 100644 index 8d867f2..0000000 --- a/src/main/java/com/example/umc10th/domain/member/service/MemberService.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.member.service; - -public class MemberService { -} diff --git a/src/main/java/com/example/umc10th/domain/mission/controller/MissionController.java b/src/main/java/com/example/umc10th/domain/mission/controller/MissionController.java deleted file mode 100644 index 8e0a83a..0000000 --- a/src/main/java/com/example/umc10th/domain/mission/controller/MissionController.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.example.umc10th.domain.mission.controller; - -import com.example.umc10th.domain.mission.dto.MissionReqDTO; -import com.example.umc10th.domain.mission.dto.MissionResDTO; -import com.example.umc10th.global.apiPayload.ApiResponse; -import lombok.RequiredArgsConstructor; -import org.springframework.web.bind.annotation.*; -import java.util.List; - -@RestController -@RequestMapping("/api/mission") -@RequiredArgsConstructor -public class MissionController { - - @GetMapping - public ApiResponse getMissionList( - @RequestParam(name = "regionName", required = false) String regionName, - @RequestParam(name = "status") String status, - @RequestParam(name = "page") Integer page, - @RequestParam(name = "size") Integer size - ) { - - MissionResDTO.MissionListDTO response = new MissionResDTO.MissionListDTO(); - response.content = List.of(); - response.page = page; - response.size = size; - response.hasNext = false; - - return ApiResponse.onSuccess(response); - } - - @PostMapping("/completed") - public ApiResponse completeMission( - @RequestBody MissionReqDTO.CompleteDTO request - ) { - - MissionResDTO.CompleteDTO response = new MissionResDTO.CompleteDTO(); - response.missionId = request.missionId; - response.message = "미션이 정상적으로 완료되었습니다."; - - return ApiResponse.onSuccess(response); - } -} \ No newline at end of file diff --git a/src/main/java/com/example/umc10th/domain/mission/converter/MissionConverter.java b/src/main/java/com/example/umc10th/domain/mission/converter/MissionConverter.java deleted file mode 100644 index 336f76a..0000000 --- a/src/main/java/com/example/umc10th/domain/mission/converter/MissionConverter.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.mission.converter; - -public class MissionConverter { -} diff --git a/src/main/java/com/example/umc10th/domain/mission/dto/MissionReqDTO.java b/src/main/java/com/example/umc10th/domain/mission/dto/MissionReqDTO.java deleted file mode 100644 index e023c24..0000000 --- a/src/main/java/com/example/umc10th/domain/mission/dto/MissionReqDTO.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.example.umc10th.domain.mission.dto; - -public class MissionReqDTO { - - public static class CompleteDTO { - public Long missionId; - } - -} diff --git a/src/main/java/com/example/umc10th/domain/mission/dto/MissionResDTO.java b/src/main/java/com/example/umc10th/domain/mission/dto/MissionResDTO.java deleted file mode 100644 index ea72ca4..0000000 --- a/src/main/java/com/example/umc10th/domain/mission/dto/MissionResDTO.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.example.umc10th.domain.mission.dto; - -import java.util.List; - -public class MissionResDTO { - - public static class MissionListDTO { - public List content; - public Integer page; - public Integer size; - public Boolean hasNext; - } - - public static class MissionDTO { - public Long missionId; - public String marketName; - public Integer point; - public String status; - } - - public static class CompleteDTO { - public Long missionId; - public String message; - } -} diff --git a/src/main/java/com/example/umc10th/domain/mission/entity/Market.java b/src/main/java/com/example/umc10th/domain/mission/entity/Market.java deleted file mode 100644 index e70fc9a..0000000 --- a/src/main/java/com/example/umc10th/domain/mission/entity/Market.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.example.umc10th.domain.mission.entity; - -import jakarta.persistence.Entity; -import jakarta.persistence.*; - -@Entity -public class Market { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long id; - -} diff --git a/src/main/java/com/example/umc10th/domain/mission/entity/Mission.java b/src/main/java/com/example/umc10th/domain/mission/entity/Mission.java deleted file mode 100644 index 17bbc63..0000000 --- a/src/main/java/com/example/umc10th/domain/mission/entity/Mission.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.example.umc10th.domain.mission.entity; - -import jakarta.persistence.Entity; -import jakarta.persistence.*; - -@Entity -public class Mission { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long id; - -} diff --git a/src/main/java/com/example/umc10th/domain/mission/entity/Region.java b/src/main/java/com/example/umc10th/domain/mission/entity/Region.java deleted file mode 100644 index 97b4404..0000000 --- a/src/main/java/com/example/umc10th/domain/mission/entity/Region.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.example.umc10th.domain.mission.entity; - -import jakarta.persistence.Entity; -import jakarta.persistence.*; - -@Entity -public class Region { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long id; - -} diff --git a/src/main/java/com/example/umc10th/domain/mission/entity/mapping/Particiopate.java b/src/main/java/com/example/umc10th/domain/mission/entity/mapping/Particiopate.java deleted file mode 100644 index 821c13b..0000000 --- a/src/main/java/com/example/umc10th/domain/mission/entity/mapping/Particiopate.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.mission.entity.mapping; - -public class Particiopate { -} diff --git a/src/main/java/com/example/umc10th/domain/mission/enums/MissionStatus.java b/src/main/java/com/example/umc10th/domain/mission/enums/MissionStatus.java deleted file mode 100644 index ed7ebba..0000000 --- a/src/main/java/com/example/umc10th/domain/mission/enums/MissionStatus.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.mission.enums; - -public enum MissionStatus { -} diff --git a/src/main/java/com/example/umc10th/domain/mission/enums/ParticipatedStatus.java b/src/main/java/com/example/umc10th/domain/mission/enums/ParticipatedStatus.java deleted file mode 100644 index bf497db..0000000 --- a/src/main/java/com/example/umc10th/domain/mission/enums/ParticipatedStatus.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.mission.enums; - -public enum ParticipatedStatus { -} diff --git a/src/main/java/com/example/umc10th/domain/mission/exception/MissionExcepotion.java b/src/main/java/com/example/umc10th/domain/mission/exception/MissionExcepotion.java deleted file mode 100644 index 499fc5f..0000000 --- a/src/main/java/com/example/umc10th/domain/mission/exception/MissionExcepotion.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.mission.exception; - -public class MissionExcepotion { -} diff --git a/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionErrorCode.java b/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionErrorCode.java deleted file mode 100644 index ee79191..0000000 --- a/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionErrorCode.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.mission.exception.code; - -public enum MissionErrorCode { -} diff --git a/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionSuccessCode.java b/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionSuccessCode.java deleted file mode 100644 index a30e4ea..0000000 --- a/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionSuccessCode.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.mission.exception.code; - -public enum MissionSuccessCode { -} diff --git a/src/main/java/com/example/umc10th/domain/mission/repository/MissionRepository.java b/src/main/java/com/example/umc10th/domain/mission/repository/MissionRepository.java deleted file mode 100644 index 71f7528..0000000 --- a/src/main/java/com/example/umc10th/domain/mission/repository/MissionRepository.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.example.umc10th.domain.mission.repository; - -import com.example.umc10th.domain.mission.entity.Mission; -import org.springframework.data.jpa.repository.JpaRepository; - -public interface MissionRepository extends JpaRepository { -} diff --git a/src/main/java/com/example/umc10th/domain/mission/service/MissionService.java b/src/main/java/com/example/umc10th/domain/mission/service/MissionService.java deleted file mode 100644 index d69ce74..0000000 --- a/src/main/java/com/example/umc10th/domain/mission/service/MissionService.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.mission.service; - -public class MissionService { -} diff --git a/src/main/java/com/example/umc10th/domain/review/controller/ReviewController.java b/src/main/java/com/example/umc10th/domain/review/controller/ReviewController.java deleted file mode 100644 index b236403..0000000 --- a/src/main/java/com/example/umc10th/domain/review/controller/ReviewController.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.example.umc10th.domain.review.controller; - -import com.example.umc10th.domain.review.dto.ReviewReqDTO; -import com.example.umc10th.domain.review.dto.ReviewResDTO; -import com.example.umc10th.global.apiPayload.ApiResponse; -import lombok.RequiredArgsConstructor; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@RequestMapping("/api/review") -@RequiredArgsConstructor -public class ReviewController { - - @PostMapping - public ApiResponse createReview( - @RequestBody ReviewReqDTO.CreateReviewDTO request - ) { - return ApiResponse.onSuccess(null); - } -} \ No newline at end of file diff --git a/src/main/java/com/example/umc10th/domain/review/converter/ReviewConverter.java b/src/main/java/com/example/umc10th/domain/review/converter/ReviewConverter.java deleted file mode 100644 index c2fd181..0000000 --- a/src/main/java/com/example/umc10th/domain/review/converter/ReviewConverter.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.review.converter; - -public class ReviewConverter { -} diff --git a/src/main/java/com/example/umc10th/domain/review/dto/ReviewReqDTO.java b/src/main/java/com/example/umc10th/domain/review/dto/ReviewReqDTO.java deleted file mode 100644 index fba8311..0000000 --- a/src/main/java/com/example/umc10th/domain/review/dto/ReviewReqDTO.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.example.umc10th.domain.review.dto; - -public class ReviewReqDTO { - - public static class CreateReviewDTO { - public Long marketId; - public Long regionId; - public Integer stars; - public String content; - } -} \ No newline at end of file diff --git a/src/main/java/com/example/umc10th/domain/review/dto/ReviewResDTO.java b/src/main/java/com/example/umc10th/domain/review/dto/ReviewResDTO.java deleted file mode 100644 index 2d05bdd..0000000 --- a/src/main/java/com/example/umc10th/domain/review/dto/ReviewResDTO.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.example.umc10th.domain.review.dto; - -public class ReviewResDTO { - - public static class CreateReviewDTO { - public Long reviewId; - public String message; - } -} \ No newline at end of file diff --git a/src/main/java/com/example/umc10th/domain/review/entity/Review.java b/src/main/java/com/example/umc10th/domain/review/entity/Review.java deleted file mode 100644 index 01d803f..0000000 --- a/src/main/java/com/example/umc10th/domain/review/entity/Review.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.example.umc10th.domain.review.entity; - -import jakarta.persistence.*; -import java.time.LocalDateTime; - -@Entity -@Table(name = "review") -public class Review { - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long id; - - private Long userId; - - private Long marketId; - - private Integer stars; - - private String content; - - private LocalDateTime createdAt; -} \ No newline at end of file diff --git a/src/main/java/com/example/umc10th/domain/review/exception/ReviewException.java b/src/main/java/com/example/umc10th/domain/review/exception/ReviewException.java deleted file mode 100644 index e91c51a..0000000 --- a/src/main/java/com/example/umc10th/domain/review/exception/ReviewException.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.review.exception; - -public class ReviewException { -} diff --git a/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewErrorCode.java b/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewErrorCode.java deleted file mode 100644 index 0d1fcb3..0000000 --- a/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewErrorCode.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.review.exception.code; - -public enum ReviewErrorCode { -} diff --git a/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewSuccessCode.java b/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewSuccessCode.java deleted file mode 100644 index fb2f221..0000000 --- a/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewSuccessCode.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.review.exception.code; - -public enum ReviewSuccessCode { -} diff --git a/src/main/java/com/example/umc10th/domain/review/repository/ReviewRepository.java b/src/main/java/com/example/umc10th/domain/review/repository/ReviewRepository.java deleted file mode 100644 index d754a10..0000000 --- a/src/main/java/com/example/umc10th/domain/review/repository/ReviewRepository.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.example.umc10th.domain.review.repository; - -import com.example.umc10th.domain.review.entity.Review; -import org.springframework.data.jpa.repository.JpaRepository; - -public interface ReviewRepository extends JpaRepository { -} diff --git a/src/main/java/com/example/umc10th/domain/review/service/ReviewService.java b/src/main/java/com/example/umc10th/domain/review/service/ReviewService.java deleted file mode 100644 index c60e350..0000000 --- a/src/main/java/com/example/umc10th/domain/review/service/ReviewService.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.review.service; - -public class ReviewService { -} diff --git a/src/main/java/com/example/umc10th/global/apiPayload/ApiResponse.java b/src/main/java/com/example/umc10th/global/apiPayload/ApiResponse.java deleted file mode 100644 index 571fc2f..0000000 --- a/src/main/java/com/example/umc10th/global/apiPayload/ApiResponse.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.example.umc10th.global.apiPayload; - -import com.example.umc10th.global.apiPayload.code.BaseErrorCode; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import lombok.AllArgsConstructor; -import lombok.Getter; - -@Getter -@AllArgsConstructor -@JsonPropertyOrder({"isSuccess", "code", "message", "result"}) -public class ApiResponse { - - @JsonProperty("isSuccess") - private final boolean isSuccess; - - @JsonProperty("code") - private final String code; - - @JsonProperty("message") - private final String message; - - @JsonProperty("result") - private final T result; - - // 성공한 경우 (result 포함) - public static ApiResponse onSuccess(T result) { - return new ApiResponse<>(true, "COMMON200", "성공입니다.", result); - } - - // 실패한 경우 (result 포함) - public static ApiResponse onFailure(BaseErrorCode code, T result ) { - return new ApiResponse<>(false, code.getCode(), code.getMessage(), result); - } -} diff --git a/src/main/java/com/example/umc10th/global/apiPayload/code/BaseErrorCode.java b/src/main/java/com/example/umc10th/global/apiPayload/code/BaseErrorCode.java deleted file mode 100644 index 137c8ac..0000000 --- a/src/main/java/com/example/umc10th/global/apiPayload/code/BaseErrorCode.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.example.umc10th.global.apiPayload.code; - -import org.springframework.http.HttpStatus; - -public interface BaseErrorCode { - HttpStatus getStatus(); - String getCode(); - String getMessage(); -} diff --git a/src/main/java/com/example/umc10th/global/apiPayload/code/BaseSuccessCode.java b/src/main/java/com/example/umc10th/global/apiPayload/code/BaseSuccessCode.java deleted file mode 100644 index 5ebb033..0000000 --- a/src/main/java/com/example/umc10th/global/apiPayload/code/BaseSuccessCode.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.example.umc10th.global.apiPayload.code; - -import org.springframework.http.HttpStatus; - -public interface BaseSuccessCode { - - HttpStatus getStatus(); - String getCode(); - String getMessage(); -} diff --git a/src/main/java/com/example/umc10th/global/apiPayload/code/GeneralErrorCode.java b/src/main/java/com/example/umc10th/global/apiPayload/code/GeneralErrorCode.java deleted file mode 100644 index 6f77729..0000000 --- a/src/main/java/com/example/umc10th/global/apiPayload/code/GeneralErrorCode.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.example.umc10th.global.apiPayload.code; - -import lombok.Getter; -import lombok.RequiredArgsConstructor; -import org.springframework.http.HttpStatus; - -@Getter -@RequiredArgsConstructor -public enum GeneralErrorCode implements BaseErrorCode { - - BAD_REQUEST(HttpStatus.BAD_REQUEST, - "COMMON400_1", - "잘못된 요청입니다."), - UNAUTHORIZED(HttpStatus.UNAUTHORIZED, - "COMMON401_1", - "인증되지 않았습니다."), - FORBIDDEN(HttpStatus.FORBIDDEN, - "COMMON403_1", - "접근이 금지되었습니다."), - NOT_FOUND(HttpStatus.NOT_FOUND, - "Common404_1", - "해당 리소스를 찾을 수 없습니다." - ), - ; - - private final HttpStatus status; - private final String code; - private final String message; - -} - - - - diff --git a/src/main/java/com/example/umc10th/global/apiPayload/code/GeneralSuccessCode.java b/src/main/java/com/example/umc10th/global/apiPayload/code/GeneralSuccessCode.java deleted file mode 100644 index 4e0d00f..0000000 --- a/src/main/java/com/example/umc10th/global/apiPayload/code/GeneralSuccessCode.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.example.umc10th.global.apiPayload.code; - -import lombok.Getter; -import lombok.RequiredArgsConstructor; -import org.springframework.http.HttpStatus; - -@Getter@RequiredArgsConstructor -public enum GeneralSuccessCode implements BaseErrorCode{ - - OK(HttpStatus.OK, - "COMMON200_1", - "성공적으로 요청을 처리했습니다."), - - ; - - private final HttpStatus status; - private final String code; - private final String message; -} diff --git a/src/main/java/com/example/umc10th/global/config/SwaggerConfig.java b/src/main/java/com/example/umc10th/global/config/SwaggerConfig.java deleted file mode 100644 index efda88f..0000000 --- a/src/main/java/com/example/umc10th/global/config/SwaggerConfig.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.example.umc10th.global.config; - -import io.swagger.v3.oas.models.info.Info; -import io.swagger.v3.oas.models.servers.Server; -import io.swagger.v3.oas.models.Components; -import io.swagger.v3.oas.models.OpenAPI; -import io.swagger.v3.oas.models.security.SecurityRequirement; -import io.swagger.v3.oas.models.security.SecurityScheme; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -@Configuration -public class SwaggerConfig { - - @Bean - public OpenAPI swagger() { - Info info = new Info().title("UMC10th").description("10기 Swagger").version("0.0.1"); - - // JWT 토큰 헤더 방식 - String securityScheme = "JWT TOKEN"; - SecurityRequirement securityRequirement = new SecurityRequirement().addList(securityScheme); - - Components components = new Components() - .addSecuritySchemes(securityScheme, new SecurityScheme() - .name(securityScheme) - .type(SecurityScheme.Type.HTTP) - .scheme("Bearer") - .bearerFormat("JWT")); - - return new OpenAPI() - .info(info) - .addServersItem(new Server().url("/")) - .addSecurityItem(securityRequirement) - .components(components); - } -} diff --git a/src/test/java/com/example/umc10th/Umc10thApplicationTests.java b/src/test/java/com/example/umc10th/Umc10thApplicationTests.java deleted file mode 100644 index b43a96f..0000000 --- a/src/test/java/com/example/umc10th/Umc10thApplicationTests.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.example.umc10th; - -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.context.SpringBootTest; - -@SpringBootTest -class Umc10thApplicationTests { - - @Test - void contextLoads() { - } - -} From d02bc7dcee39eb184749864e8106638d517be2db Mon Sep 17 00:00:00 2001 From: yujining3827 Date: Thu, 30 Apr 2026 14:44:20 +0900 Subject: [PATCH 16/46] =?UTF-8?q?refactor:=20=EB=A3=A8=ED=8A=B8=20?= =?UTF-8?q?=EB=B6=88=ED=95=84=EC=9A=94=20=ED=8C=8C=EC=9D=BC=20=EC=A0=9C?= =?UTF-8?q?=EA=B1=B0=20=EB=B0=8F=20luke=20=EB=8B=A8=EC=9D=BC=20=ED=94=84?= =?UTF-8?q?=EB=A1=9C=EC=A0=9D=ED=8A=B8=20=EA=B5=AC=EC=A1=B0=EB=A1=9C=20?= =?UTF-8?q?=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 40 -------- gradlew | 248 ------------------------------------------------ gradlew.bat | 93 ------------------ settings.gradle | 1 - 4 files changed, 382 deletions(-) delete mode 100644 build.gradle delete mode 100755 gradlew delete mode 100644 gradlew.bat delete mode 100644 settings.gradle diff --git a/build.gradle b/build.gradle deleted file mode 100644 index 4c42238..0000000 --- a/build.gradle +++ /dev/null @@ -1,40 +0,0 @@ -plugins { - id 'java' - id 'org.springframework.boot' version '4.0.5' - id 'io.spring.dependency-management' version '1.1.7' -} - -group = 'com.example' -version = '0.0.1-SNAPSHOT' -description = 'umc10th' - -java { - toolchain { - languageVersion = JavaLanguageVersion.of(21) - } -} - -repositories { - mavenCentral() -} - -dependencies { - implementation 'org.springframework.boot:spring-boot-starter-data-jpa' - implementation 'org.springframework.boot:spring-boot-starter-webmvc' - compileOnly 'org.projectlombok:lombok' - runtimeOnly 'com.mysql:mysql-connector-j' - annotationProcessor 'org.projectlombok:lombok' - testImplementation 'org.springframework.boot:spring-boot-starter-data-jpa-test' - testImplementation 'org.springframework.boot:spring-boot-starter-webmvc-test' - testCompileOnly 'org.projectlombok:lombok' - testRuntimeOnly 'org.junit.platform:junit-platform-launcher' - testAnnotationProcessor 'org.projectlombok:lombok' - - // Swagger - implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:3.0.1' - implementation 'org.springdoc:springdoc-openapi-starter-webmvc-api:3.0.1' -} - -tasks.named('test') { - useJUnitPlatform() -} diff --git a/gradlew b/gradlew deleted file mode 100755 index 739907d..0000000 --- a/gradlew +++ /dev/null @@ -1,248 +0,0 @@ -#!/bin/sh - -# -# Copyright © 2015 the original authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# SPDX-License-Identifier: Apache-2.0 -# - -############################################################################## -# -# Gradle start up script for POSIX generated by Gradle. -# -# Important for running: -# -# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is -# noncompliant, but you have some other compliant shell such as ksh or -# bash, then to run this script, type that shell name before the whole -# command line, like: -# -# ksh Gradle -# -# Busybox and similar reduced shells will NOT work, because this script -# requires all of these POSIX shell features: -# * functions; -# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», -# «${var#prefix}», «${var%suffix}», and «$( cmd )»; -# * compound commands having a testable exit status, especially «case»; -# * various built-in commands including «command», «set», and «ulimit». -# -# Important for patching: -# -# (2) This script targets any POSIX shell, so it avoids extensions provided -# by Bash, Ksh, etc; in particular arrays are avoided. -# -# The "traditional" practice of packing multiple parameters into a -# space-separated string is a well documented source of bugs and security -# problems, so this is (mostly) avoided, by progressively accumulating -# options in "$@", and eventually passing that to Java. -# -# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, -# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; -# see the in-line comments for details. -# -# There are tweaks for specific operating systems such as AIX, CygWin, -# Darwin, MinGW, and NonStop. -# -# (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/2d6327017519d23b96af35865dc997fcb544fb40/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt -# within the Gradle project. -# -# You can find Gradle at https://github.com/gradle/gradle/. -# -############################################################################## - -# Attempt to set APP_HOME - -# Resolve links: $0 may be a link -app_path=$0 - -# Need this for daisy-chained symlinks. -while - APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path - [ -h "$app_path" ] -do - ls=$( ls -ld "$app_path" ) - link=${ls#*' -> '} - case $link in #( - /*) app_path=$link ;; #( - *) app_path=$APP_HOME$link ;; - esac -done - -# This is normally unused -# shellcheck disable=SC2034 -APP_BASE_NAME=${0##*/} -# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) -APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit - -# Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD=maximum - -warn () { - echo "$*" -} >&2 - -die () { - echo - echo "$*" - echo - exit 1 -} >&2 - -# OS specific support (must be 'true' or 'false'). -cygwin=false -msys=false -darwin=false -nonstop=false -case "$( uname )" in #( - CYGWIN* ) cygwin=true ;; #( - Darwin* ) darwin=true ;; #( - MSYS* | MINGW* ) msys=true ;; #( - NONSTOP* ) nonstop=true ;; -esac - - - -# Determine the Java command to use to start the JVM. -if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD=$JAVA_HOME/jre/sh/java - else - JAVACMD=$JAVA_HOME/bin/java - fi - if [ ! -x "$JAVACMD" ] ; then - die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -else - JAVACMD=java - if ! command -v java >/dev/null 2>&1 - then - die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -fi - -# Increase the maximum file descriptors if we can. -if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then - case $MAX_FD in #( - max*) - # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC2039,SC3045 - MAX_FD=$( ulimit -H -n ) || - warn "Could not query maximum file descriptor limit" - esac - case $MAX_FD in #( - '' | soft) :;; #( - *) - # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC2039,SC3045 - ulimit -n "$MAX_FD" || - warn "Could not set maximum file descriptor limit to $MAX_FD" - esac -fi - -# Collect all arguments for the java command, stacking in reverse order: -# * args from the command line -# * the main class name -# * -classpath -# * -D...appname settings -# * --module-path (only if needed) -# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. - -# For Cygwin or MSYS, switch paths to Windows format before running java -if "$cygwin" || "$msys" ; then - APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) - - JAVACMD=$( cygpath --unix "$JAVACMD" ) - - # Now convert the arguments - kludge to limit ourselves to /bin/sh - for arg do - if - case $arg in #( - -*) false ;; # don't mess with options #( - /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath - [ -e "$t" ] ;; #( - *) false ;; - esac - then - arg=$( cygpath --path --ignore --mixed "$arg" ) - fi - # Roll the args list around exactly as many times as the number of - # args, so each arg winds up back in the position where it started, but - # possibly modified. - # - # NB: a `for` loop captures its iteration list before it begins, so - # changing the positional parameters here affects neither the number of - # iterations, nor the values presented in `arg`. - shift # remove old arg - set -- "$@" "$arg" # push replacement arg - done -fi - - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' - -# Collect all arguments for the java command: -# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, -# and any embedded shellness will be escaped. -# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be -# treated as '${Hostname}' itself on the command line. - -set -- \ - "-Dorg.gradle.appname=$APP_BASE_NAME" \ - -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ - "$@" - -# Stop when "xargs" is not available. -if ! command -v xargs >/dev/null 2>&1 -then - die "xargs is not available" -fi - -# Use "xargs" to parse quoted args. -# -# With -n1 it outputs one arg per line, with the quotes and backslashes removed. -# -# In Bash we could simply go: -# -# readarray ARGS < <( xargs -n1 <<<"$var" ) && -# set -- "${ARGS[@]}" "$@" -# -# but POSIX shell has neither arrays nor command substitution, so instead we -# post-process each arg (as a line of input to sed) to backslash-escape any -# character that might be a shell metacharacter, then use eval to reverse -# that process (while maintaining the separation between arguments), and wrap -# the whole thing up as a single "set" statement. -# -# This will of course break if any of these variables contains a newline or -# an unmatched quote. -# - -eval "set -- $( - printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | - xargs -n1 | - sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | - tr '\n' ' ' - )" '"$@"' - -exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat deleted file mode 100644 index c4bdd3a..0000000 --- a/gradlew.bat +++ /dev/null @@ -1,93 +0,0 @@ -@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 -@rem SPDX-License-Identifier: Apache-2.0 -@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=. -@rem This is normally unused -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% equ 0 goto execute - -echo. 1>&2 -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 -echo. 1>&2 -echo Please set the JAVA_HOME variable in your environment to match the 1>&2 -echo location of your Java installation. 1>&2 - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto execute - -echo. 1>&2 -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 -echo. 1>&2 -echo Please set the JAVA_HOME variable in your environment to match the 1>&2 -echo location of your Java installation. 1>&2 - -goto fail - -:execute -@rem Setup the command line - - - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* - -:end -@rem End local scope for the variables with windows NT shell -if %ERRORLEVEL% equ 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! -set EXIT_CODE=%ERRORLEVEL% -if %EXIT_CODE% equ 0 set EXIT_CODE=1 -if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% -exit /b %EXIT_CODE% - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega diff --git a/settings.gradle b/settings.gradle deleted file mode 100644 index 67a1b8e..0000000 --- a/settings.gradle +++ /dev/null @@ -1 +0,0 @@ -rootProject.name = 'umc10th' From abda9d54dd106e161ad054c8161bbed6b6dea876 Mon Sep 17 00:00:00 2001 From: yujining3827 Date: Thu, 30 Apr 2026 14:45:09 +0900 Subject: [PATCH 17/46] =?UTF-8?q?refactor:=20=EB=A3=A8=ED=8A=B8=20?= =?UTF-8?q?=EB=B6=88=ED=95=84=EC=9A=94=20=ED=8C=8C=EC=9D=BC=20=EC=A0=9C?= =?UTF-8?q?=EA=B1=B0=20=EB=B0=8F=20luke=20=EB=8B=A8=EC=9D=BC=20=ED=94=84?= =?UTF-8?q?=EB=A1=9C=EC=A0=9D=ED=8A=B8=20=EA=B5=AC=EC=A1=B0=EB=A1=9C=20?= =?UTF-8?q?=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitattributes | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 .gitattributes diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 8af972c..0000000 --- a/.gitattributes +++ /dev/null @@ -1,3 +0,0 @@ -/gradlew text eol=lf -*.bat text eol=crlf -*.jar binary From 4deb9041f46edb57f707fe01ab98af660f0dae02 Mon Sep 17 00:00:00 2001 From: yujining3827 Date: Thu, 30 Apr 2026 14:51:32 +0900 Subject: [PATCH 18/46] =?UTF-8?q?refactor:=20=EB=A3=A8=ED=8A=B8=20?= =?UTF-8?q?=EB=B6=88=ED=95=84=EC=9A=94=20=ED=8C=8C=EC=9D=BC=20=EC=A0=9C?= =?UTF-8?q?=EA=B1=B0=20=EB=B0=8F=20luke=20=EB=8B=A8=EC=9D=BC=20=ED=94=84?= =?UTF-8?q?=EB=A1=9C=EC=A0=9D=ED=8A=B8=20=EA=B5=AC=EC=A1=B0=EB=A1=9C=20?= =?UTF-8?q?=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gradle/wrapper/gradle-wrapper.jar | Bin 48966 -> 0 bytes gradle/wrapper/gradle-wrapper.properties | 7 ------- 2 files changed, 7 deletions(-) delete mode 100644 gradle/wrapper/gradle-wrapper.jar delete mode 100644 gradle/wrapper/gradle-wrapper.properties diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar deleted file mode 100644 index d997cfc60f4cff0e7451d19d49a82fa986695d07..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48966 zcma&NW0WmQwk%w>ZQHhO+qUi6W!pA(xoVef+k2O7+pkXd9rt^$@9p#T8Y9=Q^(R-x zjL3*NQ$ZRS1O)&B0s;U4fbe_$e;)(@NB~(;6+v1_IWc+}NnuerWl>cXPyoQcezKvZ z?Yzc@<~LK@Yhh-7jwvSDadFw~t7KfJ%AUfU*p0wc+3m9#p=Zo4`H`aA_wBL6 z9Q`7!;Ok~8YhZ^Vt#N97bt5aZ#mQc8r~hs3;R?H6V4(!oxSADTK|DR2PL6SQ3v6jM<>eLMh9 zAsd(APyxHNFK|G4hA_zi+YV?J+3K_*DIrdla>calRjaE)4(?YnX+AMqEM!Y|ED{^2 zI5gZ%nG-1qAVtl==8o0&F1N+aPj`Oo99RfDNP#ZHw}}UKV)zw6yy%~8Se#sKr;3?g zJGOkV2luy~HgMlEJB+L<_$@9sUXM7@bI)>-K!}JQUCUwuMdq@68q*dV+{L#Vc?r<( z?Wf1HbqxnI6=(Aw!Vv*Z1H_SoPtQTiy^bDVD8L=rRZ`IoIh@}a`!hY>VN&316I#k} z1Sg~_3ApcIFaoZ+d}>rz0Z8DL*zGq%zU1vF1z1D^YDnQrG3^QourmO6;_SrGg3?qWd9R1GMnKV>0++L*NTt>aF2*kcZ;WaudfBhTaqikS(+iNzDggUqvhh?g ziJCF8kA+V@7zi30n=b(3>X0X^lcCCKT(CI)fz-wfOA1P()V)1OciPu4b_B5ORPq&l zchP6l3u9{2on%uTwo>b-v0sIrRwPOzG;Wcq8mstd&?Pgb9rRqF#Yol1d|Q6 z7O20!+zXL(B%tC}@3QOs&T8B=I*k{!Y74nv#{M<0_g4BCf1)-f)6~`;(P-= zPqqH2%j0LDX2k5|_)zavpD{L1BW?<+s$>F&1VNb3T+gu!Dgd{W+na9(yV`M7UaCBuJZg1Y)y6{U}0=LTvxBDApz@r>dGt(m^v|jy&aLA zdsOeJcquuj3G^NkH)g)z@gTzgpr!zpE$0>$aT^{((&VA>+(nQB!M(NnPvEP}ZRz+6 zE!=UW!r7sbX3>{1{XW1?hSDNsur6cNeYxE{$bFwZzZ597{pDqjr%ag85sIns_Xz%= zqY{h#z8J6GA~vfLQ2-jWWcloE5LA62jta=C*1KxAL}jugoPqj4el4R4g3zC4nE#2-NeS{c3#!2tIS|1h8*|kpw2VSH9OcIQZx0Yh!8~P&p}fI$4Bj9Z zr5Yv?i-PfO#<}clM>mO(D0wHniZZdv8pOuJFW z+-u}BH84PQCgT~VWBM88vtCly1y$uEGJ<7vnW%!2yV>l>dxA0X0q{cN6y3u$8R-*f z-4^OlZ1HmxCv`dFW%quP<7xzAbtiFxvY0M1&2ng&A}QXAVR=prc_5m(D+_?hv#$M^ zG#MQ#fHMc!+S%HgU^Qv7Z9eu6eNqpSr3e8(;No*YfovbJ;60LjCzv9O~^>gFKO>t zGZg9`a5;$hksp*fHp{7&RE@DM&Pa@a>Kwk%*F7UGO|}^Z0ho1U$THOgX9jtCW6N$v zLOm}xcMBtw)CC(;LLX!R9jp|UsBWGfs@HaMiosA3#hFee7(4vLY}IrhD++}>pY zo+=_h+uJ;j^CP*OGQ9$0q+%}UB`4`5c766d#)*Czs<91wxw)jI^IdvyjT%<8OqI=i zNn0OUqW#POg^4ma)e2b?*Xv;dri*N0SJ7_{&0>;S!)!YV1TQuiT1C3ZFDvThe}yTCmErx#6yyQ4X@OAbHhdEV!K2%;7J>tiUZF)>Z|eRVDwtDC~=J z*M8|WEgzsyNH@-5lJE+P6HrurgY!PqtWk z^69SOHZ*}xn|j2FDVg`qRT}ob*1XiGo=x8MDEX)duljcVO}oJjuAbB$Z+f&!{z3k< zO6+{@O#2^s4qT`6k}Nw?DKV1DU~}0jVA)(kNz$c-p`*FNG#Gb&o?ko70F||R^y*hD z6HD|hJzF)G&^K=vuN$@b2fIfHVFw@hC_-0hPnB!1{=Nn~ran4VeTMM(Xx2A3h95U} z&J#Kw4>*V(LHOA<3Dy{sbW-9k5M2<%yDw~ce0+aez8 z04skG8@QEESIL;m-@Mf_hY!)KkEUowHu(>)Inz(pM`@pkxz z1_K#Qs6$E^c$7w=JLy>nSY)>aY;x2z`LW-$$rnY0!suTZSG)^0ZMeT#$0_oER zfZ1Hf>#TP|;J^rzn3V^2)Dy!goj6roAho>c=?28yjzQ>N-yU)XduKq8Lb3+ZA|#-{ z?34)Ml8%)3F1}oF;q9XFxoM}Zn{~2>kr%X_=WMen%b>n))hx6kHWNoKUBAz?($h(m(l;U*Gq7;p5J{B;kfO^C%C9HhtW!=O3-h>$U zI2=uaEymeK^h#QuB8a?1Qr0Gn;ZZ@;otg2l>gf= z$_mO!iis+#(8-GZw`ZiCnt}>qKmghHCb)`6U!8qS*DhBANfGj|U2C->7>*Bqe5h<% zF+9uy>$;#cZB>?Wdz3mqi2Y>+6-#!Dd56@$WF{_^P2?6kNNfaw!r74>MZUNkFAt*H zvS@2hNmT%xnXp}_1gixv9!5#YI3ftgFXG20Vt1IQ(~+HmryrZI+r0(y2Scl+y=G^* zxt$Vvn&S=Vul-rgOlYNio7%ST_3!t`_`N@SCv$ppCqok(Q+i_?OL}2@TU$dr6B$c8 zQ$Z(lS6fp%7f}ymQwJAIdpkN~8$)O3|K7Z;{FD?hBSP-#pJgq0C_SFT;^sBc#da0M z;^UuXXq{!hEwQpp(o9+)jPM6ru1P$u0evVO(NJ;%0FgmMNlJ+BJ zf^`a|U*ab?uN*Ue>tHJ$Pl~chCwRnxi3%X06NxwlIAKa*KReLL^y1B^nuy|^SPj3} z5X|?1divh3@zci;648jb2qEOm!_8Tjh3gi;H%2`d`~Q(IL{Wcl1C18+&P>tU&0!nO z&+7mpvr2SsTj=@sX zxG=;T^f7Rg=c=V*u8X(fo)4;RYax^+=quviOJ{>r6{wgf)g){I&qe`=HL}6J>i6Ne zSZ*h9f&JG>Y`@Bg5Pb&>4&UqFp9I<8o`n4W_V=4AugM`RqUeS-!`OyNLyKMqa_Ct| zON-hyk#-}{lZZx>B1F@dF^8S>x|C*QAjKqn&Ej9H#z@Q#KA*ckBX@^;gIP&?aK15l z*EY@kG57oUcm(d{NyXg6$Kj#xR5XdZ1EBCT+Zy!gyXwN&b_zI&$$>7R#{ zh8U@H8NY-cA*CBfH$OCs^priPwtwrzFjDO}DBn#mgbI~hn}cp2U{yv@S)iy|jR9+E zgd(hF|1cyC#te0P;iFGqpNBqc(k<{p^1>wHE_c8Tr4|&NV4mzpzFe;Cr)C~qpVNjl z^u(^s5=kj{QBae)Y*#^A39jT4`!NuIUQzD#DOyfa!R=PrX6oS@x@kJV)Cn$!xTK9A&VI#F-Slt8I4|=$bcjaC5h=9E{51g8X5q1Qfg~~G>qAgy*7h4-WuqE zlIEx?Hu*%99?$6TheLAD4NIMO=Q@*;gaXDl6yLLXfFX0*1-9KQm42c%WX*AXFo$it z?FwnWn2tBHY&Qj6=PV?ergU$VKzu+`(5pCRqX}IoSFo?P!`sff%u1?N+(KsoL+K={ zi*JGl%_jiuB;&YW+n%1o^%5@!HB9}OlIdQZ*XzQ%vu!8p2gnKW+!X>@oC{gp3lNx^ z82|5Jdg9-B<1j|y(@3J;$D-lqdnf0Q6T~q7;#O}EMPV3k(bi$DpZwj9(UhU%_l&nN zR}8tN_NhDMhs)gtG*76~+W2yQ{!kDTE@X4gft2?W;S$BLp9X z;sh2jpm!mkfPX>Vuqxyt76<@f4fyY%&iuDfS1@#PHgzHqG;=X^`X}t2|Alr^lx^ja z1rhvG(PH(a0THitc?4hk=P*#IS;-`fjOKqJ4kgo@dAD@ob*))H)=)6s3cthp&4Q55 z4dQRdG0EveK*(ZUCFcCjILgS#$@%y=8leYxN-%zQaky@H?kjhyBrLYA!cv>kV5;i1 zZ^w&U7s&K8fNr4Pfy9GyTK2Tiay4Y_PsPWoWW5YA8nfUkoyjU)i@nKj@4rY13sxO6 z_NzYdG=Vr<@08Xi#8rnX&^d{Bl`oHXO6Y3!v2U~ZV>I*30X3X&4@zqqVO~RyF)6?a zD(<+33_9TqeHL)#Y?($m4_zZvaJXWXppZ4?wo?$wF)%M6rEVk2gM=l9k+=*Q+((fI zIUBH6)}M?ahSxD4lgmJ30ygk#4d!O@?%WNEONommx`ZK81ZV)mJpKB`PgQ}F>NGdV zkV|>^}oWQd6@Ay7$&)6!% zOu_p~TZ3A#G_UqiJ85&*$!(+!V*+*{&-JXb53gtc9n3>8)T$jUVXe+M6n$m633Mi? zlh5{_+6iZ<%gMWMrtHyDl(u-hMl^DViUDc50UD;0g_l$F`Hb(F=o+?94B0fjb;|?Q5c~TWX>t8i1RP@>Ccgm z?2=z0coeb?uvn44moKFb^+(#pAdHE7{EW(DxJE=@Z0^Am`dpm98e`*S+-~*zmhdQ7 zCNig0!yUu5U#>KKocrg-xMjQoNzQ`th0f{!0`ammp_KMFh?_zF4#YhF35bPE&Fq~_ z#VnniU6fso{!3Z^1C57q?0i!ok(a zL;-f$YlDk%qi%n637_$=Gw=bBY}8#meS~+#X}Oz~ZKd%q(UE>f%!qca?(u}) z!tLTuQadlAN;a#^A?!@V=T?oeJ1f7yRy)H1zn_+wARewYIYr`zD=^v+D|ObvH4rOB zT@duqF>$Dk6&i|pZh?%Wq-7_kyP4l)-nqBz#G0lqo3J2D%zmbU)>3)5e?sTZy8|~B zPC7!`eD+deR?L6$6 z-e{!ihef=f<4HPZ9rSt&yb=5Q)BFAXWPR^~a&Zru?8146wvlm;<)ugbd|!}O6aE0t z6`#KqcH#S#*yz-K90+!Fhv+ zKH+?!_0yl|gWXSaASLcB9a8g7i%qz*vbO)YW`Q@Nxpp*6TZ*OO8Z|5-UWihd@CUXF zY!aTAZ$c^?4hiaq34=s2il}#Pxu=#c2^=(PbHNAyUqy__kR+n?twKrQe^8l6rk=orf}Mk80viC1NZ^1q zeF~g*iGp0=jKncK%s@#jZcn6=EiR<8S#)yiEOuwbG;SV$4lB^R?7sxOf8)oq$sT)) zA&nBCFJxsnci+)owdCHV#cjP2|1j22xIRsxHrLLBk3GI|OppUv3%r>#;J|26!W>xC z9gq@NQWJ`|gH}F{-QG#R6xlT<;=43amaDT>VaG*;GfPZJ&W*rO8WAQQc^JGw-fz-| zzAe&RAnC(gAP#FoJtt~ynR3Z<)m_<9Oo)XW}CWd50^eI4!1p4}s(zLhBIDi5r zr{UH>YIz2!+&Cy(RI(;ja_>SUC2Q`ohWPlI+sK-6IU}*nIsT)vLnuVPFM%~gdel}S zUlY%>H$?-rQRGTdUM^p^FEkqnwC{^BGl|gM)h9zkXplL90;yOcgt(8&LJwOj!5Qgy zu$@^*k%9JoAzwj@iSB^SNu#YVl@&*g$uYxxsJBvIQ>bfuS97JccQcS7&a z)`1m2^@5c9pD`P$VqH*O*fxkvFRtH-@Pd0@3y2!jW>i=jabBCJ+bW@wwUkWjwx_WR zHH5*XR4hbQ1`D@4@unmyEX)!?^~_}~JQNvP4jO&F)CH9srkFhf8h*=P z;X1&vs_&v03#BGc`|#@!ZONxVj9Ssb#_d63jxA6dX_RBt(s;ig3#s(YU3P3klF;mc z%%@^IJUAlGE=cnsTH+(qb1SxN@HzfAjYcUCb(VU)JV^3ZC;#k!t?XjaC!|68eLE zU_hlvOSNj7Qlr{x)y$S$l^2DPCMA=pzapcSkjfk*r!iWU%T{?<3#Hw6s1ux1^Ao6o zR@5DIfo-|c9AaFw848Y!BVG-+vURe;I29F#hLu$9o}oSa9&2sgG#;lj@@)9|2Z3 zon?%NV&AYSVnd~eW~v0yoF$X^1FR@i2kin0mFLG8-aA>hYK;B%TJ~7%P4?_{Bu<0t zvmI)Uk-MRncVb)A890>OqnYf=wu-J5A~^%4jpK~*xp)=h0BZB4*5uWrP>iRV+|kMX zv+BEskY~(P-K)-!JSHR`$brY)HFI|L@YyrxheT3cgHu}KtF%s%k3B`X)E_lA=E>M4 z2VV3M{c0*)`qZAsJ==)F#D~2Ndzm@hKhSBL_Sf3{ctckh-rB`gkfC?Dp6FdM?p;vv z#UlQMp3H5*)8o#Ys@-aj7O#brUfgQ7BjG`7 ztoE7v-tH2%KVC$xKYf%uvZD!_uf3x>h?8r!zYHkcc7$Gdn(6cDmYL&p3pCfaSfY4$ zG|yuujr6!Wl0}V%* zQ;nY##kEdvo8YY=SVDb)M>^Ub9e#4c$O&urD$uaRtxm-UH=6_s0m^^5y^_+F^Q?;8 z+Fd?+De}er^2EmFNn&e8SyS*`*`e;KFIG&+x5iWCsrEyH*0SFBCMx?`m5~hl1BrT> zr8W3*3}Fwsx@%UOuxNoCSoL%AM{Uj|v@>l{pYYI&D$j`&**;?X`cuOOk~?;U{~xvDUjaiH^d`A+gQL#Z?*lm)x_n6R-S% zf6*=Q1m>mq5|Niefl8s=5F={ncn5S;6~&Ns2)yGZ@wt&u4c+)Sk?hdfI^b77@K-=y zM_k=j5hp&u`2nkJK+2Lw`uLypr4dO?Bm3BTZdtWnQa5unCoTKIiG81t4bG`epBU5| zG{toT`)LE}&j{P+AFj`YZrjF-^>k+`zCM`QcQz^Ba4BEte@S}j=Q_Opx14jq|DB}& zNB44BOJ`?GJM({v`gh9pzbg8-%Un=E@uLfJwGkagLEM^!`ct3s5@-xqq*xd+2C@eu z*1ge`retZK)=bPO<`>@62cLN?^S%v#EsiPQF`cg&I7{}l?)}O$!^wNJp4Zd;1yBbQ zv@_7x7d6aXJvGHkNNcOg?A};m_Nq7H=(+zqf9)e3&yP^EU63Ew!NW4CYj_!=OTVb* z-ijSrv0M)u=MF=@+`3ldT-hzOn$Ng><)WL0vqQ&jH>W7EmLLQY+c?%i9~f_x&{OYX z{?kyyNZ&gT*m$(%-OeDAJeC^c)X!k${D*c;c}9)0_7iWMbfu)!j3+{*!Dj|?C`sGz z2xWha)#`9@p*{-X2MN2a;%FM-WqB2h)GTqQH$ZsGD#Wi`;+$i?fk;23fLpYI^3TT3 z5+Zn3cu-_2Ck*@%3^L3}JpVN`5ZJ;gmKn>gm(Z)b%!v|RYf(qrmGL#0$WHQFw4mJqQ85w=$tn^7(z|eJ$3R0} z2k9^EU<^-$ygq!ZR+7wT0KViK8qkAO7xs*e@1dq{=M3haulHwA0~BYNytr7k2K*(W z755P9a^;Hdl2X;K{c}yWr|QH?PEuh6x)9n{^3m2QUfC_Q*BW&<9#^ZVwOolx@6y9- z-YF=S;mEypj68yxNxfJ56x%ES`z-5$M${V1HX(@#R>%$X`67*Ab8vC6UzvoDOY*P= zFbPXany0%>rqH1gi7d>e`=PWZTG>^=#PQf&iJjJ0&2dO(4b8) zCl%8xJg1mg4__!?t|y_roExn~%u@Eu|p9YFb`8_qP@v#KW#kFs4eVetJ+Q+s|Y0?#D z@?dt_BA7C4tGpjOB~*LFu0!5oU(_xj7xA$meN)Z;q4Z_Rb7jY1rJBzJPr0V=(y99F zh=V-NbK+64rd#ltw~7X-%kP$R896DxRuj)p7Zj@8&>IlP&}ME3s9eV2R>SpUnSxeg zmpm?HQJ^u1T;pvwvlc4F_)>3P~jlTch4+u6;o{@PtpnJcn~p0v_6Po%*KkTXV#2AGc) zv)jvvC?l#s$yvyy=>=7D3pkmV24xhd7<5}f_u5!8gmOU|4555dv`I=rLWW!W!Uxg| zFGXpH3~)9!C2|Y6oB~$gz(;$CTnw&R&psa+E!KNgrE1+WkLM6SOf$>sGW+Y{>u?Fw zTc!xG{pa3c#y@d$d0e7a9~e_xjGcaw5f6Fk>lg$Jm}cFd%BO_YT(9s+_Q;ft%1*k$ z_cXkf&QHkaQr9U?*Gr$r6|bCV>2S)Cedfk3rO?JbyabY zgqxm#BM7Sg6s-`5%(p@SxBJzR6w`O6`+Kuo36wwBzwf6K{0HENVz^^w|E$r zdZM%T0oy8OK|>>2vSzw5rqoqEroCZ%(^OmOSFN84B2-8Z?R1)Pn9|5Xkui(fQRl^zA35EH^(JbuQd@Uh z2FJ6C(5FDD(++_NLOG)1H<+X~pt68d@JiB8iUQSZ+?qc;Jr+aJ8bKF3z`K&zSl&C7 zEgl&!h?sc=}K7 ziEC(3IrY?h7|d= zVjh{@BGW^AaNcdRceoiKmQI+F$ITdcM$YigXtH)6<-7d@5DyyWw}s!`72j`A{QC~e ze-u0a6A;QSPT$vqf3f(kO1j^%GYap*vfWQ@X=n{lR9%HX^R~t+HoeaT5%L7XSTNn` zCzo})tF@DMZ$|t6$KTx+WQqu~PXPa9FL&shBGx3C>FlGz}7gjfv}(NKvjR#r5PL$a1>%asaylWA8^g!KJ=$}_UccHmi zAZd5c{I&Ywpi3a1#27C6TC~zm3y8D>_1an8XHGNgL?uT$p+a<5AdWLR6w9jdhUt9U zz?)93=1p$x;Qiq!CYbX&S}+IITWLkfu%T6X5(pk9-fs8lh9z8h?9+>GlFeFcs*Z>u zJSaL!2?L8LbOu_Ye!=4~ZKL?643lcsNn8>qUT|q&Rv+(z>Z9=tyG&5}zZK&Q?S!nG zR;Ui^<406=jLYA>zl!a-OXH#J-pP4A`=)r%9HV5m1qGZ1m*t^wi>3$JRcH)3Q(LQz z(3}~y3=QsUu!PN$$N~#yBP@=aJ+Bkp_hx8^x1Ou6+(Kk9l1CXr4p~IQvq@AUePuAj zcq5>YDr(JTmrAuLwn6sgohTR-vc^y^#I{grF7 zg}8?&5!^$|{X`C;YrZ7?rKH#`=n0zck(q37+5%U;Hmds2w+dLmm9|@`HqQ<5CUEz{I1eNIL?X~rd{f71y z>_<94#1G+j`d5|fKK@>QDK6|HRR|9UZvO6HdB1afJvuwUf8bw>_Fha)Ii8I}Gqw}p zdS~e^K4j{d%y+A#OBa1C4i0)sM=}tjd8fZ9#uY}{#G7rJp{t6?*5*A^KKhim06i{}OJ%eA@M~zIfA`h_gJ_o%w;FaFQMnVkBT|_ z(`m9r+11~EPh9f7>S=$F7|ibj=4Pt>WVzk6NfGRvI_aG66RHig-(S%WKRLP%_h0He``xT))N^RI@6!ADl=*vsqVb|7 zr~Lwl6qn|u!%is<{YA`Mde2Z${@EAHC^t>4`X;F9za=RC{{$4OcGmw%9+{$i@!cCn z;7w~r8HY->M@3OzYh+L7Z2Lc8AcP*FZbl6VVN*_sp}K zQP|=g@aFthq}*?|+Gm4@wbs_?Fx-HD2%)_UDJ);X88~7ch~d0cJ!<7;mv>iv!RS$a z;(-cYTW=K=|F0gIg3EW0%u2CSr(Kx}yLoki|KSIt$#P(O!=UjBGRzb3L3-?NGr7!! z^VC7_Q(GhT;C*(bLivfhlRDVdz7=h%ABuLA2g$qy)A}U@Kj_L-Jd|--fy#-*ESRo| zgu?*?jGEgs9y>1`t}|^Ucd1I=1N=mOo{8Ph zwZS(F%G?nfI{#%sGayNItK9J5P)Qk+^4$ZoXZJ0G1}hwcckJ0g-QJ<)3%`bF8}(ahYIjKFYMtg3X;e7J18ZvDkV@N=nxvDl zo?}lXoT3pZY;4$QKI`~GFuQKv;G6b<8;o89Hd2yu+|%sU(9C=h8ibwZ zARqZ#lk@kp4*#URe-YmpRc&=-b&QP>5b{9{(tH*)(@ZPKfOslBgwCPx6d*{XMX|Q{y0F!5a^ScCE;h8bQmTJR3*}A>aGcDF0?tU)Tnml z#DgruwAva-fiU3s*POY_ZHiJyW%v+733X`&ocwHz$uqJCOhrM;#u*V2eK$D5HiN(` zII{BEg(PV6#_Nv3rZBUyd+TI!>L72KW_Oml6L=pNv#aOl( zgpYxAH^@2aJQu3urlrCeanwSpHHD_Cxb+=cm49{ZU5Z@;{^{okEJ6&fpDD31w~$`% zcz@_REsC~Vq>3YF7yJ41ZEPBW&%|OwlnfG|QNpiX;fGR0f^3?PEf|-33P&LFGe`8^ zaX3M+*h+?6;s|=$j*d|S-r6PSHnmLqm9oshPNpGzlxV21cFrxcQLidd2%h>n%Mc4{ z|JWBvtbb;(-nhWpPO95hR>(e(H$n%*pCh0k4xE#I%xu=#B)zXSaH+azwCI;0@bY<*-10-Qyaq%5NxSlq_@YJUUwy z*d;qPjW^cuKxdXiOWwP}5FN6SZW~NqB%4?|WifPNZr&XNVkzF0n#Y)pbaEodqNO4F z2Bq#^Gr^Ji3!T9`_!D;a1lW$?!LQ-iYV_A{FQ~^C-Jp`_5uOC)6+mzBr4Nl3fHly% zcXeU3x-?#J`=p$6c~$T~V^!C0Bk_3#WYrtoFCx9_5quCQ*4*?XG0n_9%l_!n`M85^ z7}~Clj~ocls6)V&sWGs?B<`{Ob>vnbXZwdda%ipwbzOJ(V`W>KBF5zdCTE8;mc&xU z^clCzd0(T#8*(})tSYSNP1N{FnNVAU^M1S_pq4VEQ*#5nv`CoYSALMEB zf6egyuRMzK2?r^M0hCD*sU;On6c0^Vh|#tRG*n1p5R)QyVw%Va37nMSV%9&uq^hp| zCHeu}y{m=NsA=naDy;q`fd9t)I$Qd-A1Il$#0KyDc>X)hKJViqNB{HnQyf5D(ZJ*J z{-oGB-%Q|QZ%Pqu34>fCy)Asi}IY7luNR9ebgH4DAjCVvSWfa%PE16 zkC7EIuEK}?IR!jgP%eX%dcxk4%N!zIjW4wYMfIq@s%GetDs^g!^p}DH46EP`Nh_wD z4Rwc4ezh1U$Mc)Fe6ii6eD^*iB2MFp-B-HhGTR0tC2?bq$#^J!v1r+Z0y+& znVub*k=*^0yP(c#mEvX}@Abx%&}!W(1olcWEHAVgskbBrzx(f2v&}4~WkVN?af#yi z4IE-(_^)?4e3(d{F@0<~NV5|e0eaB!?(g%l&Hq$UqzC_Enuest?CL+IrSD`tv8|{C z=79vnL=P6ne+}6X1&cd$kam=jCcv`~^y#R{doTh?6D?H)^M7-P+=D@?H;bt$*V+)K z?+?Ex3Z@8JE3c4eHDYItB^tSot;@2p_fuZ8mW^i^a(L;Xn6K+1GuG0n$v(38;+<78 zC?eMzbQCW2%&;U>j}b>YEH5>RkP44$QlG6k(KwXtq{e#13wnx5Jh=uH?lQIl8%Qxr zq%pDC)mYYKa?N>%aF%YwA}CzV@IOV9&a81d9eiU-6F&lGvz68~%{&4LuwV_5{#km3(tf`fejjs%`{Y`|0p!6|-U z8XQA9Sl=*kM|(2KA!LWOCY3Qq4sZ7r&}__rR*Sj(9W8R1_RxI&4TI+_7RSJF&-363 zJvczH?1(`Jb+RDJL9$Whnj8qJRI+Mz9=Qjvubb=Lz8nWVXG{Te;$%s9-D#$)-!{~w zIM(vkr#OM>2F7W$$Lq%fEYl%e|Tsc>9rB9c8 zQoi4nXomx3&sBI9AwaHkoOp%SMDf2@T#73Bi?|!r!Q?wc(^b_u4ranezYx~=aRV-a zD|_WPK^iJh&=)~h{t<>_$VMXsee;{r-|`#H|1?DZgWvuc*!&C2*(yv(4G5s{8ZRzt zZMC~5gjiU@6fPGMN%X~pL};Q`|IfPfs0m9;RV}xSxjb)*gmvGO1`CQb~W1M1{KwXBLyPz0JQG=JkVX zlPq&zNZS59gf-?*5Z0IFitTX4T$1Oo#_~V%4q2vI?Y@UkSHh}H9xZ1va}^oBrCY{+ z3wwj*FHCsS2}GdSG7W(|k+MWu9h1Qs6cft~RH)n*!;)5HmPX1DqrJ3-Cs%i4q^{$N zC&skM7#8f{&S!9Eq-WqyY$u?uTgrSDt#NU%{3bQZtUSkUof4`Z1P8aLOKJ+^dKh%n zfEfQ zO|P*J>;{=`9@D)qpnt`#NH>}sir*&oFC+W!HR)ecHcPwjF-|)}8+tR#@A+~CLl+Ab zCqp+=Cuc(&VGC1ZYg4CxIXYL>33p^wjIWJSh6R=oq)jD52q3~KVGt=w_z(arS!gx^ zSd|?!rzDu1$>0o0Y0+!iZU=ew^Hr+cq(I(C>9}^sBc++0+S#I;js@_NLD9>MH(tN3 zE5F+J_bYdPfYm5%7-e=lm?!-xlvX~nDkBqu!Zf0ra65JD&@tYDW+c@P3W-YyWe4^6 zhW?FUJ;c{^?b`N)03>!@#JI)r2&!6An27q?*^wyUx3T4uyeIl4*(4CV5OTK#RSnYt zq<+RKCdrYIJtdmNC-NtfH)K&pytbM^Mi6JWjkzJo0TdX>HOjJaIQmQ?Q;l2)8oN@d zVyT=%y@TihQaJX7#B2wY#_ufuaF55-sWO{OwUx$2zRyW$YM(CFBs4Y;YmBk(4u&u- zEf@rIR~4#}IMeq$?T%z3s3RAR7m%M?8No;a=1HXKP?ia#uwy!`4v0GFSjZiMii@ib z#xRmA-v~CSVl8z9cEWVEk;9_BKPS6Y2|bk#PAb|}gPxHs-dt*k`5tU#FZL)FLodY8 zmb!m`DagEJ#q1VKwO~%zmw7;LESf5u!KJNm829pbY_w$P2}16`Bb?0uoL3~V71;_U z`B~wKOB7Bp!Vn!M@o?RHydmah!dHPaT`&idV83kQPxA>E=~YgJC<)rdM1#B$JIgnq z0V{p|Cm3eeMaO58Wrv^9-kAOJ+*HR!;;A9z&>78VsYmF9$U^*ZE=K%d7=MZ~G?~Hz zSHlKWK!Us^%?uE6`E|_XI+nC354jkbUPvedHbh(DkKGkquYf}=-EEB1g>RC{O9ORL371y8V*CR5EW z@lmFq%MWEBdeHR7%(Rpf!Yg52vX%D7#@*^M`fy7Srb z^Ta9wcwf$89uL61@qeg2vc&TAGKSLV>YKI3#5lfs#q5Zm`~Ogef!!CoWWyiA=J;js z%X_n!njeF2MZgaVoMh@S@8%lR)AsYyzmqkj+C8ghxI4G6O7ovK$udULO!2$(|__`2~6JjuoERet}kenJ%I0pU_O@tU*Fsd4gm&hV?p%Y{!;r}{S^Fv z_4EJbVjFv7>+dE9{rBS@8&_vbx9>4!8&g4JV^e2mSwlNR^Z&ujriy)b3jzqfYb35o z!;J+c>%LY+?P!IticwSrP;x2|k>j3Sxg2X%E2%57

`Lem|V$A>eR0uN8Y&sdjtu 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

1bvi{DS7E@q1{$_8->K{_OWv2 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 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties deleted file mode 100644 index c61a118..0000000 --- a/gradle/wrapper/gradle-wrapper.properties +++ /dev/null @@ -1,7 +0,0 @@ -distributionBase=GRADLE_USER_HOME -distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.1-bin.zip -networkTimeout=10000 -validateDistributionUrl=true -zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists From f4e894e56985f59515e93b75710482404f91796c Mon Sep 17 00:00:00 2001 From: yujining3827 Date: Thu, 30 Apr 2026 14:53:38 +0900 Subject: [PATCH 19/46] =?UTF-8?q?refactor:=20=EB=A3=A8=ED=8A=B8=20?= =?UTF-8?q?=EB=B6=88=ED=95=84=EC=9A=94=20=ED=8C=8C=EC=9D=BC=20=EC=A0=9C?= =?UTF-8?q?=EA=B1=B0=20=EB=B0=8F=20luke=20=EB=8B=A8=EC=9D=BC=20=ED=94=84?= =?UTF-8?q?=EB=A1=9C=EC=A0=9D=ED=8A=B8=20=EA=B5=AC=EC=A1=B0=EB=A1=9C=20?= =?UTF-8?q?=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 41 ----------------------------------------- 1 file changed, 41 deletions(-) delete mode 100644 .gitignore diff --git a/.gitignore b/.gitignore deleted file mode 100644 index af0a9b5..0000000 --- a/.gitignore +++ /dev/null @@ -1,41 +0,0 @@ -HELP.md -.gradle -build/ -!luke/gradle/wrapper/gradle-wrapper.jar -!**/src/main/**/build/ -!**/src/test/**/build/ - -### 민감한 정보 ### -.env -application.yml - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache -bin/ -!**/src/main/**/bin/ -!**/src/test/**/bin/ - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr -out/ -!**/src/main/**/out/ -!**/src/test/**/out/ - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ - -### VS Code ### -.vscode/ From 276f811c8821bf3f8c088e44225300fda4382cf7 Mon Sep 17 00:00:00 2001 From: yujining3827 Date: Mon, 4 May 2026 14:34:10 +0900 Subject: [PATCH 20/46] =?UTF-8?q?fix=20:=20isSuccess=20Boolean=EC=9C=BC?= =?UTF-8?q?=EB=A1=9C=20=ED=83=80=EC=9E=85=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../global/apiPayload/ApiResponse.java | 2 +- .../example/umc10th/Umc10thApplication.java | 13 ++++++ .../member/controller/MemberController.java | 35 +++++++++++++++ .../member/converter/MemberConverter.java | 4 ++ .../domain/member/dto/MemberReqDTO.java | 22 ++++++++++ .../domain/member/dto/MemberResDTO.java | 18 ++++++++ .../domain/member/entity/FoodCategory.java | 15 +++++++ .../umc10th/domain/member/entity/Member.java | 13 ++++++ .../domain/member/entity/Notification.java | 12 ++++++ .../umc10th/domain/member/entity/Term.java | 12 ++++++ .../member/entity/mapping/Preference.java | 4 ++ .../entity/mapping/UserTermAgreement.java | 4 ++ .../umc10th/domain/member/enums/Gender.java | 4 ++ .../member/enums/NotifictationType.java | 4 ++ .../umc10th/domain/member/enums/UserType.java | 4 ++ .../member/exception/MemberExpection.java | 4 ++ .../exception/code/MemberErrorCode.java | 4 ++ .../exception/code/MemberSuccessCode.java | 4 ++ .../member/repository/MemberRepository.java | 7 +++ .../domain/member/service/MemberService.java | 4 ++ .../mission/controller/MissionController.java | 43 +++++++++++++++++++ .../mission/converter/MissionConverter.java | 4 ++ .../domain/mission/dto/MissionReqDTO.java | 9 ++++ .../domain/mission/dto/MissionResDTO.java | 25 +++++++++++ .../umc10th/domain/mission/entity/Market.java | 12 ++++++ .../domain/mission/entity/Mission.java | 12 ++++++ .../umc10th/domain/mission/entity/Region.java | 12 ++++++ .../mission/entity/mapping/Particiopate.java | 4 ++ .../domain/mission/enums/MissionStatus.java | 4 ++ .../mission/enums/ParticipatedStatus.java | 4 ++ .../mission/exception/MissionExcepotion.java | 4 ++ .../exception/code/MissionErrorCode.java | 4 ++ .../exception/code/MissionSuccessCode.java | 4 ++ .../mission/repository/MissionRepository.java | 7 +++ .../mission/service/MissionService.java | 4 ++ .../review/controller/ReviewController.java | 23 ++++++++++ .../review/converter/ReviewConverter.java | 4 ++ .../domain/review/dto/ReviewReqDTO.java | 11 +++++ .../domain/review/dto/ReviewResDTO.java | 9 ++++ .../umc10th/domain/review/entity/Review.java | 23 ++++++++++ .../review/exception/ReviewException.java | 4 ++ .../exception/code/ReviewErrorCode.java | 4 ++ .../exception/code/ReviewSuccessCode.java | 4 ++ .../review/repository/ReviewRepository.java | 7 +++ .../domain/review/service/ReviewService.java | 4 ++ .../global/apiPayload/ApiResponse.java | 35 +++++++++++++++ .../global/apiPayload/code/BaseErrorCode.java | 9 ++++ .../apiPayload/code/BaseSuccessCode.java | 10 +++++ .../apiPayload/code/GeneralErrorCode.java | 34 +++++++++++++++ .../apiPayload/code/GeneralSuccessCode.java | 19 ++++++++ .../umc10th/global/config/SwaggerConfig.java | 36 ++++++++++++++++ .../umc10th/Umc10thApplicationTests.java | 13 ++++++ 52 files changed, 589 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/example/umc10th/Umc10thApplication.java create mode 100644 src/main/java/com/example/umc10th/domain/member/controller/MemberController.java create mode 100644 src/main/java/com/example/umc10th/domain/member/converter/MemberConverter.java create mode 100644 src/main/java/com/example/umc10th/domain/member/dto/MemberReqDTO.java create mode 100644 src/main/java/com/example/umc10th/domain/member/dto/MemberResDTO.java create mode 100644 src/main/java/com/example/umc10th/domain/member/entity/FoodCategory.java create mode 100644 src/main/java/com/example/umc10th/domain/member/entity/Member.java create mode 100644 src/main/java/com/example/umc10th/domain/member/entity/Notification.java create mode 100644 src/main/java/com/example/umc10th/domain/member/entity/Term.java create mode 100644 src/main/java/com/example/umc10th/domain/member/entity/mapping/Preference.java create mode 100644 src/main/java/com/example/umc10th/domain/member/entity/mapping/UserTermAgreement.java create mode 100644 src/main/java/com/example/umc10th/domain/member/enums/Gender.java create mode 100644 src/main/java/com/example/umc10th/domain/member/enums/NotifictationType.java create mode 100644 src/main/java/com/example/umc10th/domain/member/enums/UserType.java create mode 100644 src/main/java/com/example/umc10th/domain/member/exception/MemberExpection.java create mode 100644 src/main/java/com/example/umc10th/domain/member/exception/code/MemberErrorCode.java create mode 100644 src/main/java/com/example/umc10th/domain/member/exception/code/MemberSuccessCode.java create mode 100644 src/main/java/com/example/umc10th/domain/member/repository/MemberRepository.java create mode 100644 src/main/java/com/example/umc10th/domain/member/service/MemberService.java create mode 100644 src/main/java/com/example/umc10th/domain/mission/controller/MissionController.java create mode 100644 src/main/java/com/example/umc10th/domain/mission/converter/MissionConverter.java create mode 100644 src/main/java/com/example/umc10th/domain/mission/dto/MissionReqDTO.java create mode 100644 src/main/java/com/example/umc10th/domain/mission/dto/MissionResDTO.java create mode 100644 src/main/java/com/example/umc10th/domain/mission/entity/Market.java create mode 100644 src/main/java/com/example/umc10th/domain/mission/entity/Mission.java create mode 100644 src/main/java/com/example/umc10th/domain/mission/entity/Region.java create mode 100644 src/main/java/com/example/umc10th/domain/mission/entity/mapping/Particiopate.java create mode 100644 src/main/java/com/example/umc10th/domain/mission/enums/MissionStatus.java create mode 100644 src/main/java/com/example/umc10th/domain/mission/enums/ParticipatedStatus.java create mode 100644 src/main/java/com/example/umc10th/domain/mission/exception/MissionExcepotion.java create mode 100644 src/main/java/com/example/umc10th/domain/mission/exception/code/MissionErrorCode.java create mode 100644 src/main/java/com/example/umc10th/domain/mission/exception/code/MissionSuccessCode.java create mode 100644 src/main/java/com/example/umc10th/domain/mission/repository/MissionRepository.java create mode 100644 src/main/java/com/example/umc10th/domain/mission/service/MissionService.java create mode 100644 src/main/java/com/example/umc10th/domain/review/controller/ReviewController.java create mode 100644 src/main/java/com/example/umc10th/domain/review/converter/ReviewConverter.java create mode 100644 src/main/java/com/example/umc10th/domain/review/dto/ReviewReqDTO.java create mode 100644 src/main/java/com/example/umc10th/domain/review/dto/ReviewResDTO.java create mode 100644 src/main/java/com/example/umc10th/domain/review/entity/Review.java create mode 100644 src/main/java/com/example/umc10th/domain/review/exception/ReviewException.java create mode 100644 src/main/java/com/example/umc10th/domain/review/exception/code/ReviewErrorCode.java create mode 100644 src/main/java/com/example/umc10th/domain/review/exception/code/ReviewSuccessCode.java create mode 100644 src/main/java/com/example/umc10th/domain/review/repository/ReviewRepository.java create mode 100644 src/main/java/com/example/umc10th/domain/review/service/ReviewService.java create mode 100644 src/main/java/com/example/umc10th/global/apiPayload/ApiResponse.java create mode 100644 src/main/java/com/example/umc10th/global/apiPayload/code/BaseErrorCode.java create mode 100644 src/main/java/com/example/umc10th/global/apiPayload/code/BaseSuccessCode.java create mode 100644 src/main/java/com/example/umc10th/global/apiPayload/code/GeneralErrorCode.java create mode 100644 src/main/java/com/example/umc10th/global/apiPayload/code/GeneralSuccessCode.java create mode 100644 src/main/java/com/example/umc10th/global/config/SwaggerConfig.java create mode 100644 src/test/java/com/example/umc10th/Umc10thApplicationTests.java diff --git a/luke/src/main/java/com/example/umc10th/global/apiPayload/ApiResponse.java b/luke/src/main/java/com/example/umc10th/global/apiPayload/ApiResponse.java index 571fc2f..f34ca31 100644 --- a/luke/src/main/java/com/example/umc10th/global/apiPayload/ApiResponse.java +++ b/luke/src/main/java/com/example/umc10th/global/apiPayload/ApiResponse.java @@ -12,7 +12,7 @@ public class ApiResponse { @JsonProperty("isSuccess") - private final boolean isSuccess; + private final Boolean isSuccess; @JsonProperty("code") private final String code; diff --git a/src/main/java/com/example/umc10th/Umc10thApplication.java b/src/main/java/com/example/umc10th/Umc10thApplication.java new file mode 100644 index 0000000..9983f43 --- /dev/null +++ b/src/main/java/com/example/umc10th/Umc10thApplication.java @@ -0,0 +1,13 @@ +package com.example.umc10th; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class Umc10thApplication { + + public static void main(String[] args) { + SpringApplication.run(Umc10thApplication.class, args); + } + +} diff --git a/src/main/java/com/example/umc10th/domain/member/controller/MemberController.java b/src/main/java/com/example/umc10th/domain/member/controller/MemberController.java new file mode 100644 index 0000000..a65d75f --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/member/controller/MemberController.java @@ -0,0 +1,35 @@ +package com.example.umc10th.domain.member.controller; + +import com.example.umc10th.domain.member.dto.MemberReqDTO; +import com.example.umc10th.domain.member.dto.MemberResDTO; +import com.example.umc10th.domain.member.service.MemberService; +import com.example.umc10th.global.apiPayload.ApiResponse; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import java.lang.reflect.Member; + +@RestController +@RequestMapping("/api") +@RequiredArgsConstructor +public class MemberController { + + @PostMapping("/signup") + public ApiResponse signup( + @RequestBody MemberReqDTO.SignupDTO request + ) { + + MemberResDTO.SignupDTO response = new MemberResDTO.SignupDTO(); + response.userId = 1L; + response.message = "회원가입이 완료되었습니다."; + + return ApiResponse.onSuccess(response); + } + + @GetMapping("/home/my") + public ApiResponse getMyPage() { + + MemberResDTO.MyPageDTO response = new MemberResDTO.MyPageDTO(); + return ApiResponse.onSuccess(response); + } +} diff --git a/src/main/java/com/example/umc10th/domain/member/converter/MemberConverter.java b/src/main/java/com/example/umc10th/domain/member/converter/MemberConverter.java new file mode 100644 index 0000000..2c6188e --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/member/converter/MemberConverter.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.member.converter; + +public class MemberConverter { +} diff --git a/src/main/java/com/example/umc10th/domain/member/dto/MemberReqDTO.java b/src/main/java/com/example/umc10th/domain/member/dto/MemberReqDTO.java new file mode 100644 index 0000000..2016f60 --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/member/dto/MemberReqDTO.java @@ -0,0 +1,22 @@ +package com.example.umc10th.domain.member.dto; + +import com.example.umc10th.domain.member.enums.Gender; +import com.example.umc10th.domain.member.enums.UserType; + +import java.time.LocalDate; + +public class MemberReqDTO { + + public static class SignupDTO { + public String name; + public Gender gender; + public LocalDate birth; + public String addressLine1; + public String addressLine2; + public String email; + public String phoneNumber; + public UserType type; + public Long agreeId; + } + +} diff --git a/src/main/java/com/example/umc10th/domain/member/dto/MemberResDTO.java b/src/main/java/com/example/umc10th/domain/member/dto/MemberResDTO.java new file mode 100644 index 0000000..08c456e --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/member/dto/MemberResDTO.java @@ -0,0 +1,18 @@ +package com.example.umc10th.domain.member.dto; + +public class MemberResDTO { + + public static class SignupDTO { + public Long userId; + public String message; + } + + public static class MyPageDTO { + public String nickname; + public String email; + public String phoneNumber; + public Integer phoneNumberStatus; + public Integer userPoint; + } + +} diff --git a/src/main/java/com/example/umc10th/domain/member/entity/FoodCategory.java b/src/main/java/com/example/umc10th/domain/member/entity/FoodCategory.java new file mode 100644 index 0000000..cc619fb --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/member/entity/FoodCategory.java @@ -0,0 +1,15 @@ +package com.example.umc10th.domain.member.entity; + +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; + +@Entity +public class FoodCategory { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + +} diff --git a/src/main/java/com/example/umc10th/domain/member/entity/Member.java b/src/main/java/com/example/umc10th/domain/member/entity/Member.java new file mode 100644 index 0000000..c3b4d77 --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/member/entity/Member.java @@ -0,0 +1,13 @@ +package com.example.umc10th.domain.member.entity; + +import jakarta.persistence.Entity; +import jakarta.persistence.*; + +@Entity +public class Member { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + +} diff --git a/src/main/java/com/example/umc10th/domain/member/entity/Notification.java b/src/main/java/com/example/umc10th/domain/member/entity/Notification.java new file mode 100644 index 0000000..cc91398 --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/member/entity/Notification.java @@ -0,0 +1,12 @@ +package com.example.umc10th.domain.member.entity; + +import jakarta.persistence.Entity; +import jakarta.persistence.*; + +@Entity +public class Notification { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + +} diff --git a/src/main/java/com/example/umc10th/domain/member/entity/Term.java b/src/main/java/com/example/umc10th/domain/member/entity/Term.java new file mode 100644 index 0000000..3a76c88 --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/member/entity/Term.java @@ -0,0 +1,12 @@ +package com.example.umc10th.domain.member.entity; + +import jakarta.persistence.Entity; +import jakarta.persistence.*; + +@Entity +public class Term { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + +} diff --git a/src/main/java/com/example/umc10th/domain/member/entity/mapping/Preference.java b/src/main/java/com/example/umc10th/domain/member/entity/mapping/Preference.java new file mode 100644 index 0000000..07736e4 --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/member/entity/mapping/Preference.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.member.entity.mapping; + +public class Preference { +} diff --git a/src/main/java/com/example/umc10th/domain/member/entity/mapping/UserTermAgreement.java b/src/main/java/com/example/umc10th/domain/member/entity/mapping/UserTermAgreement.java new file mode 100644 index 0000000..94df8e7 --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/member/entity/mapping/UserTermAgreement.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.member.entity.mapping; + +public class UserTermAgreement { +} diff --git a/src/main/java/com/example/umc10th/domain/member/enums/Gender.java b/src/main/java/com/example/umc10th/domain/member/enums/Gender.java new file mode 100644 index 0000000..729751d --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/member/enums/Gender.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.member.enums; + +public enum Gender { +} diff --git a/src/main/java/com/example/umc10th/domain/member/enums/NotifictationType.java b/src/main/java/com/example/umc10th/domain/member/enums/NotifictationType.java new file mode 100644 index 0000000..3bfa309 --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/member/enums/NotifictationType.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.member.enums; + +public enum NotifictationType { +} diff --git a/src/main/java/com/example/umc10th/domain/member/enums/UserType.java b/src/main/java/com/example/umc10th/domain/member/enums/UserType.java new file mode 100644 index 0000000..9f0d674 --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/member/enums/UserType.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.member.enums; + +public enum UserType { +} diff --git a/src/main/java/com/example/umc10th/domain/member/exception/MemberExpection.java b/src/main/java/com/example/umc10th/domain/member/exception/MemberExpection.java new file mode 100644 index 0000000..cfc9d67 --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/member/exception/MemberExpection.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.member.exception; + +public class MemberExpection { +} diff --git a/src/main/java/com/example/umc10th/domain/member/exception/code/MemberErrorCode.java b/src/main/java/com/example/umc10th/domain/member/exception/code/MemberErrorCode.java new file mode 100644 index 0000000..135bd22 --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/member/exception/code/MemberErrorCode.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.member.exception.code; + +public enum MemberErrorCode { +} diff --git a/src/main/java/com/example/umc10th/domain/member/exception/code/MemberSuccessCode.java b/src/main/java/com/example/umc10th/domain/member/exception/code/MemberSuccessCode.java new file mode 100644 index 0000000..f42e80f --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/member/exception/code/MemberSuccessCode.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.member.exception.code; + +public enum MemberSuccessCode { +} diff --git a/src/main/java/com/example/umc10th/domain/member/repository/MemberRepository.java b/src/main/java/com/example/umc10th/domain/member/repository/MemberRepository.java new file mode 100644 index 0000000..e878bbb --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/member/repository/MemberRepository.java @@ -0,0 +1,7 @@ +package com.example.umc10th.domain.member.repository; + +import com.example.umc10th.domain.member.entity.Member; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface MemberRepository extends JpaRepository { +} \ No newline at end of file diff --git a/src/main/java/com/example/umc10th/domain/member/service/MemberService.java b/src/main/java/com/example/umc10th/domain/member/service/MemberService.java new file mode 100644 index 0000000..8d867f2 --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/member/service/MemberService.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.member.service; + +public class MemberService { +} diff --git a/src/main/java/com/example/umc10th/domain/mission/controller/MissionController.java b/src/main/java/com/example/umc10th/domain/mission/controller/MissionController.java new file mode 100644 index 0000000..8e0a83a --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/mission/controller/MissionController.java @@ -0,0 +1,43 @@ +package com.example.umc10th.domain.mission.controller; + +import com.example.umc10th.domain.mission.dto.MissionReqDTO; +import com.example.umc10th.domain.mission.dto.MissionResDTO; +import com.example.umc10th.global.apiPayload.ApiResponse; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; +import java.util.List; + +@RestController +@RequestMapping("/api/mission") +@RequiredArgsConstructor +public class MissionController { + + @GetMapping + public ApiResponse getMissionList( + @RequestParam(name = "regionName", required = false) String regionName, + @RequestParam(name = "status") String status, + @RequestParam(name = "page") Integer page, + @RequestParam(name = "size") Integer size + ) { + + MissionResDTO.MissionListDTO response = new MissionResDTO.MissionListDTO(); + response.content = List.of(); + response.page = page; + response.size = size; + response.hasNext = false; + + return ApiResponse.onSuccess(response); + } + + @PostMapping("/completed") + public ApiResponse completeMission( + @RequestBody MissionReqDTO.CompleteDTO request + ) { + + MissionResDTO.CompleteDTO response = new MissionResDTO.CompleteDTO(); + response.missionId = request.missionId; + response.message = "미션이 정상적으로 완료되었습니다."; + + return ApiResponse.onSuccess(response); + } +} \ No newline at end of file diff --git a/src/main/java/com/example/umc10th/domain/mission/converter/MissionConverter.java b/src/main/java/com/example/umc10th/domain/mission/converter/MissionConverter.java new file mode 100644 index 0000000..336f76a --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/mission/converter/MissionConverter.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.mission.converter; + +public class MissionConverter { +} diff --git a/src/main/java/com/example/umc10th/domain/mission/dto/MissionReqDTO.java b/src/main/java/com/example/umc10th/domain/mission/dto/MissionReqDTO.java new file mode 100644 index 0000000..e023c24 --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/mission/dto/MissionReqDTO.java @@ -0,0 +1,9 @@ +package com.example.umc10th.domain.mission.dto; + +public class MissionReqDTO { + + public static class CompleteDTO { + public Long missionId; + } + +} diff --git a/src/main/java/com/example/umc10th/domain/mission/dto/MissionResDTO.java b/src/main/java/com/example/umc10th/domain/mission/dto/MissionResDTO.java new file mode 100644 index 0000000..ea72ca4 --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/mission/dto/MissionResDTO.java @@ -0,0 +1,25 @@ +package com.example.umc10th.domain.mission.dto; + +import java.util.List; + +public class MissionResDTO { + + public static class MissionListDTO { + public List content; + public Integer page; + public Integer size; + public Boolean hasNext; + } + + public static class MissionDTO { + public Long missionId; + public String marketName; + public Integer point; + public String status; + } + + public static class CompleteDTO { + public Long missionId; + public String message; + } +} diff --git a/src/main/java/com/example/umc10th/domain/mission/entity/Market.java b/src/main/java/com/example/umc10th/domain/mission/entity/Market.java new file mode 100644 index 0000000..e70fc9a --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/mission/entity/Market.java @@ -0,0 +1,12 @@ +package com.example.umc10th.domain.mission.entity; + +import jakarta.persistence.Entity; +import jakarta.persistence.*; + +@Entity +public class Market { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + +} diff --git a/src/main/java/com/example/umc10th/domain/mission/entity/Mission.java b/src/main/java/com/example/umc10th/domain/mission/entity/Mission.java new file mode 100644 index 0000000..17bbc63 --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/mission/entity/Mission.java @@ -0,0 +1,12 @@ +package com.example.umc10th.domain.mission.entity; + +import jakarta.persistence.Entity; +import jakarta.persistence.*; + +@Entity +public class Mission { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + +} diff --git a/src/main/java/com/example/umc10th/domain/mission/entity/Region.java b/src/main/java/com/example/umc10th/domain/mission/entity/Region.java new file mode 100644 index 0000000..97b4404 --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/mission/entity/Region.java @@ -0,0 +1,12 @@ +package com.example.umc10th.domain.mission.entity; + +import jakarta.persistence.Entity; +import jakarta.persistence.*; + +@Entity +public class Region { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + +} diff --git a/src/main/java/com/example/umc10th/domain/mission/entity/mapping/Particiopate.java b/src/main/java/com/example/umc10th/domain/mission/entity/mapping/Particiopate.java new file mode 100644 index 0000000..821c13b --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/mission/entity/mapping/Particiopate.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.mission.entity.mapping; + +public class Particiopate { +} diff --git a/src/main/java/com/example/umc10th/domain/mission/enums/MissionStatus.java b/src/main/java/com/example/umc10th/domain/mission/enums/MissionStatus.java new file mode 100644 index 0000000..ed7ebba --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/mission/enums/MissionStatus.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.mission.enums; + +public enum MissionStatus { +} diff --git a/src/main/java/com/example/umc10th/domain/mission/enums/ParticipatedStatus.java b/src/main/java/com/example/umc10th/domain/mission/enums/ParticipatedStatus.java new file mode 100644 index 0000000..bf497db --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/mission/enums/ParticipatedStatus.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.mission.enums; + +public enum ParticipatedStatus { +} diff --git a/src/main/java/com/example/umc10th/domain/mission/exception/MissionExcepotion.java b/src/main/java/com/example/umc10th/domain/mission/exception/MissionExcepotion.java new file mode 100644 index 0000000..499fc5f --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/mission/exception/MissionExcepotion.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.mission.exception; + +public class MissionExcepotion { +} diff --git a/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionErrorCode.java b/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionErrorCode.java new file mode 100644 index 0000000..ee79191 --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionErrorCode.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.mission.exception.code; + +public enum MissionErrorCode { +} diff --git a/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionSuccessCode.java b/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionSuccessCode.java new file mode 100644 index 0000000..a30e4ea --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionSuccessCode.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.mission.exception.code; + +public enum MissionSuccessCode { +} diff --git a/src/main/java/com/example/umc10th/domain/mission/repository/MissionRepository.java b/src/main/java/com/example/umc10th/domain/mission/repository/MissionRepository.java new file mode 100644 index 0000000..71f7528 --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/mission/repository/MissionRepository.java @@ -0,0 +1,7 @@ +package com.example.umc10th.domain.mission.repository; + +import com.example.umc10th.domain.mission.entity.Mission; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface MissionRepository extends JpaRepository { +} diff --git a/src/main/java/com/example/umc10th/domain/mission/service/MissionService.java b/src/main/java/com/example/umc10th/domain/mission/service/MissionService.java new file mode 100644 index 0000000..d69ce74 --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/mission/service/MissionService.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.mission.service; + +public class MissionService { +} diff --git a/src/main/java/com/example/umc10th/domain/review/controller/ReviewController.java b/src/main/java/com/example/umc10th/domain/review/controller/ReviewController.java new file mode 100644 index 0000000..b236403 --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/review/controller/ReviewController.java @@ -0,0 +1,23 @@ +package com.example.umc10th.domain.review.controller; + +import com.example.umc10th.domain.review.dto.ReviewReqDTO; +import com.example.umc10th.domain.review.dto.ReviewResDTO; +import com.example.umc10th.global.apiPayload.ApiResponse; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/api/review") +@RequiredArgsConstructor +public class ReviewController { + + @PostMapping + public ApiResponse createReview( + @RequestBody ReviewReqDTO.CreateReviewDTO request + ) { + return ApiResponse.onSuccess(null); + } +} \ No newline at end of file diff --git a/src/main/java/com/example/umc10th/domain/review/converter/ReviewConverter.java b/src/main/java/com/example/umc10th/domain/review/converter/ReviewConverter.java new file mode 100644 index 0000000..c2fd181 --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/review/converter/ReviewConverter.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.review.converter; + +public class ReviewConverter { +} diff --git a/src/main/java/com/example/umc10th/domain/review/dto/ReviewReqDTO.java b/src/main/java/com/example/umc10th/domain/review/dto/ReviewReqDTO.java new file mode 100644 index 0000000..fba8311 --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/review/dto/ReviewReqDTO.java @@ -0,0 +1,11 @@ +package com.example.umc10th.domain.review.dto; + +public class ReviewReqDTO { + + public static class CreateReviewDTO { + public Long marketId; + public Long regionId; + public Integer stars; + public String content; + } +} \ No newline at end of file diff --git a/src/main/java/com/example/umc10th/domain/review/dto/ReviewResDTO.java b/src/main/java/com/example/umc10th/domain/review/dto/ReviewResDTO.java new file mode 100644 index 0000000..2d05bdd --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/review/dto/ReviewResDTO.java @@ -0,0 +1,9 @@ +package com.example.umc10th.domain.review.dto; + +public class ReviewResDTO { + + public static class CreateReviewDTO { + public Long reviewId; + public String message; + } +} \ No newline at end of file diff --git a/src/main/java/com/example/umc10th/domain/review/entity/Review.java b/src/main/java/com/example/umc10th/domain/review/entity/Review.java new file mode 100644 index 0000000..01d803f --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/review/entity/Review.java @@ -0,0 +1,23 @@ +package com.example.umc10th.domain.review.entity; + +import jakarta.persistence.*; +import java.time.LocalDateTime; + +@Entity +@Table(name = "review") +public class Review { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + private Long userId; + + private Long marketId; + + private Integer stars; + + private String content; + + private LocalDateTime createdAt; +} \ No newline at end of file diff --git a/src/main/java/com/example/umc10th/domain/review/exception/ReviewException.java b/src/main/java/com/example/umc10th/domain/review/exception/ReviewException.java new file mode 100644 index 0000000..e91c51a --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/review/exception/ReviewException.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.review.exception; + +public class ReviewException { +} diff --git a/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewErrorCode.java b/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewErrorCode.java new file mode 100644 index 0000000..0d1fcb3 --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewErrorCode.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.review.exception.code; + +public enum ReviewErrorCode { +} diff --git a/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewSuccessCode.java b/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewSuccessCode.java new file mode 100644 index 0000000..fb2f221 --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewSuccessCode.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.review.exception.code; + +public enum ReviewSuccessCode { +} diff --git a/src/main/java/com/example/umc10th/domain/review/repository/ReviewRepository.java b/src/main/java/com/example/umc10th/domain/review/repository/ReviewRepository.java new file mode 100644 index 0000000..d754a10 --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/review/repository/ReviewRepository.java @@ -0,0 +1,7 @@ +package com.example.umc10th.domain.review.repository; + +import com.example.umc10th.domain.review.entity.Review; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface ReviewRepository extends JpaRepository { +} diff --git a/src/main/java/com/example/umc10th/domain/review/service/ReviewService.java b/src/main/java/com/example/umc10th/domain/review/service/ReviewService.java new file mode 100644 index 0000000..c60e350 --- /dev/null +++ b/src/main/java/com/example/umc10th/domain/review/service/ReviewService.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.review.service; + +public class ReviewService { +} diff --git a/src/main/java/com/example/umc10th/global/apiPayload/ApiResponse.java b/src/main/java/com/example/umc10th/global/apiPayload/ApiResponse.java new file mode 100644 index 0000000..571fc2f --- /dev/null +++ b/src/main/java/com/example/umc10th/global/apiPayload/ApiResponse.java @@ -0,0 +1,35 @@ +package com.example.umc10th.global.apiPayload; + +import com.example.umc10th.global.apiPayload.code.BaseErrorCode; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +@JsonPropertyOrder({"isSuccess", "code", "message", "result"}) +public class ApiResponse { + + @JsonProperty("isSuccess") + private final boolean isSuccess; + + @JsonProperty("code") + private final String code; + + @JsonProperty("message") + private final String message; + + @JsonProperty("result") + private final T result; + + // 성공한 경우 (result 포함) + public static ApiResponse onSuccess(T result) { + return new ApiResponse<>(true, "COMMON200", "성공입니다.", result); + } + + // 실패한 경우 (result 포함) + public static ApiResponse onFailure(BaseErrorCode code, T result ) { + return new ApiResponse<>(false, code.getCode(), code.getMessage(), result); + } +} diff --git a/src/main/java/com/example/umc10th/global/apiPayload/code/BaseErrorCode.java b/src/main/java/com/example/umc10th/global/apiPayload/code/BaseErrorCode.java new file mode 100644 index 0000000..137c8ac --- /dev/null +++ b/src/main/java/com/example/umc10th/global/apiPayload/code/BaseErrorCode.java @@ -0,0 +1,9 @@ +package com.example.umc10th.global.apiPayload.code; + +import org.springframework.http.HttpStatus; + +public interface BaseErrorCode { + HttpStatus getStatus(); + String getCode(); + String getMessage(); +} diff --git a/src/main/java/com/example/umc10th/global/apiPayload/code/BaseSuccessCode.java b/src/main/java/com/example/umc10th/global/apiPayload/code/BaseSuccessCode.java new file mode 100644 index 0000000..5ebb033 --- /dev/null +++ b/src/main/java/com/example/umc10th/global/apiPayload/code/BaseSuccessCode.java @@ -0,0 +1,10 @@ +package com.example.umc10th.global.apiPayload.code; + +import org.springframework.http.HttpStatus; + +public interface BaseSuccessCode { + + HttpStatus getStatus(); + String getCode(); + String getMessage(); +} diff --git a/src/main/java/com/example/umc10th/global/apiPayload/code/GeneralErrorCode.java b/src/main/java/com/example/umc10th/global/apiPayload/code/GeneralErrorCode.java new file mode 100644 index 0000000..6f77729 --- /dev/null +++ b/src/main/java/com/example/umc10th/global/apiPayload/code/GeneralErrorCode.java @@ -0,0 +1,34 @@ +package com.example.umc10th.global.apiPayload.code; + +import lombok.Getter; +import lombok.RequiredArgsConstructor; +import org.springframework.http.HttpStatus; + +@Getter +@RequiredArgsConstructor +public enum GeneralErrorCode implements BaseErrorCode { + + BAD_REQUEST(HttpStatus.BAD_REQUEST, + "COMMON400_1", + "잘못된 요청입니다."), + UNAUTHORIZED(HttpStatus.UNAUTHORIZED, + "COMMON401_1", + "인증되지 않았습니다."), + FORBIDDEN(HttpStatus.FORBIDDEN, + "COMMON403_1", + "접근이 금지되었습니다."), + NOT_FOUND(HttpStatus.NOT_FOUND, + "Common404_1", + "해당 리소스를 찾을 수 없습니다." + ), + ; + + private final HttpStatus status; + private final String code; + private final String message; + +} + + + + diff --git a/src/main/java/com/example/umc10th/global/apiPayload/code/GeneralSuccessCode.java b/src/main/java/com/example/umc10th/global/apiPayload/code/GeneralSuccessCode.java new file mode 100644 index 0000000..4e0d00f --- /dev/null +++ b/src/main/java/com/example/umc10th/global/apiPayload/code/GeneralSuccessCode.java @@ -0,0 +1,19 @@ +package com.example.umc10th.global.apiPayload.code; + +import lombok.Getter; +import lombok.RequiredArgsConstructor; +import org.springframework.http.HttpStatus; + +@Getter@RequiredArgsConstructor +public enum GeneralSuccessCode implements BaseErrorCode{ + + OK(HttpStatus.OK, + "COMMON200_1", + "성공적으로 요청을 처리했습니다."), + + ; + + private final HttpStatus status; + private final String code; + private final String message; +} diff --git a/src/main/java/com/example/umc10th/global/config/SwaggerConfig.java b/src/main/java/com/example/umc10th/global/config/SwaggerConfig.java new file mode 100644 index 0000000..efda88f --- /dev/null +++ b/src/main/java/com/example/umc10th/global/config/SwaggerConfig.java @@ -0,0 +1,36 @@ +package com.example.umc10th.global.config; + +import io.swagger.v3.oas.models.info.Info; +import io.swagger.v3.oas.models.servers.Server; +import io.swagger.v3.oas.models.Components; +import io.swagger.v3.oas.models.OpenAPI; +import io.swagger.v3.oas.models.security.SecurityRequirement; +import io.swagger.v3.oas.models.security.SecurityScheme; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class SwaggerConfig { + + @Bean + public OpenAPI swagger() { + Info info = new Info().title("UMC10th").description("10기 Swagger").version("0.0.1"); + + // JWT 토큰 헤더 방식 + String securityScheme = "JWT TOKEN"; + SecurityRequirement securityRequirement = new SecurityRequirement().addList(securityScheme); + + Components components = new Components() + .addSecuritySchemes(securityScheme, new SecurityScheme() + .name(securityScheme) + .type(SecurityScheme.Type.HTTP) + .scheme("Bearer") + .bearerFormat("JWT")); + + return new OpenAPI() + .info(info) + .addServersItem(new Server().url("/")) + .addSecurityItem(securityRequirement) + .components(components); + } +} diff --git a/src/test/java/com/example/umc10th/Umc10thApplicationTests.java b/src/test/java/com/example/umc10th/Umc10thApplicationTests.java new file mode 100644 index 0000000..b43a96f --- /dev/null +++ b/src/test/java/com/example/umc10th/Umc10thApplicationTests.java @@ -0,0 +1,13 @@ +package com.example.umc10th; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +class Umc10thApplicationTests { + + @Test + void contextLoads() { + } + +} From bec20294c3b55a5c58a4aa0229f993289dc44393 Mon Sep 17 00:00:00 2001 From: yujining3827 Date: Mon, 4 May 2026 14:35:11 +0900 Subject: [PATCH 21/46] =?UTF-8?q?chore=20:=20=EB=B9=8C=EC=9A=94=20?= =?UTF-8?q?=EC=97=86=EB=8A=94=20import=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../umc10th/domain/member/controller/MemberController.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/luke/src/main/java/com/example/umc10th/domain/member/controller/MemberController.java b/luke/src/main/java/com/example/umc10th/domain/member/controller/MemberController.java index a65d75f..4b4d0a7 100644 --- a/luke/src/main/java/com/example/umc10th/domain/member/controller/MemberController.java +++ b/luke/src/main/java/com/example/umc10th/domain/member/controller/MemberController.java @@ -2,12 +2,10 @@ import com.example.umc10th.domain.member.dto.MemberReqDTO; import com.example.umc10th.domain.member.dto.MemberResDTO; -import com.example.umc10th.domain.member.service.MemberService; import com.example.umc10th.global.apiPayload.ApiResponse; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; -import java.lang.reflect.Member; @RestController @RequestMapping("/api") From d50fc80c5be83e9efa36ea35ea320821b763d6c6 Mon Sep 17 00:00:00 2001 From: yujining3827 Date: Mon, 4 May 2026 14:36:50 +0900 Subject: [PATCH 22/46] =?UTF-8?q?fix=20:=20api=20=EA=B8=B0=EB=B3=B8=20?= =?UTF-8?q?=EA=B2=BD=EB=A1=9C=20/api/v1=EC=9C=BC=EB=A1=9C=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD=20=EB=B0=8F=20=EB=A6=AC=EC=86=8C=EC=8A=A4=20=EC=A4=91?= =?UTF-8?q?=EC=8B=AC=EC=9C=BC=EB=A1=9C=20=EC=84=A4=EA=B3=84=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../umc10th/domain/member/controller/MemberController.java | 2 +- .../umc10th/domain/mission/controller/MissionController.java | 2 +- .../umc10th/domain/review/controller/ReviewController.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/luke/src/main/java/com/example/umc10th/domain/member/controller/MemberController.java b/luke/src/main/java/com/example/umc10th/domain/member/controller/MemberController.java index 4b4d0a7..c792142 100644 --- a/luke/src/main/java/com/example/umc10th/domain/member/controller/MemberController.java +++ b/luke/src/main/java/com/example/umc10th/domain/member/controller/MemberController.java @@ -8,7 +8,7 @@ @RestController -@RequestMapping("/api") +@RequestMapping("/members") @RequiredArgsConstructor public class MemberController { diff --git a/luke/src/main/java/com/example/umc10th/domain/mission/controller/MissionController.java b/luke/src/main/java/com/example/umc10th/domain/mission/controller/MissionController.java index 8e0a83a..3d13bcc 100644 --- a/luke/src/main/java/com/example/umc10th/domain/mission/controller/MissionController.java +++ b/luke/src/main/java/com/example/umc10th/domain/mission/controller/MissionController.java @@ -8,7 +8,7 @@ import java.util.List; @RestController -@RequestMapping("/api/mission") +@RequestMapping("/mission") @RequiredArgsConstructor public class MissionController { diff --git a/luke/src/main/java/com/example/umc10th/domain/review/controller/ReviewController.java b/luke/src/main/java/com/example/umc10th/domain/review/controller/ReviewController.java index b236403..1665250 100644 --- a/luke/src/main/java/com/example/umc10th/domain/review/controller/ReviewController.java +++ b/luke/src/main/java/com/example/umc10th/domain/review/controller/ReviewController.java @@ -10,7 +10,7 @@ import org.springframework.web.bind.annotation.RestController; @RestController -@RequestMapping("/api/review") +@RequestMapping("/review") @RequiredArgsConstructor public class ReviewController { From 43b1582f133c509b09da993510ea55f76a9f23e5 Mon Sep 17 00:00:00 2001 From: yujining3827 Date: Mon, 4 May 2026 14:48:01 +0900 Subject: [PATCH 23/46] =?UTF-8?q?feat:=20SignupDTO=20=ED=95=84=EB=93=9C=20?= =?UTF-8?q?validation=20=EB=B0=8F=20Swagger=20=EC=96=B4=EB=85=B8=ED=85=8C?= =?UTF-8?q?=EC=9D=B4=EC=85=98=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/member/dto/MemberReqDTO.java | 27 ++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/luke/src/main/java/com/example/umc10th/domain/member/dto/MemberReqDTO.java b/luke/src/main/java/com/example/umc10th/domain/member/dto/MemberReqDTO.java index 2016f60..aaf0394 100644 --- a/luke/src/main/java/com/example/umc10th/domain/member/dto/MemberReqDTO.java +++ b/luke/src/main/java/com/example/umc10th/domain/member/dto/MemberReqDTO.java @@ -2,21 +2,46 @@ import com.example.umc10th.domain.member.enums.Gender; import com.example.umc10th.domain.member.enums.UserType; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.*; import java.time.LocalDate; public class MemberReqDTO { public static class SignupDTO { + @Schema(description = "이름", example = "홍길동") + @NotBlank public String name; + + @Schema(description = "성별", example = "MALE") + @NotNull public Gender gender; + + @Schema(description = "생년월일", example = "2003-01-01") + @NotNull public LocalDate birth; + + @Schema(description = "기본 주소") + @NotBlank public String addressLine1; + + @Schema(description = "상세 주소") public String addressLine2; + + @Schema(description = "이메일", example = "test@example.com") + @Email + @NotBlank public String email; + + @Schema(description = "전화번호", example = "01012345678") + @NotBlank public String phoneNumber; + + @Schema(description = "유저 타입") + @NotNull public UserType type; - public Long agreeId; + } } From 72b59e5e504d828387a9c20079a2792a512fb737 Mon Sep 17 00:00:00 2001 From: yujining3827 Date: Mon, 4 May 2026 14:50:50 +0900 Subject: [PATCH 24/46] =?UTF-8?q?fix:=20marketId=EB=8A=94=20Path=20Variabl?= =?UTF-8?q?e=EC=97=90=EC=84=9C=20=EB=B0=9B=EB=8A=94=20=EA=B5=AC=EC=A1=B0?= =?UTF-8?q?=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/review/controller/ReviewController.java | 8 +++----- .../example/umc10th/domain/review/dto/ReviewReqDTO.java | 2 -- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/luke/src/main/java/com/example/umc10th/domain/review/controller/ReviewController.java b/luke/src/main/java/com/example/umc10th/domain/review/controller/ReviewController.java index 1665250..64edbab 100644 --- a/luke/src/main/java/com/example/umc10th/domain/review/controller/ReviewController.java +++ b/luke/src/main/java/com/example/umc10th/domain/review/controller/ReviewController.java @@ -4,18 +4,16 @@ import com.example.umc10th.domain.review.dto.ReviewResDTO; import com.example.umc10th.global.apiPayload.ApiResponse; import lombok.RequiredArgsConstructor; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; @RestController @RequestMapping("/review") @RequiredArgsConstructor public class ReviewController { - @PostMapping + @PostMapping("/markets/{marketId}") public ApiResponse createReview( + @PathVariable Long marketId, @RequestBody ReviewReqDTO.CreateReviewDTO request ) { return ApiResponse.onSuccess(null); diff --git a/luke/src/main/java/com/example/umc10th/domain/review/dto/ReviewReqDTO.java b/luke/src/main/java/com/example/umc10th/domain/review/dto/ReviewReqDTO.java index fba8311..582f639 100644 --- a/luke/src/main/java/com/example/umc10th/domain/review/dto/ReviewReqDTO.java +++ b/luke/src/main/java/com/example/umc10th/domain/review/dto/ReviewReqDTO.java @@ -3,8 +3,6 @@ public class ReviewReqDTO { public static class CreateReviewDTO { - public Long marketId; - public Long regionId; public Integer stars; public String content; } From 0c129c0e7a7fdb30a4cc5be121cd3eacdedd49e5 Mon Sep 17 00:00:00 2001 From: yujining3827 Date: Mon, 4 May 2026 15:25:43 +0900 Subject: [PATCH 25/46] =?UTF-8?q?fix=20:=2010th=5FSpringBoot=5FB/src=20?= =?UTF-8?q?=EC=B6=94=EC=A0=81=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- luke/.DS_Store | Bin 0 -> 8196 bytes luke/src/.DS_Store | Bin 0 -> 6148 bytes luke/src/main/.DS_Store | Bin 0 -> 6148 bytes luke/src/main/java/.DS_Store | Bin 0 -> 6148 bytes luke/src/main/java/com/.DS_Store | Bin 0 -> 6148 bytes luke/src/main/java/com/example/.DS_Store | Bin 0 -> 6148 bytes luke/src/main/java/com/example/umc10th/.DS_Store | Bin 0 -> 6148 bytes .../java/com/example/umc10th/global/.DS_Store | Bin 0 -> 6148 bytes luke/umc10th/.DS_Store | Bin 0 -> 6148 bytes 9 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 luke/.DS_Store create mode 100644 luke/src/.DS_Store create mode 100644 luke/src/main/.DS_Store create mode 100644 luke/src/main/java/.DS_Store create mode 100644 luke/src/main/java/com/.DS_Store create mode 100644 luke/src/main/java/com/example/.DS_Store create mode 100644 luke/src/main/java/com/example/umc10th/.DS_Store create mode 100644 luke/src/main/java/com/example/umc10th/global/.DS_Store create mode 100644 luke/umc10th/.DS_Store diff --git a/luke/.DS_Store b/luke/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..1de11dd09e448bd4cf7418e20f33aba3e8030b13 GIT binary patch literal 8196 zcmeHMF>6#o5T5lV=ETM_%D|(J~RW(Ai$P zh@qjepL?yH3o{(|UVwZ}0o@$J!b`wa%!R@|ho%@W~FD&m#00fXfE0CtTdoY3hx6+}izgx^f~sqWqXcb3}rF;f3ON zaj!Cf7X1W2J30{j${XW9U3oLnVUePUsRqpv3H}np(|PQUO2vc$9j?y$V-EY@s=bk{ z5vwpSCgDNH%p;=$I_#tj-0sv9W8c4f^6-l8gOC@a*1aj7RFRCH;Jte(-m{y6C!QGZ zOYiHu=M%i(ooZe8CV1H%7RA0F(};T1rfd9JOmR72HX_C^9=!i?L-*UvI`MnYk4pFm znAClbM=rT}u%%k5!Wg6q!&?1^F4jzev!p<#WS9B;e`o&v|5(pSh0Ok_$#5s3m(KnMb)7)K)XJ_@&?C<9DG$x`FO^{`fFZC$+XhyF?R{ seZ34|7;7m8YAMD<&XGeUjjv=3zIN;lC5o)8J1{;3RFLRGfnQMI6M2tE{Qv*} literal 0 HcmV?d00001 diff --git a/luke/src/main/.DS_Store b/luke/src/main/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..4146a8fbb9650803488828672054def1d3b28a11 GIT binary patch literal 6148 zcmeHKJ5Iwu5S>X}IHCz1rLPc)1DMEkP~`&oArQoJ1PZl}f|4)gcl?}qyhOy~&2mIEB%%~5*c)Kz5b=w)q-Pd!vaGSX98DHgxo$9Jci1@ciNH_2ne?FL(OaSB>9Be~MHZ&@Eli z9aXf!Y$5Zw0)Fg{YS!{}_W6GN7Ha8OudIHm+8r6y7yb`YqKh-&3^)UO$pCt`NP3{? zqch+PI0IV-BX83 ze{S)$qNWpvow1JX%yvTIusiHo2q(@JeRKw#ftZ25UJj-IpZ`CMWlus%A+k)v%LAl&N4Css-3Y|ZTs#psXG-gZY5jk zrQ6?*`S;J?nXYf!&A#6tQomf>JiWiYUX8Q66WPPv=+tTr8jT820V+TRsKCEg06p8R zJ`dzd1*iZO_)@^W4+U=6Bo2Z8>A>P60MLHp-SF(Q1h7~D*dz{th`=bE0ayj-*i>2qcaR_ue;!X$hN5FKUQGwr3 F-~)EXDA)i1 literal 0 HcmV?d00001 diff --git a/luke/src/main/java/com/.DS_Store b/luke/src/main/java/com/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..ce85bf720f79d274cc7f61911acf760a56551516 GIT binary patch literal 6148 zcmeHKOHRWu5S^iwh{UEFB$mEHZxE`mWYr6l(h4LJB^#tJeH8A%A=q*e?!bGV0TDF| zHXwv%B>Rm$A3INq?GX`OJ?@qw3lXW%h)QKbI6Y}PapyTuOO8QW*|&Gg^=&_q=r2xj z@29etgWO0bU-sV(w%v#4V~?(Hnr+)}VW|%1*H3S+FPBqZyKi_6_hidgn{ALLBp3(= zf`MQl82C{JaA#AhGsEbEfnXpQ_+)_RLqa3gj@hsr9q3940OT{e2z1sGj7g5QV>W~Z zq819YQ1uc+EgbX7{c6W-XyKw>e5kMdQM_nb9r;sn7p)DW4+esPF#|IjE_nZ6;g^{# z^2Z@D3I>9Kf5w2$n{~6oNBP})^m)8%6WRuiLcdG}0)6xdz<}q-MKPK^QHNjcm<^eQ S^CcV@4}n5Rbiu$cFz^nQrZ3b0 literal 0 HcmV?d00001 diff --git a/luke/src/main/java/com/example/.DS_Store b/luke/src/main/java/com/example/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..c07c7eea14bde050a2a8997c83814d1ff36af343 GIT binary patch literal 6148 zcmeHKOHRWu5S^iwh{UE#mOcWxL8!tSq+XzED^ZC?>7w2H23&zVa0s?sggfw_XFx>F zf(;0v8OeTQ&&SS_VtYhH=f_PgG82&sji^*cgwvy@Gk2Z>wdA;xgKT&A^Ia} z-21s4rIWSP@@4yW6L?*O%)tugy2S_FJ;$t4)?j6A}yr z1HnKr5Dfe%1Guv()rDd7!9Xw&416-c^C6)T8^>%|jt+FC1OW0GT?9I73C1MH#xWbh z0#OSETBv%7p%#w$){wQ9wtd9JtxQjN1(FX&;z>tB74QIUnZ}7{E z7Wu=F7zG2tz&~R^r|qJhj;J^4J|wFzyBMxkG(0)akw1Yp2(`5-4 literal 0 HcmV?d00001 diff --git a/luke/src/main/java/com/example/umc10th/.DS_Store b/luke/src/main/java/com/example/umc10th/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..fd4428bf4c6a782fe001026c036a2fae4a4fb9da GIT binary patch literal 6148 zcmeHKu}Z{15S@*OL~O3K5w;Y&1F>F@*on>kfX2WnB<33X{S-gJzpz#C3+x3Od*AE~ zXL7m2PUM(@*|(XU*-YMsOooWu^r4y%jfp6SGG==i)(Ee&4kS|xFS@kH9o^US$?T?W z76WfH{6_}(>~^W5mKwUI!TB9utgbh0QIvIC!k)jrUp{`kJf97Hs$YE;x1IMSd%_mT zV@@?PDUnIte~*q1SJ%6FoK&A*r*E1^XOE`+$zzjGFAs{Ghlw#@3>X93&H!pQOTI5? zqcLC%7z0ZN`1|0Yj6pF9rcVck)B*rUFekyBdkK#5ia{|7Vg=$P6eyuiTMQ@RuzU3j zicwI)$!YW9^v+H@6qoLf{e5yL7X)oI28@9|13Pj#=K6oWx&QA6*_AP13~UtxZdA;Q zDIQ5{>)_$I)_Uj_l!g7G;4%c0REputrT74v1a{98U{H*Lut4lbAkkohG4Q7hd;{E# BPxM3o>$;ua?#b8j&Ajf<&mP~OeO|3Oit;m`KA(0T@;@;#28;n?;NLTV znk^C?C|YX_7z4&Y!+?Ar98@p~SS$KZ2O56`01jdHg1$c^0i76tNx)hW76@x7P(wLf zF<8T4cfl_SSSxBcv0oYUgq1nmP&k~>*m-y2MA2Gfz!+#Vu%nM-ssE?__y2Z~JsAVW zz*aH9!*rfb@k*h#c3w_ut%F`bMZ~XGY(miSr5L_aiVvY)V0Y31CIM?jSRi%~@HALs I4E!nsA4l?1MF0Q* literal 0 HcmV?d00001 diff --git a/luke/umc10th/.DS_Store b/luke/umc10th/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..793f73dd69215865e87fc3f175fca6fc009c3cb4 GIT binary patch literal 6148 zcmeHKze~eF6nz;1u|43h=vIplRBo2JMsa{a z7Qc6YBl(l4$$vO|(bFMMMn+$Q>VR%5-{WQvmv70lVXa}RFeu0B zgSy;@M-g<`w>uE+e#GQnS$bZZQqO^|Gg;G7n~%>!@a^HgYc}7}Tt8y+z0_W>k9&Nw z&g4r+Ek3Wqe7|itv)PJc3f=4!a0)mD5(RjF@G%$zjj=+xbzqX80KgpF(r_*JPN2^Y zV4yKp2oFrCQlKgo`V&K_a`=6n7if$Xs&W#N8S7|fp}$asWQX6E=_CS$ZgvVd1#AU8 z^|Qq1|Ki~9f4j*2atb&F{*?kES6!`Ea7+4ZP2C)ywLZo=1{>$a3S|i1u)PUD})E;{s>4J+~gGaRRz8P;o0cu literal 0 HcmV?d00001 From 811cfc16b760a640220d95e7f9e2aa26df250268 Mon Sep 17 00:00:00 2001 From: yujining3827 Date: Mon, 4 May 2026 15:27:16 +0900 Subject: [PATCH 26/46] =?UTF-8?q?delete=20:=2010th=5FSpringBoot=5FB/src=20?= =?UTF-8?q?=EC=B6=94=EC=A0=81=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../example/umc10th/Umc10thApplication.java | 13 ------ .../member/controller/MemberController.java | 35 --------------- .../member/converter/MemberConverter.java | 4 -- .../domain/member/dto/MemberReqDTO.java | 22 ---------- .../domain/member/dto/MemberResDTO.java | 18 -------- .../domain/member/entity/FoodCategory.java | 15 ------- .../umc10th/domain/member/entity/Member.java | 13 ------ .../domain/member/entity/Notification.java | 12 ------ .../umc10th/domain/member/entity/Term.java | 12 ------ .../member/entity/mapping/Preference.java | 4 -- .../entity/mapping/UserTermAgreement.java | 4 -- .../umc10th/domain/member/enums/Gender.java | 4 -- .../member/enums/NotifictationType.java | 4 -- .../umc10th/domain/member/enums/UserType.java | 4 -- .../member/exception/MemberExpection.java | 4 -- .../exception/code/MemberErrorCode.java | 4 -- .../exception/code/MemberSuccessCode.java | 4 -- .../member/repository/MemberRepository.java | 7 --- .../domain/member/service/MemberService.java | 4 -- .../mission/controller/MissionController.java | 43 ------------------- .../mission/converter/MissionConverter.java | 4 -- .../domain/mission/dto/MissionReqDTO.java | 9 ---- .../domain/mission/dto/MissionResDTO.java | 25 ----------- .../umc10th/domain/mission/entity/Market.java | 12 ------ .../domain/mission/entity/Mission.java | 12 ------ .../umc10th/domain/mission/entity/Region.java | 12 ------ .../mission/entity/mapping/Particiopate.java | 4 -- .../domain/mission/enums/MissionStatus.java | 4 -- .../mission/enums/ParticipatedStatus.java | 4 -- .../mission/exception/MissionExcepotion.java | 4 -- .../exception/code/MissionErrorCode.java | 4 -- .../exception/code/MissionSuccessCode.java | 4 -- .../mission/repository/MissionRepository.java | 7 --- .../mission/service/MissionService.java | 4 -- .../review/controller/ReviewController.java | 23 ---------- .../review/converter/ReviewConverter.java | 4 -- .../domain/review/dto/ReviewReqDTO.java | 11 ----- .../domain/review/dto/ReviewResDTO.java | 9 ---- .../umc10th/domain/review/entity/Review.java | 23 ---------- .../review/exception/ReviewException.java | 4 -- .../exception/code/ReviewErrorCode.java | 4 -- .../exception/code/ReviewSuccessCode.java | 4 -- .../review/repository/ReviewRepository.java | 7 --- .../domain/review/service/ReviewService.java | 4 -- .../global/apiPayload/ApiResponse.java | 35 --------------- .../global/apiPayload/code/BaseErrorCode.java | 9 ---- .../apiPayload/code/BaseSuccessCode.java | 10 ----- .../apiPayload/code/GeneralErrorCode.java | 34 --------------- .../apiPayload/code/GeneralSuccessCode.java | 19 -------- .../umc10th/global/config/SwaggerConfig.java | 36 ---------------- .../umc10th/Umc10thApplicationTests.java | 13 ------ 51 files changed, 588 deletions(-) delete mode 100644 src/main/java/com/example/umc10th/Umc10thApplication.java delete mode 100644 src/main/java/com/example/umc10th/domain/member/controller/MemberController.java delete mode 100644 src/main/java/com/example/umc10th/domain/member/converter/MemberConverter.java delete mode 100644 src/main/java/com/example/umc10th/domain/member/dto/MemberReqDTO.java delete mode 100644 src/main/java/com/example/umc10th/domain/member/dto/MemberResDTO.java delete mode 100644 src/main/java/com/example/umc10th/domain/member/entity/FoodCategory.java delete mode 100644 src/main/java/com/example/umc10th/domain/member/entity/Member.java delete mode 100644 src/main/java/com/example/umc10th/domain/member/entity/Notification.java delete mode 100644 src/main/java/com/example/umc10th/domain/member/entity/Term.java delete mode 100644 src/main/java/com/example/umc10th/domain/member/entity/mapping/Preference.java delete mode 100644 src/main/java/com/example/umc10th/domain/member/entity/mapping/UserTermAgreement.java delete mode 100644 src/main/java/com/example/umc10th/domain/member/enums/Gender.java delete mode 100644 src/main/java/com/example/umc10th/domain/member/enums/NotifictationType.java delete mode 100644 src/main/java/com/example/umc10th/domain/member/enums/UserType.java delete mode 100644 src/main/java/com/example/umc10th/domain/member/exception/MemberExpection.java delete mode 100644 src/main/java/com/example/umc10th/domain/member/exception/code/MemberErrorCode.java delete mode 100644 src/main/java/com/example/umc10th/domain/member/exception/code/MemberSuccessCode.java delete mode 100644 src/main/java/com/example/umc10th/domain/member/repository/MemberRepository.java delete mode 100644 src/main/java/com/example/umc10th/domain/member/service/MemberService.java delete mode 100644 src/main/java/com/example/umc10th/domain/mission/controller/MissionController.java delete mode 100644 src/main/java/com/example/umc10th/domain/mission/converter/MissionConverter.java delete mode 100644 src/main/java/com/example/umc10th/domain/mission/dto/MissionReqDTO.java delete mode 100644 src/main/java/com/example/umc10th/domain/mission/dto/MissionResDTO.java delete mode 100644 src/main/java/com/example/umc10th/domain/mission/entity/Market.java delete mode 100644 src/main/java/com/example/umc10th/domain/mission/entity/Mission.java delete mode 100644 src/main/java/com/example/umc10th/domain/mission/entity/Region.java delete mode 100644 src/main/java/com/example/umc10th/domain/mission/entity/mapping/Particiopate.java delete mode 100644 src/main/java/com/example/umc10th/domain/mission/enums/MissionStatus.java delete mode 100644 src/main/java/com/example/umc10th/domain/mission/enums/ParticipatedStatus.java delete mode 100644 src/main/java/com/example/umc10th/domain/mission/exception/MissionExcepotion.java delete mode 100644 src/main/java/com/example/umc10th/domain/mission/exception/code/MissionErrorCode.java delete mode 100644 src/main/java/com/example/umc10th/domain/mission/exception/code/MissionSuccessCode.java delete mode 100644 src/main/java/com/example/umc10th/domain/mission/repository/MissionRepository.java delete mode 100644 src/main/java/com/example/umc10th/domain/mission/service/MissionService.java delete mode 100644 src/main/java/com/example/umc10th/domain/review/controller/ReviewController.java delete mode 100644 src/main/java/com/example/umc10th/domain/review/converter/ReviewConverter.java delete mode 100644 src/main/java/com/example/umc10th/domain/review/dto/ReviewReqDTO.java delete mode 100644 src/main/java/com/example/umc10th/domain/review/dto/ReviewResDTO.java delete mode 100644 src/main/java/com/example/umc10th/domain/review/entity/Review.java delete mode 100644 src/main/java/com/example/umc10th/domain/review/exception/ReviewException.java delete mode 100644 src/main/java/com/example/umc10th/domain/review/exception/code/ReviewErrorCode.java delete mode 100644 src/main/java/com/example/umc10th/domain/review/exception/code/ReviewSuccessCode.java delete mode 100644 src/main/java/com/example/umc10th/domain/review/repository/ReviewRepository.java delete mode 100644 src/main/java/com/example/umc10th/domain/review/service/ReviewService.java delete mode 100644 src/main/java/com/example/umc10th/global/apiPayload/ApiResponse.java delete mode 100644 src/main/java/com/example/umc10th/global/apiPayload/code/BaseErrorCode.java delete mode 100644 src/main/java/com/example/umc10th/global/apiPayload/code/BaseSuccessCode.java delete mode 100644 src/main/java/com/example/umc10th/global/apiPayload/code/GeneralErrorCode.java delete mode 100644 src/main/java/com/example/umc10th/global/apiPayload/code/GeneralSuccessCode.java delete mode 100644 src/main/java/com/example/umc10th/global/config/SwaggerConfig.java delete mode 100644 src/test/java/com/example/umc10th/Umc10thApplicationTests.java diff --git a/src/main/java/com/example/umc10th/Umc10thApplication.java b/src/main/java/com/example/umc10th/Umc10thApplication.java deleted file mode 100644 index 9983f43..0000000 --- a/src/main/java/com/example/umc10th/Umc10thApplication.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.example.umc10th; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class Umc10thApplication { - - public static void main(String[] args) { - SpringApplication.run(Umc10thApplication.class, args); - } - -} diff --git a/src/main/java/com/example/umc10th/domain/member/controller/MemberController.java b/src/main/java/com/example/umc10th/domain/member/controller/MemberController.java deleted file mode 100644 index a65d75f..0000000 --- a/src/main/java/com/example/umc10th/domain/member/controller/MemberController.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.example.umc10th.domain.member.controller; - -import com.example.umc10th.domain.member.dto.MemberReqDTO; -import com.example.umc10th.domain.member.dto.MemberResDTO; -import com.example.umc10th.domain.member.service.MemberService; -import com.example.umc10th.global.apiPayload.ApiResponse; -import lombok.RequiredArgsConstructor; -import org.springframework.web.bind.annotation.*; - -import java.lang.reflect.Member; - -@RestController -@RequestMapping("/api") -@RequiredArgsConstructor -public class MemberController { - - @PostMapping("/signup") - public ApiResponse signup( - @RequestBody MemberReqDTO.SignupDTO request - ) { - - MemberResDTO.SignupDTO response = new MemberResDTO.SignupDTO(); - response.userId = 1L; - response.message = "회원가입이 완료되었습니다."; - - return ApiResponse.onSuccess(response); - } - - @GetMapping("/home/my") - public ApiResponse getMyPage() { - - MemberResDTO.MyPageDTO response = new MemberResDTO.MyPageDTO(); - return ApiResponse.onSuccess(response); - } -} diff --git a/src/main/java/com/example/umc10th/domain/member/converter/MemberConverter.java b/src/main/java/com/example/umc10th/domain/member/converter/MemberConverter.java deleted file mode 100644 index 2c6188e..0000000 --- a/src/main/java/com/example/umc10th/domain/member/converter/MemberConverter.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.member.converter; - -public class MemberConverter { -} diff --git a/src/main/java/com/example/umc10th/domain/member/dto/MemberReqDTO.java b/src/main/java/com/example/umc10th/domain/member/dto/MemberReqDTO.java deleted file mode 100644 index 2016f60..0000000 --- a/src/main/java/com/example/umc10th/domain/member/dto/MemberReqDTO.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.example.umc10th.domain.member.dto; - -import com.example.umc10th.domain.member.enums.Gender; -import com.example.umc10th.domain.member.enums.UserType; - -import java.time.LocalDate; - -public class MemberReqDTO { - - public static class SignupDTO { - public String name; - public Gender gender; - public LocalDate birth; - public String addressLine1; - public String addressLine2; - public String email; - public String phoneNumber; - public UserType type; - public Long agreeId; - } - -} diff --git a/src/main/java/com/example/umc10th/domain/member/dto/MemberResDTO.java b/src/main/java/com/example/umc10th/domain/member/dto/MemberResDTO.java deleted file mode 100644 index 08c456e..0000000 --- a/src/main/java/com/example/umc10th/domain/member/dto/MemberResDTO.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.example.umc10th.domain.member.dto; - -public class MemberResDTO { - - public static class SignupDTO { - public Long userId; - public String message; - } - - public static class MyPageDTO { - public String nickname; - public String email; - public String phoneNumber; - public Integer phoneNumberStatus; - public Integer userPoint; - } - -} diff --git a/src/main/java/com/example/umc10th/domain/member/entity/FoodCategory.java b/src/main/java/com/example/umc10th/domain/member/entity/FoodCategory.java deleted file mode 100644 index cc619fb..0000000 --- a/src/main/java/com/example/umc10th/domain/member/entity/FoodCategory.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.example.umc10th.domain.member.entity; - -import jakarta.persistence.Entity; -import jakarta.persistence.GeneratedValue; -import jakarta.persistence.GenerationType; -import jakarta.persistence.Id; - -@Entity -public class FoodCategory { - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long id; - -} diff --git a/src/main/java/com/example/umc10th/domain/member/entity/Member.java b/src/main/java/com/example/umc10th/domain/member/entity/Member.java deleted file mode 100644 index c3b4d77..0000000 --- a/src/main/java/com/example/umc10th/domain/member/entity/Member.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.example.umc10th.domain.member.entity; - -import jakarta.persistence.Entity; -import jakarta.persistence.*; - -@Entity -public class Member { - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long id; - -} diff --git a/src/main/java/com/example/umc10th/domain/member/entity/Notification.java b/src/main/java/com/example/umc10th/domain/member/entity/Notification.java deleted file mode 100644 index cc91398..0000000 --- a/src/main/java/com/example/umc10th/domain/member/entity/Notification.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.example.umc10th.domain.member.entity; - -import jakarta.persistence.Entity; -import jakarta.persistence.*; - -@Entity -public class Notification { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long id; - -} diff --git a/src/main/java/com/example/umc10th/domain/member/entity/Term.java b/src/main/java/com/example/umc10th/domain/member/entity/Term.java deleted file mode 100644 index 3a76c88..0000000 --- a/src/main/java/com/example/umc10th/domain/member/entity/Term.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.example.umc10th.domain.member.entity; - -import jakarta.persistence.Entity; -import jakarta.persistence.*; - -@Entity -public class Term { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long id; - -} diff --git a/src/main/java/com/example/umc10th/domain/member/entity/mapping/Preference.java b/src/main/java/com/example/umc10th/domain/member/entity/mapping/Preference.java deleted file mode 100644 index 07736e4..0000000 --- a/src/main/java/com/example/umc10th/domain/member/entity/mapping/Preference.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.member.entity.mapping; - -public class Preference { -} diff --git a/src/main/java/com/example/umc10th/domain/member/entity/mapping/UserTermAgreement.java b/src/main/java/com/example/umc10th/domain/member/entity/mapping/UserTermAgreement.java deleted file mode 100644 index 94df8e7..0000000 --- a/src/main/java/com/example/umc10th/domain/member/entity/mapping/UserTermAgreement.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.member.entity.mapping; - -public class UserTermAgreement { -} diff --git a/src/main/java/com/example/umc10th/domain/member/enums/Gender.java b/src/main/java/com/example/umc10th/domain/member/enums/Gender.java deleted file mode 100644 index 729751d..0000000 --- a/src/main/java/com/example/umc10th/domain/member/enums/Gender.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.member.enums; - -public enum Gender { -} diff --git a/src/main/java/com/example/umc10th/domain/member/enums/NotifictationType.java b/src/main/java/com/example/umc10th/domain/member/enums/NotifictationType.java deleted file mode 100644 index 3bfa309..0000000 --- a/src/main/java/com/example/umc10th/domain/member/enums/NotifictationType.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.member.enums; - -public enum NotifictationType { -} diff --git a/src/main/java/com/example/umc10th/domain/member/enums/UserType.java b/src/main/java/com/example/umc10th/domain/member/enums/UserType.java deleted file mode 100644 index 9f0d674..0000000 --- a/src/main/java/com/example/umc10th/domain/member/enums/UserType.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.member.enums; - -public enum UserType { -} diff --git a/src/main/java/com/example/umc10th/domain/member/exception/MemberExpection.java b/src/main/java/com/example/umc10th/domain/member/exception/MemberExpection.java deleted file mode 100644 index cfc9d67..0000000 --- a/src/main/java/com/example/umc10th/domain/member/exception/MemberExpection.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.member.exception; - -public class MemberExpection { -} diff --git a/src/main/java/com/example/umc10th/domain/member/exception/code/MemberErrorCode.java b/src/main/java/com/example/umc10th/domain/member/exception/code/MemberErrorCode.java deleted file mode 100644 index 135bd22..0000000 --- a/src/main/java/com/example/umc10th/domain/member/exception/code/MemberErrorCode.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.member.exception.code; - -public enum MemberErrorCode { -} diff --git a/src/main/java/com/example/umc10th/domain/member/exception/code/MemberSuccessCode.java b/src/main/java/com/example/umc10th/domain/member/exception/code/MemberSuccessCode.java deleted file mode 100644 index f42e80f..0000000 --- a/src/main/java/com/example/umc10th/domain/member/exception/code/MemberSuccessCode.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.member.exception.code; - -public enum MemberSuccessCode { -} diff --git a/src/main/java/com/example/umc10th/domain/member/repository/MemberRepository.java b/src/main/java/com/example/umc10th/domain/member/repository/MemberRepository.java deleted file mode 100644 index e878bbb..0000000 --- a/src/main/java/com/example/umc10th/domain/member/repository/MemberRepository.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.example.umc10th.domain.member.repository; - -import com.example.umc10th.domain.member.entity.Member; -import org.springframework.data.jpa.repository.JpaRepository; - -public interface MemberRepository extends JpaRepository { -} \ No newline at end of file diff --git a/src/main/java/com/example/umc10th/domain/member/service/MemberService.java b/src/main/java/com/example/umc10th/domain/member/service/MemberService.java deleted file mode 100644 index 8d867f2..0000000 --- a/src/main/java/com/example/umc10th/domain/member/service/MemberService.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.member.service; - -public class MemberService { -} diff --git a/src/main/java/com/example/umc10th/domain/mission/controller/MissionController.java b/src/main/java/com/example/umc10th/domain/mission/controller/MissionController.java deleted file mode 100644 index 8e0a83a..0000000 --- a/src/main/java/com/example/umc10th/domain/mission/controller/MissionController.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.example.umc10th.domain.mission.controller; - -import com.example.umc10th.domain.mission.dto.MissionReqDTO; -import com.example.umc10th.domain.mission.dto.MissionResDTO; -import com.example.umc10th.global.apiPayload.ApiResponse; -import lombok.RequiredArgsConstructor; -import org.springframework.web.bind.annotation.*; -import java.util.List; - -@RestController -@RequestMapping("/api/mission") -@RequiredArgsConstructor -public class MissionController { - - @GetMapping - public ApiResponse getMissionList( - @RequestParam(name = "regionName", required = false) String regionName, - @RequestParam(name = "status") String status, - @RequestParam(name = "page") Integer page, - @RequestParam(name = "size") Integer size - ) { - - MissionResDTO.MissionListDTO response = new MissionResDTO.MissionListDTO(); - response.content = List.of(); - response.page = page; - response.size = size; - response.hasNext = false; - - return ApiResponse.onSuccess(response); - } - - @PostMapping("/completed") - public ApiResponse completeMission( - @RequestBody MissionReqDTO.CompleteDTO request - ) { - - MissionResDTO.CompleteDTO response = new MissionResDTO.CompleteDTO(); - response.missionId = request.missionId; - response.message = "미션이 정상적으로 완료되었습니다."; - - return ApiResponse.onSuccess(response); - } -} \ No newline at end of file diff --git a/src/main/java/com/example/umc10th/domain/mission/converter/MissionConverter.java b/src/main/java/com/example/umc10th/domain/mission/converter/MissionConverter.java deleted file mode 100644 index 336f76a..0000000 --- a/src/main/java/com/example/umc10th/domain/mission/converter/MissionConverter.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.mission.converter; - -public class MissionConverter { -} diff --git a/src/main/java/com/example/umc10th/domain/mission/dto/MissionReqDTO.java b/src/main/java/com/example/umc10th/domain/mission/dto/MissionReqDTO.java deleted file mode 100644 index e023c24..0000000 --- a/src/main/java/com/example/umc10th/domain/mission/dto/MissionReqDTO.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.example.umc10th.domain.mission.dto; - -public class MissionReqDTO { - - public static class CompleteDTO { - public Long missionId; - } - -} diff --git a/src/main/java/com/example/umc10th/domain/mission/dto/MissionResDTO.java b/src/main/java/com/example/umc10th/domain/mission/dto/MissionResDTO.java deleted file mode 100644 index ea72ca4..0000000 --- a/src/main/java/com/example/umc10th/domain/mission/dto/MissionResDTO.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.example.umc10th.domain.mission.dto; - -import java.util.List; - -public class MissionResDTO { - - public static class MissionListDTO { - public List content; - public Integer page; - public Integer size; - public Boolean hasNext; - } - - public static class MissionDTO { - public Long missionId; - public String marketName; - public Integer point; - public String status; - } - - public static class CompleteDTO { - public Long missionId; - public String message; - } -} diff --git a/src/main/java/com/example/umc10th/domain/mission/entity/Market.java b/src/main/java/com/example/umc10th/domain/mission/entity/Market.java deleted file mode 100644 index e70fc9a..0000000 --- a/src/main/java/com/example/umc10th/domain/mission/entity/Market.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.example.umc10th.domain.mission.entity; - -import jakarta.persistence.Entity; -import jakarta.persistence.*; - -@Entity -public class Market { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long id; - -} diff --git a/src/main/java/com/example/umc10th/domain/mission/entity/Mission.java b/src/main/java/com/example/umc10th/domain/mission/entity/Mission.java deleted file mode 100644 index 17bbc63..0000000 --- a/src/main/java/com/example/umc10th/domain/mission/entity/Mission.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.example.umc10th.domain.mission.entity; - -import jakarta.persistence.Entity; -import jakarta.persistence.*; - -@Entity -public class Mission { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long id; - -} diff --git a/src/main/java/com/example/umc10th/domain/mission/entity/Region.java b/src/main/java/com/example/umc10th/domain/mission/entity/Region.java deleted file mode 100644 index 97b4404..0000000 --- a/src/main/java/com/example/umc10th/domain/mission/entity/Region.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.example.umc10th.domain.mission.entity; - -import jakarta.persistence.Entity; -import jakarta.persistence.*; - -@Entity -public class Region { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long id; - -} diff --git a/src/main/java/com/example/umc10th/domain/mission/entity/mapping/Particiopate.java b/src/main/java/com/example/umc10th/domain/mission/entity/mapping/Particiopate.java deleted file mode 100644 index 821c13b..0000000 --- a/src/main/java/com/example/umc10th/domain/mission/entity/mapping/Particiopate.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.mission.entity.mapping; - -public class Particiopate { -} diff --git a/src/main/java/com/example/umc10th/domain/mission/enums/MissionStatus.java b/src/main/java/com/example/umc10th/domain/mission/enums/MissionStatus.java deleted file mode 100644 index ed7ebba..0000000 --- a/src/main/java/com/example/umc10th/domain/mission/enums/MissionStatus.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.mission.enums; - -public enum MissionStatus { -} diff --git a/src/main/java/com/example/umc10th/domain/mission/enums/ParticipatedStatus.java b/src/main/java/com/example/umc10th/domain/mission/enums/ParticipatedStatus.java deleted file mode 100644 index bf497db..0000000 --- a/src/main/java/com/example/umc10th/domain/mission/enums/ParticipatedStatus.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.mission.enums; - -public enum ParticipatedStatus { -} diff --git a/src/main/java/com/example/umc10th/domain/mission/exception/MissionExcepotion.java b/src/main/java/com/example/umc10th/domain/mission/exception/MissionExcepotion.java deleted file mode 100644 index 499fc5f..0000000 --- a/src/main/java/com/example/umc10th/domain/mission/exception/MissionExcepotion.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.mission.exception; - -public class MissionExcepotion { -} diff --git a/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionErrorCode.java b/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionErrorCode.java deleted file mode 100644 index ee79191..0000000 --- a/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionErrorCode.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.mission.exception.code; - -public enum MissionErrorCode { -} diff --git a/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionSuccessCode.java b/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionSuccessCode.java deleted file mode 100644 index a30e4ea..0000000 --- a/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionSuccessCode.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.mission.exception.code; - -public enum MissionSuccessCode { -} diff --git a/src/main/java/com/example/umc10th/domain/mission/repository/MissionRepository.java b/src/main/java/com/example/umc10th/domain/mission/repository/MissionRepository.java deleted file mode 100644 index 71f7528..0000000 --- a/src/main/java/com/example/umc10th/domain/mission/repository/MissionRepository.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.example.umc10th.domain.mission.repository; - -import com.example.umc10th.domain.mission.entity.Mission; -import org.springframework.data.jpa.repository.JpaRepository; - -public interface MissionRepository extends JpaRepository { -} diff --git a/src/main/java/com/example/umc10th/domain/mission/service/MissionService.java b/src/main/java/com/example/umc10th/domain/mission/service/MissionService.java deleted file mode 100644 index d69ce74..0000000 --- a/src/main/java/com/example/umc10th/domain/mission/service/MissionService.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.mission.service; - -public class MissionService { -} diff --git a/src/main/java/com/example/umc10th/domain/review/controller/ReviewController.java b/src/main/java/com/example/umc10th/domain/review/controller/ReviewController.java deleted file mode 100644 index b236403..0000000 --- a/src/main/java/com/example/umc10th/domain/review/controller/ReviewController.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.example.umc10th.domain.review.controller; - -import com.example.umc10th.domain.review.dto.ReviewReqDTO; -import com.example.umc10th.domain.review.dto.ReviewResDTO; -import com.example.umc10th.global.apiPayload.ApiResponse; -import lombok.RequiredArgsConstructor; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@RequestMapping("/api/review") -@RequiredArgsConstructor -public class ReviewController { - - @PostMapping - public ApiResponse createReview( - @RequestBody ReviewReqDTO.CreateReviewDTO request - ) { - return ApiResponse.onSuccess(null); - } -} \ No newline at end of file diff --git a/src/main/java/com/example/umc10th/domain/review/converter/ReviewConverter.java b/src/main/java/com/example/umc10th/domain/review/converter/ReviewConverter.java deleted file mode 100644 index c2fd181..0000000 --- a/src/main/java/com/example/umc10th/domain/review/converter/ReviewConverter.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.review.converter; - -public class ReviewConverter { -} diff --git a/src/main/java/com/example/umc10th/domain/review/dto/ReviewReqDTO.java b/src/main/java/com/example/umc10th/domain/review/dto/ReviewReqDTO.java deleted file mode 100644 index fba8311..0000000 --- a/src/main/java/com/example/umc10th/domain/review/dto/ReviewReqDTO.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.example.umc10th.domain.review.dto; - -public class ReviewReqDTO { - - public static class CreateReviewDTO { - public Long marketId; - public Long regionId; - public Integer stars; - public String content; - } -} \ No newline at end of file diff --git a/src/main/java/com/example/umc10th/domain/review/dto/ReviewResDTO.java b/src/main/java/com/example/umc10th/domain/review/dto/ReviewResDTO.java deleted file mode 100644 index 2d05bdd..0000000 --- a/src/main/java/com/example/umc10th/domain/review/dto/ReviewResDTO.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.example.umc10th.domain.review.dto; - -public class ReviewResDTO { - - public static class CreateReviewDTO { - public Long reviewId; - public String message; - } -} \ No newline at end of file diff --git a/src/main/java/com/example/umc10th/domain/review/entity/Review.java b/src/main/java/com/example/umc10th/domain/review/entity/Review.java deleted file mode 100644 index 01d803f..0000000 --- a/src/main/java/com/example/umc10th/domain/review/entity/Review.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.example.umc10th.domain.review.entity; - -import jakarta.persistence.*; -import java.time.LocalDateTime; - -@Entity -@Table(name = "review") -public class Review { - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long id; - - private Long userId; - - private Long marketId; - - private Integer stars; - - private String content; - - private LocalDateTime createdAt; -} \ No newline at end of file diff --git a/src/main/java/com/example/umc10th/domain/review/exception/ReviewException.java b/src/main/java/com/example/umc10th/domain/review/exception/ReviewException.java deleted file mode 100644 index e91c51a..0000000 --- a/src/main/java/com/example/umc10th/domain/review/exception/ReviewException.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.review.exception; - -public class ReviewException { -} diff --git a/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewErrorCode.java b/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewErrorCode.java deleted file mode 100644 index 0d1fcb3..0000000 --- a/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewErrorCode.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.review.exception.code; - -public enum ReviewErrorCode { -} diff --git a/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewSuccessCode.java b/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewSuccessCode.java deleted file mode 100644 index fb2f221..0000000 --- a/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewSuccessCode.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.review.exception.code; - -public enum ReviewSuccessCode { -} diff --git a/src/main/java/com/example/umc10th/domain/review/repository/ReviewRepository.java b/src/main/java/com/example/umc10th/domain/review/repository/ReviewRepository.java deleted file mode 100644 index d754a10..0000000 --- a/src/main/java/com/example/umc10th/domain/review/repository/ReviewRepository.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.example.umc10th.domain.review.repository; - -import com.example.umc10th.domain.review.entity.Review; -import org.springframework.data.jpa.repository.JpaRepository; - -public interface ReviewRepository extends JpaRepository { -} diff --git a/src/main/java/com/example/umc10th/domain/review/service/ReviewService.java b/src/main/java/com/example/umc10th/domain/review/service/ReviewService.java deleted file mode 100644 index c60e350..0000000 --- a/src/main/java/com/example/umc10th/domain/review/service/ReviewService.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.review.service; - -public class ReviewService { -} diff --git a/src/main/java/com/example/umc10th/global/apiPayload/ApiResponse.java b/src/main/java/com/example/umc10th/global/apiPayload/ApiResponse.java deleted file mode 100644 index 571fc2f..0000000 --- a/src/main/java/com/example/umc10th/global/apiPayload/ApiResponse.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.example.umc10th.global.apiPayload; - -import com.example.umc10th.global.apiPayload.code.BaseErrorCode; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import lombok.AllArgsConstructor; -import lombok.Getter; - -@Getter -@AllArgsConstructor -@JsonPropertyOrder({"isSuccess", "code", "message", "result"}) -public class ApiResponse { - - @JsonProperty("isSuccess") - private final boolean isSuccess; - - @JsonProperty("code") - private final String code; - - @JsonProperty("message") - private final String message; - - @JsonProperty("result") - private final T result; - - // 성공한 경우 (result 포함) - public static ApiResponse onSuccess(T result) { - return new ApiResponse<>(true, "COMMON200", "성공입니다.", result); - } - - // 실패한 경우 (result 포함) - public static ApiResponse onFailure(BaseErrorCode code, T result ) { - return new ApiResponse<>(false, code.getCode(), code.getMessage(), result); - } -} diff --git a/src/main/java/com/example/umc10th/global/apiPayload/code/BaseErrorCode.java b/src/main/java/com/example/umc10th/global/apiPayload/code/BaseErrorCode.java deleted file mode 100644 index 137c8ac..0000000 --- a/src/main/java/com/example/umc10th/global/apiPayload/code/BaseErrorCode.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.example.umc10th.global.apiPayload.code; - -import org.springframework.http.HttpStatus; - -public interface BaseErrorCode { - HttpStatus getStatus(); - String getCode(); - String getMessage(); -} diff --git a/src/main/java/com/example/umc10th/global/apiPayload/code/BaseSuccessCode.java b/src/main/java/com/example/umc10th/global/apiPayload/code/BaseSuccessCode.java deleted file mode 100644 index 5ebb033..0000000 --- a/src/main/java/com/example/umc10th/global/apiPayload/code/BaseSuccessCode.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.example.umc10th.global.apiPayload.code; - -import org.springframework.http.HttpStatus; - -public interface BaseSuccessCode { - - HttpStatus getStatus(); - String getCode(); - String getMessage(); -} diff --git a/src/main/java/com/example/umc10th/global/apiPayload/code/GeneralErrorCode.java b/src/main/java/com/example/umc10th/global/apiPayload/code/GeneralErrorCode.java deleted file mode 100644 index 6f77729..0000000 --- a/src/main/java/com/example/umc10th/global/apiPayload/code/GeneralErrorCode.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.example.umc10th.global.apiPayload.code; - -import lombok.Getter; -import lombok.RequiredArgsConstructor; -import org.springframework.http.HttpStatus; - -@Getter -@RequiredArgsConstructor -public enum GeneralErrorCode implements BaseErrorCode { - - BAD_REQUEST(HttpStatus.BAD_REQUEST, - "COMMON400_1", - "잘못된 요청입니다."), - UNAUTHORIZED(HttpStatus.UNAUTHORIZED, - "COMMON401_1", - "인증되지 않았습니다."), - FORBIDDEN(HttpStatus.FORBIDDEN, - "COMMON403_1", - "접근이 금지되었습니다."), - NOT_FOUND(HttpStatus.NOT_FOUND, - "Common404_1", - "해당 리소스를 찾을 수 없습니다." - ), - ; - - private final HttpStatus status; - private final String code; - private final String message; - -} - - - - diff --git a/src/main/java/com/example/umc10th/global/apiPayload/code/GeneralSuccessCode.java b/src/main/java/com/example/umc10th/global/apiPayload/code/GeneralSuccessCode.java deleted file mode 100644 index 4e0d00f..0000000 --- a/src/main/java/com/example/umc10th/global/apiPayload/code/GeneralSuccessCode.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.example.umc10th.global.apiPayload.code; - -import lombok.Getter; -import lombok.RequiredArgsConstructor; -import org.springframework.http.HttpStatus; - -@Getter@RequiredArgsConstructor -public enum GeneralSuccessCode implements BaseErrorCode{ - - OK(HttpStatus.OK, - "COMMON200_1", - "성공적으로 요청을 처리했습니다."), - - ; - - private final HttpStatus status; - private final String code; - private final String message; -} diff --git a/src/main/java/com/example/umc10th/global/config/SwaggerConfig.java b/src/main/java/com/example/umc10th/global/config/SwaggerConfig.java deleted file mode 100644 index efda88f..0000000 --- a/src/main/java/com/example/umc10th/global/config/SwaggerConfig.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.example.umc10th.global.config; - -import io.swagger.v3.oas.models.info.Info; -import io.swagger.v3.oas.models.servers.Server; -import io.swagger.v3.oas.models.Components; -import io.swagger.v3.oas.models.OpenAPI; -import io.swagger.v3.oas.models.security.SecurityRequirement; -import io.swagger.v3.oas.models.security.SecurityScheme; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -@Configuration -public class SwaggerConfig { - - @Bean - public OpenAPI swagger() { - Info info = new Info().title("UMC10th").description("10기 Swagger").version("0.0.1"); - - // JWT 토큰 헤더 방식 - String securityScheme = "JWT TOKEN"; - SecurityRequirement securityRequirement = new SecurityRequirement().addList(securityScheme); - - Components components = new Components() - .addSecuritySchemes(securityScheme, new SecurityScheme() - .name(securityScheme) - .type(SecurityScheme.Type.HTTP) - .scheme("Bearer") - .bearerFormat("JWT")); - - return new OpenAPI() - .info(info) - .addServersItem(new Server().url("/")) - .addSecurityItem(securityRequirement) - .components(components); - } -} diff --git a/src/test/java/com/example/umc10th/Umc10thApplicationTests.java b/src/test/java/com/example/umc10th/Umc10thApplicationTests.java deleted file mode 100644 index b43a96f..0000000 --- a/src/test/java/com/example/umc10th/Umc10thApplicationTests.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.example.umc10th; - -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.context.SpringBootTest; - -@SpringBootTest -class Umc10thApplicationTests { - - @Test - void contextLoads() { - } - -} From ed5a953fa573a0fb7e85ca6fdce6d8041bac505f Mon Sep 17 00:00:00 2001 From: yujining3827 Date: Mon, 4 May 2026 15:43:45 +0900 Subject: [PATCH 27/46] =?UTF-8?q?fix=20:=20=ED=94=84=EB=A1=9C=EC=A0=9D?= =?UTF-8?q?=ED=8A=B8=20=EA=B5=AC=EC=A1=B0=20luke/umc10th=20=EB=A1=9C=20?= =?UTF-8?q?=EB=B0=94=EA=BF=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- luke/{ => umc10th}/.gitattributes | 0 .../.github/ISSUE_TEMPLATE/mission_template.md | 0 luke/{ => umc10th}/.github/PULL_REQUEST_TEMPLATE.md | 0 luke/{ => umc10th}/.gitignore | 8 ++++---- luke/{ => umc10th}/README.md | 0 luke/{ => umc10th}/build.gradle | 0 .../{ => umc10th}/gradle/wrapper/gradle-wrapper.jar | Bin .../gradle/wrapper/gradle-wrapper.properties | 0 luke/{ => umc10th}/gradlew | 0 luke/{ => umc10th}/gradlew.bat | 0 luke/{ => umc10th}/settings.gradle | 0 11 files changed, 4 insertions(+), 4 deletions(-) rename luke/{ => umc10th}/.gitattributes (100%) rename luke/{ => umc10th}/.github/ISSUE_TEMPLATE/mission_template.md (100%) rename luke/{ => umc10th}/.github/PULL_REQUEST_TEMPLATE.md (100%) rename luke/{ => umc10th}/.gitignore (89%) rename luke/{ => umc10th}/README.md (100%) rename luke/{ => umc10th}/build.gradle (100%) rename luke/{ => umc10th}/gradle/wrapper/gradle-wrapper.jar (100%) rename luke/{ => umc10th}/gradle/wrapper/gradle-wrapper.properties (100%) rename luke/{ => umc10th}/gradlew (100%) rename luke/{ => umc10th}/gradlew.bat (100%) rename luke/{ => umc10th}/settings.gradle (100%) diff --git a/luke/.gitattributes b/luke/umc10th/.gitattributes similarity index 100% rename from luke/.gitattributes rename to luke/umc10th/.gitattributes diff --git a/luke/.github/ISSUE_TEMPLATE/mission_template.md b/luke/umc10th/.github/ISSUE_TEMPLATE/mission_template.md similarity index 100% rename from luke/.github/ISSUE_TEMPLATE/mission_template.md rename to luke/umc10th/.github/ISSUE_TEMPLATE/mission_template.md diff --git a/luke/.github/PULL_REQUEST_TEMPLATE.md b/luke/umc10th/.github/PULL_REQUEST_TEMPLATE.md similarity index 100% rename from luke/.github/PULL_REQUEST_TEMPLATE.md rename to luke/umc10th/.github/PULL_REQUEST_TEMPLATE.md diff --git a/luke/.gitignore b/luke/umc10th/.gitignore similarity index 89% rename from luke/.gitignore rename to luke/umc10th/.gitignore index af0a9b5..5ef831a 100644 --- a/luke/.gitignore +++ b/luke/umc10th/.gitignore @@ -1,6 +1,6 @@ HELP.md -.gradle -build/ +umc10th/.gradle +umc10th/build/ !luke/gradle/wrapper/gradle-wrapper.jar !**/src/main/**/build/ !**/src/test/**/build/ @@ -22,11 +22,11 @@ bin/ !**/src/test/**/bin/ ### IntelliJ IDEA ### -.idea +umc10th/.idea *.iws *.iml *.ipr -out/ +umc10th/out/ !**/src/main/**/out/ !**/src/test/**/out/ diff --git a/luke/README.md b/luke/umc10th/README.md similarity index 100% rename from luke/README.md rename to luke/umc10th/README.md diff --git a/luke/build.gradle b/luke/umc10th/build.gradle similarity index 100% rename from luke/build.gradle rename to luke/umc10th/build.gradle diff --git a/luke/gradle/wrapper/gradle-wrapper.jar b/luke/umc10th/gradle/wrapper/gradle-wrapper.jar similarity index 100% rename from luke/gradle/wrapper/gradle-wrapper.jar rename to luke/umc10th/gradle/wrapper/gradle-wrapper.jar diff --git a/luke/gradle/wrapper/gradle-wrapper.properties b/luke/umc10th/gradle/wrapper/gradle-wrapper.properties similarity index 100% rename from luke/gradle/wrapper/gradle-wrapper.properties rename to luke/umc10th/gradle/wrapper/gradle-wrapper.properties diff --git a/luke/gradlew b/luke/umc10th/gradlew similarity index 100% rename from luke/gradlew rename to luke/umc10th/gradlew diff --git a/luke/gradlew.bat b/luke/umc10th/gradlew.bat similarity index 100% rename from luke/gradlew.bat rename to luke/umc10th/gradlew.bat diff --git a/luke/settings.gradle b/luke/umc10th/settings.gradle similarity index 100% rename from luke/settings.gradle rename to luke/umc10th/settings.gradle From f996beecc3189193931ac0e6f1fe60323d304abc Mon Sep 17 00:00:00 2001 From: yujining3827 Date: Mon, 4 May 2026 15:45:51 +0900 Subject: [PATCH 28/46] Delete: luke/src directory --- luke/src/.DS_Store | Bin 6148 -> 0 bytes luke/src/main/.DS_Store | Bin 6148 -> 0 bytes luke/src/main/java/.DS_Store | Bin 6148 -> 0 bytes luke/src/main/java/com/.DS_Store | Bin 6148 -> 0 bytes luke/src/main/java/com/example/.DS_Store | Bin 6148 -> 0 bytes .../main/java/com/example/umc10th/.DS_Store | Bin 6148 -> 0 bytes .../example/umc10th/Umc10thApplication.java | 13 ----- .../member/controller/MemberController.java | 33 ------------ .../member/converter/MemberConverter.java | 4 -- .../domain/member/dto/MemberReqDTO.java | 47 ------------------ .../domain/member/dto/MemberResDTO.java | 18 ------- .../domain/member/entity/FoodCategory.java | 15 ------ .../umc10th/domain/member/entity/Member.java | 13 ----- .../domain/member/entity/Notification.java | 12 ----- .../umc10th/domain/member/entity/Term.java | 12 ----- .../member/entity/mapping/Preference.java | 4 -- .../entity/mapping/UserTermAgreement.java | 4 -- .../umc10th/domain/member/enums/Gender.java | 4 -- .../member/enums/NotifictationType.java | 4 -- .../umc10th/domain/member/enums/UserType.java | 4 -- .../member/exception/MemberExpection.java | 4 -- .../exception/code/MemberErrorCode.java | 4 -- .../exception/code/MemberSuccessCode.java | 4 -- .../member/repository/MemberRepository.java | 7 --- .../domain/member/service/MemberService.java | 4 -- .../mission/controller/MissionController.java | 43 ---------------- .../mission/converter/MissionConverter.java | 4 -- .../domain/mission/dto/MissionReqDTO.java | 9 ---- .../domain/mission/dto/MissionResDTO.java | 25 ---------- .../umc10th/domain/mission/entity/Market.java | 12 ----- .../domain/mission/entity/Mission.java | 12 ----- .../umc10th/domain/mission/entity/Region.java | 12 ----- .../mission/entity/mapping/Particiopate.java | 4 -- .../domain/mission/enums/MissionStatus.java | 4 -- .../mission/enums/ParticipatedStatus.java | 4 -- .../mission/exception/MissionExcepotion.java | 4 -- .../exception/code/MissionErrorCode.java | 4 -- .../exception/code/MissionSuccessCode.java | 4 -- .../mission/repository/MissionRepository.java | 7 --- .../mission/service/MissionService.java | 4 -- .../review/controller/ReviewController.java | 21 -------- .../review/converter/ReviewConverter.java | 4 -- .../domain/review/dto/ReviewReqDTO.java | 9 ---- .../domain/review/dto/ReviewResDTO.java | 9 ---- .../umc10th/domain/review/entity/Review.java | 23 --------- .../review/exception/ReviewException.java | 4 -- .../exception/code/ReviewErrorCode.java | 4 -- .../exception/code/ReviewSuccessCode.java | 4 -- .../review/repository/ReviewRepository.java | 7 --- .../domain/review/service/ReviewService.java | 4 -- .../java/com/example/umc10th/global/.DS_Store | Bin 6148 -> 0 bytes .../global/apiPayload/ApiResponse.java | 35 ------------- .../global/apiPayload/code/BaseErrorCode.java | 9 ---- .../apiPayload/code/BaseSuccessCode.java | 10 ---- .../apiPayload/code/GeneralErrorCode.java | 34 ------------- .../apiPayload/code/GeneralSuccessCode.java | 19 ------- .../umc10th/global/config/SwaggerConfig.java | 36 -------------- .../umc10th/Umc10thApplicationTests.java | 13 ----- 58 files changed, 607 deletions(-) delete mode 100644 luke/src/.DS_Store delete mode 100644 luke/src/main/.DS_Store delete mode 100644 luke/src/main/java/.DS_Store delete mode 100644 luke/src/main/java/com/.DS_Store delete mode 100644 luke/src/main/java/com/example/.DS_Store delete mode 100644 luke/src/main/java/com/example/umc10th/.DS_Store delete mode 100644 luke/src/main/java/com/example/umc10th/Umc10thApplication.java delete mode 100644 luke/src/main/java/com/example/umc10th/domain/member/controller/MemberController.java delete mode 100644 luke/src/main/java/com/example/umc10th/domain/member/converter/MemberConverter.java delete mode 100644 luke/src/main/java/com/example/umc10th/domain/member/dto/MemberReqDTO.java delete mode 100644 luke/src/main/java/com/example/umc10th/domain/member/dto/MemberResDTO.java delete mode 100644 luke/src/main/java/com/example/umc10th/domain/member/entity/FoodCategory.java delete mode 100644 luke/src/main/java/com/example/umc10th/domain/member/entity/Member.java delete mode 100644 luke/src/main/java/com/example/umc10th/domain/member/entity/Notification.java delete mode 100644 luke/src/main/java/com/example/umc10th/domain/member/entity/Term.java delete mode 100644 luke/src/main/java/com/example/umc10th/domain/member/entity/mapping/Preference.java delete mode 100644 luke/src/main/java/com/example/umc10th/domain/member/entity/mapping/UserTermAgreement.java delete mode 100644 luke/src/main/java/com/example/umc10th/domain/member/enums/Gender.java delete mode 100644 luke/src/main/java/com/example/umc10th/domain/member/enums/NotifictationType.java delete mode 100644 luke/src/main/java/com/example/umc10th/domain/member/enums/UserType.java delete mode 100644 luke/src/main/java/com/example/umc10th/domain/member/exception/MemberExpection.java delete mode 100644 luke/src/main/java/com/example/umc10th/domain/member/exception/code/MemberErrorCode.java delete mode 100644 luke/src/main/java/com/example/umc10th/domain/member/exception/code/MemberSuccessCode.java delete mode 100644 luke/src/main/java/com/example/umc10th/domain/member/repository/MemberRepository.java delete mode 100644 luke/src/main/java/com/example/umc10th/domain/member/service/MemberService.java delete mode 100644 luke/src/main/java/com/example/umc10th/domain/mission/controller/MissionController.java delete mode 100644 luke/src/main/java/com/example/umc10th/domain/mission/converter/MissionConverter.java delete mode 100644 luke/src/main/java/com/example/umc10th/domain/mission/dto/MissionReqDTO.java delete mode 100644 luke/src/main/java/com/example/umc10th/domain/mission/dto/MissionResDTO.java delete mode 100644 luke/src/main/java/com/example/umc10th/domain/mission/entity/Market.java delete mode 100644 luke/src/main/java/com/example/umc10th/domain/mission/entity/Mission.java delete mode 100644 luke/src/main/java/com/example/umc10th/domain/mission/entity/Region.java delete mode 100644 luke/src/main/java/com/example/umc10th/domain/mission/entity/mapping/Particiopate.java delete mode 100644 luke/src/main/java/com/example/umc10th/domain/mission/enums/MissionStatus.java delete mode 100644 luke/src/main/java/com/example/umc10th/domain/mission/enums/ParticipatedStatus.java delete mode 100644 luke/src/main/java/com/example/umc10th/domain/mission/exception/MissionExcepotion.java delete mode 100644 luke/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionErrorCode.java delete mode 100644 luke/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionSuccessCode.java delete mode 100644 luke/src/main/java/com/example/umc10th/domain/mission/repository/MissionRepository.java delete mode 100644 luke/src/main/java/com/example/umc10th/domain/mission/service/MissionService.java delete mode 100644 luke/src/main/java/com/example/umc10th/domain/review/controller/ReviewController.java delete mode 100644 luke/src/main/java/com/example/umc10th/domain/review/converter/ReviewConverter.java delete mode 100644 luke/src/main/java/com/example/umc10th/domain/review/dto/ReviewReqDTO.java delete mode 100644 luke/src/main/java/com/example/umc10th/domain/review/dto/ReviewResDTO.java delete mode 100644 luke/src/main/java/com/example/umc10th/domain/review/entity/Review.java delete mode 100644 luke/src/main/java/com/example/umc10th/domain/review/exception/ReviewException.java delete mode 100644 luke/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewErrorCode.java delete mode 100644 luke/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewSuccessCode.java delete mode 100644 luke/src/main/java/com/example/umc10th/domain/review/repository/ReviewRepository.java delete mode 100644 luke/src/main/java/com/example/umc10th/domain/review/service/ReviewService.java delete mode 100644 luke/src/main/java/com/example/umc10th/global/.DS_Store delete mode 100644 luke/src/main/java/com/example/umc10th/global/apiPayload/ApiResponse.java delete mode 100644 luke/src/main/java/com/example/umc10th/global/apiPayload/code/BaseErrorCode.java delete mode 100644 luke/src/main/java/com/example/umc10th/global/apiPayload/code/BaseSuccessCode.java delete mode 100644 luke/src/main/java/com/example/umc10th/global/apiPayload/code/GeneralErrorCode.java delete mode 100644 luke/src/main/java/com/example/umc10th/global/apiPayload/code/GeneralSuccessCode.java delete mode 100644 luke/src/main/java/com/example/umc10th/global/config/SwaggerConfig.java delete mode 100644 luke/src/test/java/com/example/umc10th/Umc10thApplicationTests.java diff --git a/luke/src/.DS_Store b/luke/src/.DS_Store deleted file mode 100644 index 72209c61e308084df6609297a2c1cd712558d757..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKJ5Iwu5S<||EK!h>(pSh0Ok_$#5s3m(KnMb)7)K)XJ_@&?C<9DG$x`FO^{`fFZC$+XhyF?R{ seZ34|7;7m8YAMD<&XGeUjjv=3zIN;lC5o)8J1{;3RFLRGfnQMI6M2tE{Qv*} diff --git a/luke/src/main/.DS_Store b/luke/src/main/.DS_Store deleted file mode 100644 index 4146a8fbb9650803488828672054def1d3b28a11..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKJ5Iwu5S>X}IHCz1rLPc)1DMEkP~`&oArQoJ1PZl}f|4)gcl?}qyhOy~&2mIEB%%~5*c)Kz5b=w)q-Pd!vaGSX98DHgxo$9Jci1@ciNH_2ne?FL(OaSB>9Be~MHZ&@Eli z9aXf!Y$5Zw0)Fg{YS!{}_W6GN7Ha8OudIHm+8r6y7yb`YqKh-&3^)UO$pCt`NP3{? zqch+PI0IV-BX83 ze{S)$qNWpvow1JX%yvTIusiHo2q(@JeRKw#ftZ25UJj-IpZ`CMWlus%A+k)v%LAl&N4Css-3Y|ZTs#psXG-gZY5jk zrQ6?*`S;J?nXYf!&A#6tQomf>JiWiYUX8Q66WPPv=+tTr8jT820V+TRsKCEg06p8R zJ`dzd1*iZO_)@^W4+U=6Bo2Z8>A>P60MLHp-SF(Q1h7~D*dz{th`=bE0ayj-*i>2qcaR_ue;!X$hN5FKUQGwr3 F-~)EXDA)i1 diff --git a/luke/src/main/java/com/.DS_Store b/luke/src/main/java/com/.DS_Store deleted file mode 100644 index ce85bf720f79d274cc7f61911acf760a56551516..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKOHRWu5S^iwh{UEFB$mEHZxE`mWYr6l(h4LJB^#tJeH8A%A=q*e?!bGV0TDF| zHXwv%B>Rm$A3INq?GX`OJ?@qw3lXW%h)QKbI6Y}PapyTuOO8QW*|&Gg^=&_q=r2xj z@29etgWO0bU-sV(w%v#4V~?(Hnr+)}VW|%1*H3S+FPBqZyKi_6_hidgn{ALLBp3(= zf`MQl82C{JaA#AhGsEbEfnXpQ_+)_RLqa3gj@hsr9q3940OT{e2z1sGj7g5QV>W~Z zq819YQ1uc+EgbX7{c6W-XyKw>e5kMdQM_nb9r;sn7p)DW4+esPF#|IjE_nZ6;g^{# z^2Z@D3I>9Kf5w2$n{~6oNBP})^m)8%6WRuiLcdG}0)6xdz<}q-MKPK^QHNjcm<^eQ S^CcV@4}n5Rbiu$cFz^nQrZ3b0 diff --git a/luke/src/main/java/com/example/.DS_Store b/luke/src/main/java/com/example/.DS_Store deleted file mode 100644 index c07c7eea14bde050a2a8997c83814d1ff36af343..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKOHRWu5S^iwh{UE#mOcWxL8!tSq+XzED^ZC?>7w2H23&zVa0s?sggfw_XFx>F zf(;0v8OeTQ&&SS_VtYhH=f_PgG82&sji^*cgwvy@Gk2Z>wdA;xgKT&A^Ia} z-21s4rIWSP@@4yW6L?*O%)tugy2S_FJ;$t4)?j6A}yr z1HnKr5Dfe%1Guv()rDd7!9Xw&416-c^C6)T8^>%|jt+FC1OW0GT?9I73C1MH#xWbh z0#OSETBv%7p%#w$){wQ9wtd9JtxQjN1(FX&;z>tB74QIUnZ}7{E z7Wu=F7zG2tz&~R^r|qJhj;J^4J|wFzyBMxkG(0)akw1Yp2(`5-4 diff --git a/luke/src/main/java/com/example/umc10th/.DS_Store b/luke/src/main/java/com/example/umc10th/.DS_Store deleted file mode 100644 index fd4428bf4c6a782fe001026c036a2fae4a4fb9da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKu}Z{15S@*OL~O3K5w;Y&1F>F@*on>kfX2WnB<33X{S-gJzpz#C3+x3Od*AE~ zXL7m2PUM(@*|(XU*-YMsOooWu^r4y%jfp6SGG==i)(Ee&4kS|xFS@kH9o^US$?T?W z76WfH{6_}(>~^W5mKwUI!TB9utgbh0QIvIC!k)jrUp{`kJf97Hs$YE;x1IMSd%_mT zV@@?PDUnIte~*q1SJ%6FoK&A*r*E1^XOE`+$zzjGFAs{Ghlw#@3>X93&H!pQOTI5? zqcLC%7z0ZN`1|0Yj6pF9rcVck)B*rUFekyBdkK#5ia{|7Vg=$P6eyuiTMQ@RuzU3j zicwI)$!YW9^v+H@6qoLf{e5yL7X)oI28@9|13Pj#=K6oWx&QA6*_AP13~UtxZdA;Q zDIQ5{>)_$I)_Uj_l!g7G;4%c0REputrT74v1a{98U{H*Lut4lbAkkohG4Q7hd;{E# BP signup( - @RequestBody MemberReqDTO.SignupDTO request - ) { - - MemberResDTO.SignupDTO response = new MemberResDTO.SignupDTO(); - response.userId = 1L; - response.message = "회원가입이 완료되었습니다."; - - return ApiResponse.onSuccess(response); - } - - @GetMapping("/home/my") - public ApiResponse getMyPage() { - - MemberResDTO.MyPageDTO response = new MemberResDTO.MyPageDTO(); - return ApiResponse.onSuccess(response); - } -} diff --git a/luke/src/main/java/com/example/umc10th/domain/member/converter/MemberConverter.java b/luke/src/main/java/com/example/umc10th/domain/member/converter/MemberConverter.java deleted file mode 100644 index 2c6188e..0000000 --- a/luke/src/main/java/com/example/umc10th/domain/member/converter/MemberConverter.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.member.converter; - -public class MemberConverter { -} diff --git a/luke/src/main/java/com/example/umc10th/domain/member/dto/MemberReqDTO.java b/luke/src/main/java/com/example/umc10th/domain/member/dto/MemberReqDTO.java deleted file mode 100644 index aaf0394..0000000 --- a/luke/src/main/java/com/example/umc10th/domain/member/dto/MemberReqDTO.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.example.umc10th.domain.member.dto; - -import com.example.umc10th.domain.member.enums.Gender; -import com.example.umc10th.domain.member.enums.UserType; -import io.swagger.v3.oas.annotations.media.Schema; -import jakarta.validation.constraints.*; - -import java.time.LocalDate; - -public class MemberReqDTO { - - public static class SignupDTO { - @Schema(description = "이름", example = "홍길동") - @NotBlank - public String name; - - @Schema(description = "성별", example = "MALE") - @NotNull - public Gender gender; - - @Schema(description = "생년월일", example = "2003-01-01") - @NotNull - public LocalDate birth; - - @Schema(description = "기본 주소") - @NotBlank - public String addressLine1; - - @Schema(description = "상세 주소") - public String addressLine2; - - @Schema(description = "이메일", example = "test@example.com") - @Email - @NotBlank - public String email; - - @Schema(description = "전화번호", example = "01012345678") - @NotBlank - public String phoneNumber; - - @Schema(description = "유저 타입") - @NotNull - public UserType type; - - } - -} diff --git a/luke/src/main/java/com/example/umc10th/domain/member/dto/MemberResDTO.java b/luke/src/main/java/com/example/umc10th/domain/member/dto/MemberResDTO.java deleted file mode 100644 index 08c456e..0000000 --- a/luke/src/main/java/com/example/umc10th/domain/member/dto/MemberResDTO.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.example.umc10th.domain.member.dto; - -public class MemberResDTO { - - public static class SignupDTO { - public Long userId; - public String message; - } - - public static class MyPageDTO { - public String nickname; - public String email; - public String phoneNumber; - public Integer phoneNumberStatus; - public Integer userPoint; - } - -} diff --git a/luke/src/main/java/com/example/umc10th/domain/member/entity/FoodCategory.java b/luke/src/main/java/com/example/umc10th/domain/member/entity/FoodCategory.java deleted file mode 100644 index cc619fb..0000000 --- a/luke/src/main/java/com/example/umc10th/domain/member/entity/FoodCategory.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.example.umc10th.domain.member.entity; - -import jakarta.persistence.Entity; -import jakarta.persistence.GeneratedValue; -import jakarta.persistence.GenerationType; -import jakarta.persistence.Id; - -@Entity -public class FoodCategory { - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long id; - -} diff --git a/luke/src/main/java/com/example/umc10th/domain/member/entity/Member.java b/luke/src/main/java/com/example/umc10th/domain/member/entity/Member.java deleted file mode 100644 index c3b4d77..0000000 --- a/luke/src/main/java/com/example/umc10th/domain/member/entity/Member.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.example.umc10th.domain.member.entity; - -import jakarta.persistence.Entity; -import jakarta.persistence.*; - -@Entity -public class Member { - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long id; - -} diff --git a/luke/src/main/java/com/example/umc10th/domain/member/entity/Notification.java b/luke/src/main/java/com/example/umc10th/domain/member/entity/Notification.java deleted file mode 100644 index cc91398..0000000 --- a/luke/src/main/java/com/example/umc10th/domain/member/entity/Notification.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.example.umc10th.domain.member.entity; - -import jakarta.persistence.Entity; -import jakarta.persistence.*; - -@Entity -public class Notification { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long id; - -} diff --git a/luke/src/main/java/com/example/umc10th/domain/member/entity/Term.java b/luke/src/main/java/com/example/umc10th/domain/member/entity/Term.java deleted file mode 100644 index 3a76c88..0000000 --- a/luke/src/main/java/com/example/umc10th/domain/member/entity/Term.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.example.umc10th.domain.member.entity; - -import jakarta.persistence.Entity; -import jakarta.persistence.*; - -@Entity -public class Term { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long id; - -} diff --git a/luke/src/main/java/com/example/umc10th/domain/member/entity/mapping/Preference.java b/luke/src/main/java/com/example/umc10th/domain/member/entity/mapping/Preference.java deleted file mode 100644 index 07736e4..0000000 --- a/luke/src/main/java/com/example/umc10th/domain/member/entity/mapping/Preference.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.member.entity.mapping; - -public class Preference { -} diff --git a/luke/src/main/java/com/example/umc10th/domain/member/entity/mapping/UserTermAgreement.java b/luke/src/main/java/com/example/umc10th/domain/member/entity/mapping/UserTermAgreement.java deleted file mode 100644 index 94df8e7..0000000 --- a/luke/src/main/java/com/example/umc10th/domain/member/entity/mapping/UserTermAgreement.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.member.entity.mapping; - -public class UserTermAgreement { -} diff --git a/luke/src/main/java/com/example/umc10th/domain/member/enums/Gender.java b/luke/src/main/java/com/example/umc10th/domain/member/enums/Gender.java deleted file mode 100644 index 729751d..0000000 --- a/luke/src/main/java/com/example/umc10th/domain/member/enums/Gender.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.member.enums; - -public enum Gender { -} diff --git a/luke/src/main/java/com/example/umc10th/domain/member/enums/NotifictationType.java b/luke/src/main/java/com/example/umc10th/domain/member/enums/NotifictationType.java deleted file mode 100644 index 3bfa309..0000000 --- a/luke/src/main/java/com/example/umc10th/domain/member/enums/NotifictationType.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.member.enums; - -public enum NotifictationType { -} diff --git a/luke/src/main/java/com/example/umc10th/domain/member/enums/UserType.java b/luke/src/main/java/com/example/umc10th/domain/member/enums/UserType.java deleted file mode 100644 index 9f0d674..0000000 --- a/luke/src/main/java/com/example/umc10th/domain/member/enums/UserType.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.member.enums; - -public enum UserType { -} diff --git a/luke/src/main/java/com/example/umc10th/domain/member/exception/MemberExpection.java b/luke/src/main/java/com/example/umc10th/domain/member/exception/MemberExpection.java deleted file mode 100644 index cfc9d67..0000000 --- a/luke/src/main/java/com/example/umc10th/domain/member/exception/MemberExpection.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.member.exception; - -public class MemberExpection { -} diff --git a/luke/src/main/java/com/example/umc10th/domain/member/exception/code/MemberErrorCode.java b/luke/src/main/java/com/example/umc10th/domain/member/exception/code/MemberErrorCode.java deleted file mode 100644 index 135bd22..0000000 --- a/luke/src/main/java/com/example/umc10th/domain/member/exception/code/MemberErrorCode.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.member.exception.code; - -public enum MemberErrorCode { -} diff --git a/luke/src/main/java/com/example/umc10th/domain/member/exception/code/MemberSuccessCode.java b/luke/src/main/java/com/example/umc10th/domain/member/exception/code/MemberSuccessCode.java deleted file mode 100644 index f42e80f..0000000 --- a/luke/src/main/java/com/example/umc10th/domain/member/exception/code/MemberSuccessCode.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.member.exception.code; - -public enum MemberSuccessCode { -} diff --git a/luke/src/main/java/com/example/umc10th/domain/member/repository/MemberRepository.java b/luke/src/main/java/com/example/umc10th/domain/member/repository/MemberRepository.java deleted file mode 100644 index e878bbb..0000000 --- a/luke/src/main/java/com/example/umc10th/domain/member/repository/MemberRepository.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.example.umc10th.domain.member.repository; - -import com.example.umc10th.domain.member.entity.Member; -import org.springframework.data.jpa.repository.JpaRepository; - -public interface MemberRepository extends JpaRepository { -} \ No newline at end of file diff --git a/luke/src/main/java/com/example/umc10th/domain/member/service/MemberService.java b/luke/src/main/java/com/example/umc10th/domain/member/service/MemberService.java deleted file mode 100644 index 8d867f2..0000000 --- a/luke/src/main/java/com/example/umc10th/domain/member/service/MemberService.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.member.service; - -public class MemberService { -} diff --git a/luke/src/main/java/com/example/umc10th/domain/mission/controller/MissionController.java b/luke/src/main/java/com/example/umc10th/domain/mission/controller/MissionController.java deleted file mode 100644 index 3d13bcc..0000000 --- a/luke/src/main/java/com/example/umc10th/domain/mission/controller/MissionController.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.example.umc10th.domain.mission.controller; - -import com.example.umc10th.domain.mission.dto.MissionReqDTO; -import com.example.umc10th.domain.mission.dto.MissionResDTO; -import com.example.umc10th.global.apiPayload.ApiResponse; -import lombok.RequiredArgsConstructor; -import org.springframework.web.bind.annotation.*; -import java.util.List; - -@RestController -@RequestMapping("/mission") -@RequiredArgsConstructor -public class MissionController { - - @GetMapping - public ApiResponse getMissionList( - @RequestParam(name = "regionName", required = false) String regionName, - @RequestParam(name = "status") String status, - @RequestParam(name = "page") Integer page, - @RequestParam(name = "size") Integer size - ) { - - MissionResDTO.MissionListDTO response = new MissionResDTO.MissionListDTO(); - response.content = List.of(); - response.page = page; - response.size = size; - response.hasNext = false; - - return ApiResponse.onSuccess(response); - } - - @PostMapping("/completed") - public ApiResponse completeMission( - @RequestBody MissionReqDTO.CompleteDTO request - ) { - - MissionResDTO.CompleteDTO response = new MissionResDTO.CompleteDTO(); - response.missionId = request.missionId; - response.message = "미션이 정상적으로 완료되었습니다."; - - return ApiResponse.onSuccess(response); - } -} \ No newline at end of file diff --git a/luke/src/main/java/com/example/umc10th/domain/mission/converter/MissionConverter.java b/luke/src/main/java/com/example/umc10th/domain/mission/converter/MissionConverter.java deleted file mode 100644 index 336f76a..0000000 --- a/luke/src/main/java/com/example/umc10th/domain/mission/converter/MissionConverter.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.mission.converter; - -public class MissionConverter { -} diff --git a/luke/src/main/java/com/example/umc10th/domain/mission/dto/MissionReqDTO.java b/luke/src/main/java/com/example/umc10th/domain/mission/dto/MissionReqDTO.java deleted file mode 100644 index e023c24..0000000 --- a/luke/src/main/java/com/example/umc10th/domain/mission/dto/MissionReqDTO.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.example.umc10th.domain.mission.dto; - -public class MissionReqDTO { - - public static class CompleteDTO { - public Long missionId; - } - -} diff --git a/luke/src/main/java/com/example/umc10th/domain/mission/dto/MissionResDTO.java b/luke/src/main/java/com/example/umc10th/domain/mission/dto/MissionResDTO.java deleted file mode 100644 index ea72ca4..0000000 --- a/luke/src/main/java/com/example/umc10th/domain/mission/dto/MissionResDTO.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.example.umc10th.domain.mission.dto; - -import java.util.List; - -public class MissionResDTO { - - public static class MissionListDTO { - public List content; - public Integer page; - public Integer size; - public Boolean hasNext; - } - - public static class MissionDTO { - public Long missionId; - public String marketName; - public Integer point; - public String status; - } - - public static class CompleteDTO { - public Long missionId; - public String message; - } -} diff --git a/luke/src/main/java/com/example/umc10th/domain/mission/entity/Market.java b/luke/src/main/java/com/example/umc10th/domain/mission/entity/Market.java deleted file mode 100644 index e70fc9a..0000000 --- a/luke/src/main/java/com/example/umc10th/domain/mission/entity/Market.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.example.umc10th.domain.mission.entity; - -import jakarta.persistence.Entity; -import jakarta.persistence.*; - -@Entity -public class Market { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long id; - -} diff --git a/luke/src/main/java/com/example/umc10th/domain/mission/entity/Mission.java b/luke/src/main/java/com/example/umc10th/domain/mission/entity/Mission.java deleted file mode 100644 index 17bbc63..0000000 --- a/luke/src/main/java/com/example/umc10th/domain/mission/entity/Mission.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.example.umc10th.domain.mission.entity; - -import jakarta.persistence.Entity; -import jakarta.persistence.*; - -@Entity -public class Mission { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long id; - -} diff --git a/luke/src/main/java/com/example/umc10th/domain/mission/entity/Region.java b/luke/src/main/java/com/example/umc10th/domain/mission/entity/Region.java deleted file mode 100644 index 97b4404..0000000 --- a/luke/src/main/java/com/example/umc10th/domain/mission/entity/Region.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.example.umc10th.domain.mission.entity; - -import jakarta.persistence.Entity; -import jakarta.persistence.*; - -@Entity -public class Region { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long id; - -} diff --git a/luke/src/main/java/com/example/umc10th/domain/mission/entity/mapping/Particiopate.java b/luke/src/main/java/com/example/umc10th/domain/mission/entity/mapping/Particiopate.java deleted file mode 100644 index 821c13b..0000000 --- a/luke/src/main/java/com/example/umc10th/domain/mission/entity/mapping/Particiopate.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.mission.entity.mapping; - -public class Particiopate { -} diff --git a/luke/src/main/java/com/example/umc10th/domain/mission/enums/MissionStatus.java b/luke/src/main/java/com/example/umc10th/domain/mission/enums/MissionStatus.java deleted file mode 100644 index ed7ebba..0000000 --- a/luke/src/main/java/com/example/umc10th/domain/mission/enums/MissionStatus.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.mission.enums; - -public enum MissionStatus { -} diff --git a/luke/src/main/java/com/example/umc10th/domain/mission/enums/ParticipatedStatus.java b/luke/src/main/java/com/example/umc10th/domain/mission/enums/ParticipatedStatus.java deleted file mode 100644 index bf497db..0000000 --- a/luke/src/main/java/com/example/umc10th/domain/mission/enums/ParticipatedStatus.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.mission.enums; - -public enum ParticipatedStatus { -} diff --git a/luke/src/main/java/com/example/umc10th/domain/mission/exception/MissionExcepotion.java b/luke/src/main/java/com/example/umc10th/domain/mission/exception/MissionExcepotion.java deleted file mode 100644 index 499fc5f..0000000 --- a/luke/src/main/java/com/example/umc10th/domain/mission/exception/MissionExcepotion.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.mission.exception; - -public class MissionExcepotion { -} diff --git a/luke/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionErrorCode.java b/luke/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionErrorCode.java deleted file mode 100644 index ee79191..0000000 --- a/luke/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionErrorCode.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.mission.exception.code; - -public enum MissionErrorCode { -} diff --git a/luke/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionSuccessCode.java b/luke/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionSuccessCode.java deleted file mode 100644 index a30e4ea..0000000 --- a/luke/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionSuccessCode.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.mission.exception.code; - -public enum MissionSuccessCode { -} diff --git a/luke/src/main/java/com/example/umc10th/domain/mission/repository/MissionRepository.java b/luke/src/main/java/com/example/umc10th/domain/mission/repository/MissionRepository.java deleted file mode 100644 index 71f7528..0000000 --- a/luke/src/main/java/com/example/umc10th/domain/mission/repository/MissionRepository.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.example.umc10th.domain.mission.repository; - -import com.example.umc10th.domain.mission.entity.Mission; -import org.springframework.data.jpa.repository.JpaRepository; - -public interface MissionRepository extends JpaRepository { -} diff --git a/luke/src/main/java/com/example/umc10th/domain/mission/service/MissionService.java b/luke/src/main/java/com/example/umc10th/domain/mission/service/MissionService.java deleted file mode 100644 index d69ce74..0000000 --- a/luke/src/main/java/com/example/umc10th/domain/mission/service/MissionService.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.mission.service; - -public class MissionService { -} diff --git a/luke/src/main/java/com/example/umc10th/domain/review/controller/ReviewController.java b/luke/src/main/java/com/example/umc10th/domain/review/controller/ReviewController.java deleted file mode 100644 index 64edbab..0000000 --- a/luke/src/main/java/com/example/umc10th/domain/review/controller/ReviewController.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.example.umc10th.domain.review.controller; - -import com.example.umc10th.domain.review.dto.ReviewReqDTO; -import com.example.umc10th.domain.review.dto.ReviewResDTO; -import com.example.umc10th.global.apiPayload.ApiResponse; -import lombok.RequiredArgsConstructor; -import org.springframework.web.bind.annotation.*; - -@RestController -@RequestMapping("/review") -@RequiredArgsConstructor -public class ReviewController { - - @PostMapping("/markets/{marketId}") - public ApiResponse createReview( - @PathVariable Long marketId, - @RequestBody ReviewReqDTO.CreateReviewDTO request - ) { - return ApiResponse.onSuccess(null); - } -} \ No newline at end of file diff --git a/luke/src/main/java/com/example/umc10th/domain/review/converter/ReviewConverter.java b/luke/src/main/java/com/example/umc10th/domain/review/converter/ReviewConverter.java deleted file mode 100644 index c2fd181..0000000 --- a/luke/src/main/java/com/example/umc10th/domain/review/converter/ReviewConverter.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.review.converter; - -public class ReviewConverter { -} diff --git a/luke/src/main/java/com/example/umc10th/domain/review/dto/ReviewReqDTO.java b/luke/src/main/java/com/example/umc10th/domain/review/dto/ReviewReqDTO.java deleted file mode 100644 index 582f639..0000000 --- a/luke/src/main/java/com/example/umc10th/domain/review/dto/ReviewReqDTO.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.example.umc10th.domain.review.dto; - -public class ReviewReqDTO { - - public static class CreateReviewDTO { - public Integer stars; - public String content; - } -} \ No newline at end of file diff --git a/luke/src/main/java/com/example/umc10th/domain/review/dto/ReviewResDTO.java b/luke/src/main/java/com/example/umc10th/domain/review/dto/ReviewResDTO.java deleted file mode 100644 index 2d05bdd..0000000 --- a/luke/src/main/java/com/example/umc10th/domain/review/dto/ReviewResDTO.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.example.umc10th.domain.review.dto; - -public class ReviewResDTO { - - public static class CreateReviewDTO { - public Long reviewId; - public String message; - } -} \ No newline at end of file diff --git a/luke/src/main/java/com/example/umc10th/domain/review/entity/Review.java b/luke/src/main/java/com/example/umc10th/domain/review/entity/Review.java deleted file mode 100644 index 01d803f..0000000 --- a/luke/src/main/java/com/example/umc10th/domain/review/entity/Review.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.example.umc10th.domain.review.entity; - -import jakarta.persistence.*; -import java.time.LocalDateTime; - -@Entity -@Table(name = "review") -public class Review { - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long id; - - private Long userId; - - private Long marketId; - - private Integer stars; - - private String content; - - private LocalDateTime createdAt; -} \ No newline at end of file diff --git a/luke/src/main/java/com/example/umc10th/domain/review/exception/ReviewException.java b/luke/src/main/java/com/example/umc10th/domain/review/exception/ReviewException.java deleted file mode 100644 index e91c51a..0000000 --- a/luke/src/main/java/com/example/umc10th/domain/review/exception/ReviewException.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.review.exception; - -public class ReviewException { -} diff --git a/luke/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewErrorCode.java b/luke/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewErrorCode.java deleted file mode 100644 index 0d1fcb3..0000000 --- a/luke/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewErrorCode.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.review.exception.code; - -public enum ReviewErrorCode { -} diff --git a/luke/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewSuccessCode.java b/luke/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewSuccessCode.java deleted file mode 100644 index fb2f221..0000000 --- a/luke/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewSuccessCode.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.review.exception.code; - -public enum ReviewSuccessCode { -} diff --git a/luke/src/main/java/com/example/umc10th/domain/review/repository/ReviewRepository.java b/luke/src/main/java/com/example/umc10th/domain/review/repository/ReviewRepository.java deleted file mode 100644 index d754a10..0000000 --- a/luke/src/main/java/com/example/umc10th/domain/review/repository/ReviewRepository.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.example.umc10th.domain.review.repository; - -import com.example.umc10th.domain.review.entity.Review; -import org.springframework.data.jpa.repository.JpaRepository; - -public interface ReviewRepository extends JpaRepository { -} diff --git a/luke/src/main/java/com/example/umc10th/domain/review/service/ReviewService.java b/luke/src/main/java/com/example/umc10th/domain/review/service/ReviewService.java deleted file mode 100644 index c60e350..0000000 --- a/luke/src/main/java/com/example/umc10th/domain/review/service/ReviewService.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.umc10th.domain.review.service; - -public class ReviewService { -} diff --git a/luke/src/main/java/com/example/umc10th/global/.DS_Store b/luke/src/main/java/com/example/umc10th/global/.DS_Store deleted file mode 100644 index aa09847f028c4e1c216a0dee80d42f356d280dce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKu};H447E!^p)4I4?-wHWDwHr&seAx!BMMSNvM{ja1Na06{)UwS@e54+1JCDE zXb6#*5LCA0dl#R5=e%pxM3o>$;ua?#b8j&Ajf<&mP~OeO|3Oit;m`KA(0T@;@;#28;n?;NLTV znk^C?C|YX_7z4&Y!+?Ar98@p~SS$KZ2O56`01jdHg1$c^0i76tNx)hW76@x7P(wLf zF<8T4cfl_SSSxBcv0oYUgq1nmP&k~>*m-y2MA2Gfz!+#Vu%nM-ssE?__y2Z~JsAVW zz*aH9!*rfb@k*h#c3w_ut%F`bMZ~XGY(miSr5L_aiVvY)V0Y31CIM?jSRi%~@HALs I4E!nsA4l?1MF0Q* diff --git a/luke/src/main/java/com/example/umc10th/global/apiPayload/ApiResponse.java b/luke/src/main/java/com/example/umc10th/global/apiPayload/ApiResponse.java deleted file mode 100644 index f34ca31..0000000 --- a/luke/src/main/java/com/example/umc10th/global/apiPayload/ApiResponse.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.example.umc10th.global.apiPayload; - -import com.example.umc10th.global.apiPayload.code.BaseErrorCode; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import lombok.AllArgsConstructor; -import lombok.Getter; - -@Getter -@AllArgsConstructor -@JsonPropertyOrder({"isSuccess", "code", "message", "result"}) -public class ApiResponse { - - @JsonProperty("isSuccess") - private final Boolean isSuccess; - - @JsonProperty("code") - private final String code; - - @JsonProperty("message") - private final String message; - - @JsonProperty("result") - private final T result; - - // 성공한 경우 (result 포함) - public static ApiResponse onSuccess(T result) { - return new ApiResponse<>(true, "COMMON200", "성공입니다.", result); - } - - // 실패한 경우 (result 포함) - public static ApiResponse onFailure(BaseErrorCode code, T result ) { - return new ApiResponse<>(false, code.getCode(), code.getMessage(), result); - } -} diff --git a/luke/src/main/java/com/example/umc10th/global/apiPayload/code/BaseErrorCode.java b/luke/src/main/java/com/example/umc10th/global/apiPayload/code/BaseErrorCode.java deleted file mode 100644 index 137c8ac..0000000 --- a/luke/src/main/java/com/example/umc10th/global/apiPayload/code/BaseErrorCode.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.example.umc10th.global.apiPayload.code; - -import org.springframework.http.HttpStatus; - -public interface BaseErrorCode { - HttpStatus getStatus(); - String getCode(); - String getMessage(); -} diff --git a/luke/src/main/java/com/example/umc10th/global/apiPayload/code/BaseSuccessCode.java b/luke/src/main/java/com/example/umc10th/global/apiPayload/code/BaseSuccessCode.java deleted file mode 100644 index 5ebb033..0000000 --- a/luke/src/main/java/com/example/umc10th/global/apiPayload/code/BaseSuccessCode.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.example.umc10th.global.apiPayload.code; - -import org.springframework.http.HttpStatus; - -public interface BaseSuccessCode { - - HttpStatus getStatus(); - String getCode(); - String getMessage(); -} diff --git a/luke/src/main/java/com/example/umc10th/global/apiPayload/code/GeneralErrorCode.java b/luke/src/main/java/com/example/umc10th/global/apiPayload/code/GeneralErrorCode.java deleted file mode 100644 index 6f77729..0000000 --- a/luke/src/main/java/com/example/umc10th/global/apiPayload/code/GeneralErrorCode.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.example.umc10th.global.apiPayload.code; - -import lombok.Getter; -import lombok.RequiredArgsConstructor; -import org.springframework.http.HttpStatus; - -@Getter -@RequiredArgsConstructor -public enum GeneralErrorCode implements BaseErrorCode { - - BAD_REQUEST(HttpStatus.BAD_REQUEST, - "COMMON400_1", - "잘못된 요청입니다."), - UNAUTHORIZED(HttpStatus.UNAUTHORIZED, - "COMMON401_1", - "인증되지 않았습니다."), - FORBIDDEN(HttpStatus.FORBIDDEN, - "COMMON403_1", - "접근이 금지되었습니다."), - NOT_FOUND(HttpStatus.NOT_FOUND, - "Common404_1", - "해당 리소스를 찾을 수 없습니다." - ), - ; - - private final HttpStatus status; - private final String code; - private final String message; - -} - - - - diff --git a/luke/src/main/java/com/example/umc10th/global/apiPayload/code/GeneralSuccessCode.java b/luke/src/main/java/com/example/umc10th/global/apiPayload/code/GeneralSuccessCode.java deleted file mode 100644 index 4e0d00f..0000000 --- a/luke/src/main/java/com/example/umc10th/global/apiPayload/code/GeneralSuccessCode.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.example.umc10th.global.apiPayload.code; - -import lombok.Getter; -import lombok.RequiredArgsConstructor; -import org.springframework.http.HttpStatus; - -@Getter@RequiredArgsConstructor -public enum GeneralSuccessCode implements BaseErrorCode{ - - OK(HttpStatus.OK, - "COMMON200_1", - "성공적으로 요청을 처리했습니다."), - - ; - - private final HttpStatus status; - private final String code; - private final String message; -} diff --git a/luke/src/main/java/com/example/umc10th/global/config/SwaggerConfig.java b/luke/src/main/java/com/example/umc10th/global/config/SwaggerConfig.java deleted file mode 100644 index efda88f..0000000 --- a/luke/src/main/java/com/example/umc10th/global/config/SwaggerConfig.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.example.umc10th.global.config; - -import io.swagger.v3.oas.models.info.Info; -import io.swagger.v3.oas.models.servers.Server; -import io.swagger.v3.oas.models.Components; -import io.swagger.v3.oas.models.OpenAPI; -import io.swagger.v3.oas.models.security.SecurityRequirement; -import io.swagger.v3.oas.models.security.SecurityScheme; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -@Configuration -public class SwaggerConfig { - - @Bean - public OpenAPI swagger() { - Info info = new Info().title("UMC10th").description("10기 Swagger").version("0.0.1"); - - // JWT 토큰 헤더 방식 - String securityScheme = "JWT TOKEN"; - SecurityRequirement securityRequirement = new SecurityRequirement().addList(securityScheme); - - Components components = new Components() - .addSecuritySchemes(securityScheme, new SecurityScheme() - .name(securityScheme) - .type(SecurityScheme.Type.HTTP) - .scheme("Bearer") - .bearerFormat("JWT")); - - return new OpenAPI() - .info(info) - .addServersItem(new Server().url("/")) - .addSecurityItem(securityRequirement) - .components(components); - } -} diff --git a/luke/src/test/java/com/example/umc10th/Umc10thApplicationTests.java b/luke/src/test/java/com/example/umc10th/Umc10thApplicationTests.java deleted file mode 100644 index b43a96f..0000000 --- a/luke/src/test/java/com/example/umc10th/Umc10thApplicationTests.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.example.umc10th; - -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.context.SpringBootTest; - -@SpringBootTest -class Umc10thApplicationTests { - - @Test - void contextLoads() { - } - -} From 76017bb1d0cf1fab39b2d84c422fbcefda1d19e0 Mon Sep 17 00:00:00 2001 From: yujining3827 Date: Wed, 6 May 2026 21:16:47 +0900 Subject: [PATCH 29/46] =?UTF-8?q?chore=20:=20.gitignore=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- luke/umc10th/.gitignore | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/luke/umc10th/.gitignore b/luke/umc10th/.gitignore index 5ef831a..82f6973 100644 --- a/luke/umc10th/.gitignore +++ b/luke/umc10th/.gitignore @@ -1,5 +1,5 @@ HELP.md -umc10th/.gradle +.gradle umc10th/build/ !luke/gradle/wrapper/gradle-wrapper.jar !**/src/main/**/build/ @@ -25,6 +25,7 @@ bin/ umc10th/.idea *.iws *.iml +.idea/ *.ipr umc10th/out/ !**/src/main/**/out/ @@ -39,3 +40,10 @@ umc10th/out/ ### VS Code ### .vscode/ + +### macOS ### +.DS_Store + +### Gradle ### +build/ +.gradle/ \ No newline at end of file From 9515afa5ab1435b06bb3b53dcccf700b15522548 Mon Sep 17 00:00:00 2001 From: yujining3827 Date: Wed, 6 May 2026 21:19:32 +0900 Subject: [PATCH 30/46] feat: add BaseEntity --- .../umc10th/global/entity/BaseEntity.java | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 luke/umc10th/src/main/java/com/example/umc10th/global/entity/BaseEntity.java diff --git a/luke/umc10th/src/main/java/com/example/umc10th/global/entity/BaseEntity.java b/luke/umc10th/src/main/java/com/example/umc10th/global/entity/BaseEntity.java new file mode 100644 index 0000000..f33c28e --- /dev/null +++ b/luke/umc10th/src/main/java/com/example/umc10th/global/entity/BaseEntity.java @@ -0,0 +1,28 @@ +package com.example.umc10th.global.entity; + +import jakarta.persistence.Column; +import jakarta.persistence.EntityListeners; +import jakarta.persistence.MappedSuperclass; +import lombok.Getter; +import org.springframework.data.annotation.CreatedDate; +import org.springframework.data.annotation.LastModifiedDate; +import org.springframework.data.jpa.domain.support.AuditingEntityListener; + +import java.time.LocalDateTime; + +@Getter +@MappedSuperclass +@EntityListeners(AuditingEntityListener.class) +public abstract class BaseEntity { + + @CreatedDate + @Column(name = "created_at", nullable = false) + private LocalDateTime createdAt; + + @LastModifiedDate + @Column(name = "updated_at", nullable = false) + private LocalDateTime updatedAt; + + @Column(name = "deleted_at") + private LocalDateTime deletedAt; +} \ No newline at end of file From 3ca3ce790b9d611da1e06ff6037cfd87e1de99ca Mon Sep 17 00:00:00 2001 From: yujining3827 Date: Wed, 6 May 2026 22:17:05 +0900 Subject: [PATCH 31/46] =?UTF-8?q?feat=20:=20/entity=20=EC=A0=9C=EC=9E=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../example/umc10th/Umc10thApplication.java | 13 ++++ .../member/controller/MemberController.java | 33 +++++++++ .../member/converter/MemberConverter.java | 4 ++ .../domain/member/dto/MemberReqDTO.java | 47 +++++++++++++ .../domain/member/dto/MemberResDTO.java | 18 +++++ .../domain/member/entity/FoodCategory.java | 25 +++++++ .../umc10th/domain/member/entity/Member.java | 69 +++++++++++++++++++ .../domain/member/entity/Notification.java | 31 +++++++++ .../umc10th/domain/member/entity/Term.java | 37 ++++++++++ .../member/entity/mapping/Preference.java | 29 ++++++++ .../entity/mapping/UserTermAgreement.java | 31 +++++++++ .../umc10th/domain/member/enums/Gender.java | 5 ++ .../member/enums/NotifictationType.java | 10 +++ .../umc10th/domain/member/enums/UserType.java | 11 +++ .../member/exception/MemberExpection.java | 4 ++ .../exception/code/MemberErrorCode.java | 4 ++ .../exception/code/MemberSuccessCode.java | 4 ++ .../member/repository/MemberRepository.java | 7 ++ .../domain/member/service/MemberService.java | 4 ++ .../mission/controller/MissionController.java | 43 ++++++++++++ .../mission/converter/MissionConverter.java | 4 ++ .../domain/mission/dto/MissionReqDTO.java | 9 +++ .../domain/mission/dto/MissionResDTO.java | 25 +++++++ .../umc10th/domain/mission/entity/Market.java | 31 +++++++++ .../domain/mission/entity/Mission.java | 36 ++++++++++ .../umc10th/domain/mission/entity/Region.java | 15 ++++ .../mission/entity/mapping/Participate.java | 31 +++++++++ .../domain/mission/enums/MissionStatus.java | 6 ++ .../mission/enums/ParticipatedStatus.java | 6 ++ .../mission/exception/MissionExcepotion.java | 4 ++ .../exception/code/MissionErrorCode.java | 4 ++ .../exception/code/MissionSuccessCode.java | 4 ++ .../mission/repository/MissionRepository.java | 7 ++ .../mission/service/MissionService.java | 4 ++ .../review/controller/ReviewController.java | 21 ++++++ .../review/converter/ReviewConverter.java | 4 ++ .../domain/review/dto/ReviewReqDTO.java | 9 +++ .../domain/review/dto/ReviewResDTO.java | 9 +++ .../umc10th/domain/review/entity/Review.java | 29 ++++++++ .../review/exception/ReviewException.java | 4 ++ .../exception/code/ReviewErrorCode.java | 4 ++ .../exception/code/ReviewSuccessCode.java | 4 ++ .../review/repository/ReviewRepository.java | 7 ++ .../domain/review/service/ReviewService.java | 4 ++ .../global/apiPayload/ApiResponse.java | 35 ++++++++++ .../global/apiPayload/code/BaseErrorCode.java | 9 +++ .../apiPayload/code/BaseSuccessCode.java | 10 +++ .../apiPayload/code/GeneralErrorCode.java | 34 +++++++++ .../apiPayload/code/GeneralSuccessCode.java | 19 +++++ .../umc10th/global/config/SwaggerConfig.java | 36 ++++++++++ .../umc10th/Umc10thApplicationTests.java | 13 ++++ 51 files changed, 866 insertions(+) create mode 100644 luke/umc10th/src/main/java/com/example/umc10th/Umc10thApplication.java create mode 100644 luke/umc10th/src/main/java/com/example/umc10th/domain/member/controller/MemberController.java create mode 100644 luke/umc10th/src/main/java/com/example/umc10th/domain/member/converter/MemberConverter.java create mode 100644 luke/umc10th/src/main/java/com/example/umc10th/domain/member/dto/MemberReqDTO.java create mode 100644 luke/umc10th/src/main/java/com/example/umc10th/domain/member/dto/MemberResDTO.java create mode 100644 luke/umc10th/src/main/java/com/example/umc10th/domain/member/entity/FoodCategory.java create mode 100644 luke/umc10th/src/main/java/com/example/umc10th/domain/member/entity/Member.java create mode 100644 luke/umc10th/src/main/java/com/example/umc10th/domain/member/entity/Notification.java create mode 100644 luke/umc10th/src/main/java/com/example/umc10th/domain/member/entity/Term.java create mode 100644 luke/umc10th/src/main/java/com/example/umc10th/domain/member/entity/mapping/Preference.java create mode 100644 luke/umc10th/src/main/java/com/example/umc10th/domain/member/entity/mapping/UserTermAgreement.java create mode 100644 luke/umc10th/src/main/java/com/example/umc10th/domain/member/enums/Gender.java create mode 100644 luke/umc10th/src/main/java/com/example/umc10th/domain/member/enums/NotifictationType.java create mode 100644 luke/umc10th/src/main/java/com/example/umc10th/domain/member/enums/UserType.java create mode 100644 luke/umc10th/src/main/java/com/example/umc10th/domain/member/exception/MemberExpection.java create mode 100644 luke/umc10th/src/main/java/com/example/umc10th/domain/member/exception/code/MemberErrorCode.java create mode 100644 luke/umc10th/src/main/java/com/example/umc10th/domain/member/exception/code/MemberSuccessCode.java create mode 100644 luke/umc10th/src/main/java/com/example/umc10th/domain/member/repository/MemberRepository.java create mode 100644 luke/umc10th/src/main/java/com/example/umc10th/domain/member/service/MemberService.java create mode 100644 luke/umc10th/src/main/java/com/example/umc10th/domain/mission/controller/MissionController.java create mode 100644 luke/umc10th/src/main/java/com/example/umc10th/domain/mission/converter/MissionConverter.java create mode 100644 luke/umc10th/src/main/java/com/example/umc10th/domain/mission/dto/MissionReqDTO.java create mode 100644 luke/umc10th/src/main/java/com/example/umc10th/domain/mission/dto/MissionResDTO.java create mode 100644 luke/umc10th/src/main/java/com/example/umc10th/domain/mission/entity/Market.java create mode 100644 luke/umc10th/src/main/java/com/example/umc10th/domain/mission/entity/Mission.java create mode 100644 luke/umc10th/src/main/java/com/example/umc10th/domain/mission/entity/Region.java create mode 100644 luke/umc10th/src/main/java/com/example/umc10th/domain/mission/entity/mapping/Participate.java create mode 100644 luke/umc10th/src/main/java/com/example/umc10th/domain/mission/enums/MissionStatus.java create mode 100644 luke/umc10th/src/main/java/com/example/umc10th/domain/mission/enums/ParticipatedStatus.java create mode 100644 luke/umc10th/src/main/java/com/example/umc10th/domain/mission/exception/MissionExcepotion.java create mode 100644 luke/umc10th/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionErrorCode.java create mode 100644 luke/umc10th/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionSuccessCode.java create mode 100644 luke/umc10th/src/main/java/com/example/umc10th/domain/mission/repository/MissionRepository.java create mode 100644 luke/umc10th/src/main/java/com/example/umc10th/domain/mission/service/MissionService.java create mode 100644 luke/umc10th/src/main/java/com/example/umc10th/domain/review/controller/ReviewController.java create mode 100644 luke/umc10th/src/main/java/com/example/umc10th/domain/review/converter/ReviewConverter.java create mode 100644 luke/umc10th/src/main/java/com/example/umc10th/domain/review/dto/ReviewReqDTO.java create mode 100644 luke/umc10th/src/main/java/com/example/umc10th/domain/review/dto/ReviewResDTO.java create mode 100644 luke/umc10th/src/main/java/com/example/umc10th/domain/review/entity/Review.java create mode 100644 luke/umc10th/src/main/java/com/example/umc10th/domain/review/exception/ReviewException.java create mode 100644 luke/umc10th/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewErrorCode.java create mode 100644 luke/umc10th/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewSuccessCode.java create mode 100644 luke/umc10th/src/main/java/com/example/umc10th/domain/review/repository/ReviewRepository.java create mode 100644 luke/umc10th/src/main/java/com/example/umc10th/domain/review/service/ReviewService.java create mode 100644 luke/umc10th/src/main/java/com/example/umc10th/global/apiPayload/ApiResponse.java create mode 100644 luke/umc10th/src/main/java/com/example/umc10th/global/apiPayload/code/BaseErrorCode.java create mode 100644 luke/umc10th/src/main/java/com/example/umc10th/global/apiPayload/code/BaseSuccessCode.java create mode 100644 luke/umc10th/src/main/java/com/example/umc10th/global/apiPayload/code/GeneralErrorCode.java create mode 100644 luke/umc10th/src/main/java/com/example/umc10th/global/apiPayload/code/GeneralSuccessCode.java create mode 100644 luke/umc10th/src/main/java/com/example/umc10th/global/config/SwaggerConfig.java create mode 100644 luke/umc10th/src/test/java/com/example/umc10th/Umc10thApplicationTests.java diff --git a/luke/umc10th/src/main/java/com/example/umc10th/Umc10thApplication.java b/luke/umc10th/src/main/java/com/example/umc10th/Umc10thApplication.java new file mode 100644 index 0000000..9983f43 --- /dev/null +++ b/luke/umc10th/src/main/java/com/example/umc10th/Umc10thApplication.java @@ -0,0 +1,13 @@ +package com.example.umc10th; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class Umc10thApplication { + + public static void main(String[] args) { + SpringApplication.run(Umc10thApplication.class, args); + } + +} diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/member/controller/MemberController.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/member/controller/MemberController.java new file mode 100644 index 0000000..c792142 --- /dev/null +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/member/controller/MemberController.java @@ -0,0 +1,33 @@ +package com.example.umc10th.domain.member.controller; + +import com.example.umc10th.domain.member.dto.MemberReqDTO; +import com.example.umc10th.domain.member.dto.MemberResDTO; +import com.example.umc10th.global.apiPayload.ApiResponse; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + + +@RestController +@RequestMapping("/members") +@RequiredArgsConstructor +public class MemberController { + + @PostMapping("/signup") + public ApiResponse signup( + @RequestBody MemberReqDTO.SignupDTO request + ) { + + MemberResDTO.SignupDTO response = new MemberResDTO.SignupDTO(); + response.userId = 1L; + response.message = "회원가입이 완료되었습니다."; + + return ApiResponse.onSuccess(response); + } + + @GetMapping("/home/my") + public ApiResponse getMyPage() { + + MemberResDTO.MyPageDTO response = new MemberResDTO.MyPageDTO(); + return ApiResponse.onSuccess(response); + } +} diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/member/converter/MemberConverter.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/member/converter/MemberConverter.java new file mode 100644 index 0000000..2c6188e --- /dev/null +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/member/converter/MemberConverter.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.member.converter; + +public class MemberConverter { +} diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/member/dto/MemberReqDTO.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/member/dto/MemberReqDTO.java new file mode 100644 index 0000000..aaf0394 --- /dev/null +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/member/dto/MemberReqDTO.java @@ -0,0 +1,47 @@ +package com.example.umc10th.domain.member.dto; + +import com.example.umc10th.domain.member.enums.Gender; +import com.example.umc10th.domain.member.enums.UserType; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.*; + +import java.time.LocalDate; + +public class MemberReqDTO { + + public static class SignupDTO { + @Schema(description = "이름", example = "홍길동") + @NotBlank + public String name; + + @Schema(description = "성별", example = "MALE") + @NotNull + public Gender gender; + + @Schema(description = "생년월일", example = "2003-01-01") + @NotNull + public LocalDate birth; + + @Schema(description = "기본 주소") + @NotBlank + public String addressLine1; + + @Schema(description = "상세 주소") + public String addressLine2; + + @Schema(description = "이메일", example = "test@example.com") + @Email + @NotBlank + public String email; + + @Schema(description = "전화번호", example = "01012345678") + @NotBlank + public String phoneNumber; + + @Schema(description = "유저 타입") + @NotNull + public UserType type; + + } + +} diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/member/dto/MemberResDTO.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/member/dto/MemberResDTO.java new file mode 100644 index 0000000..08c456e --- /dev/null +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/member/dto/MemberResDTO.java @@ -0,0 +1,18 @@ +package com.example.umc10th.domain.member.dto; + +public class MemberResDTO { + + public static class SignupDTO { + public Long userId; + public String message; + } + + public static class MyPageDTO { + public String nickname; + public String email; + public String phoneNumber; + public Integer phoneNumberStatus; + public Integer userPoint; + } + +} diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/member/entity/FoodCategory.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/member/entity/FoodCategory.java new file mode 100644 index 0000000..a1aceef --- /dev/null +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/member/entity/FoodCategory.java @@ -0,0 +1,25 @@ +package com.example.umc10th.domain.member.entity; + +import com.example.umc10th.domain.member.entity.mapping.Preference; +import com.example.umc10th.global.entity.BaseEntity; +import jakarta.persistence.*; +import lombok.AccessLevel; +import lombok.Getter; +import lombok.NoArgsConstructor; + +import java.util.ArrayList; +import java.util.List; + +@Entity +@Getter +@NoArgsConstructor(access = AccessLevel.PROTECTED) +public class FoodCategory extends BaseEntity { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @OneToMany(mappedBy = "foodCategory") + private List preferenceList = new ArrayList<>(); + +} diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/member/entity/Member.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/member/entity/Member.java new file mode 100644 index 0000000..4eb233e --- /dev/null +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/member/entity/Member.java @@ -0,0 +1,69 @@ +package com.example.umc10th.domain.member.entity; + +import com.example.umc10th.domain.member.entity.mapping.Preference; +import com.example.umc10th.domain.member.entity.mapping.UserTermAgreement; +import com.example.umc10th.domain.member.enums.Gender; +import com.example.umc10th.domain.member.enums.UserType; +import com.example.umc10th.domain.mission.entity.mapping.Participate; +import com.example.umc10th.domain.review.entity.Review; +import com.example.umc10th.global.entity.BaseEntity; +import jakarta.persistence.Entity; +import jakarta.persistence.*; +import lombok.AccessLevel; +import lombok.Getter; +import lombok.NoArgsConstructor; + +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.List; + +@Entity +@Table(name = "user") +@Getter +@NoArgsConstructor(access = AccessLevel.PROTECTED) +public class Member extends BaseEntity { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Enumerated(EnumType.STRING) + private UserType userType; + + private String name; + + @Enumerated(EnumType.STRING) + private Gender gender; + + private LocalDate birth; + + @Column(name = "address_line_1") + private String addressLine1; + + @Column(name = "address_line_2") + private String addressLine2; + + private String email; + + @Column(name = "phone_number") + private String phoneNumber; + + @Column(name = "phone_number_status") + private Boolean phoneNumberStatus; + + @Column(name = "user_point") + private Integer userPoint; + + @OneToMany(mappedBy = "member") + private List reviewList = new ArrayList<>(); + + @OneToMany(mappedBy = "member") + private List participateList = new ArrayList<>(); + + @OneToMany(mappedBy = "member") + private List preferenceList = new ArrayList<>(); + + @OneToMany(mappedBy = "member") + private List userTermAgreementList = new ArrayList<>(); + +} diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/member/entity/Notification.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/member/entity/Notification.java new file mode 100644 index 0000000..d7b065e --- /dev/null +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/member/entity/Notification.java @@ -0,0 +1,31 @@ +package com.example.umc10th.domain.member.entity; + +import com.example.umc10th.domain.member.enums.Gender; +import com.example.umc10th.domain.member.enums.NotifictationType; +import com.example.umc10th.global.entity.BaseEntity; +import jakarta.persistence.Entity; +import jakarta.persistence.*; + +@Entity +public class Notification extends BaseEntity { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + private String title; + + private String detail; + + @Column(name = "notification_type") + @Enumerated(EnumType.STRING) + private NotifictationType notifictationType; + + @Column(name = "is_read") + private Boolean isRead; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "member_id") + private Member member; + +} diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/member/entity/Term.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/member/entity/Term.java new file mode 100644 index 0000000..57a0ecc --- /dev/null +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/member/entity/Term.java @@ -0,0 +1,37 @@ +package com.example.umc10th.domain.member.entity; + +import com.example.umc10th.domain.member.entity.mapping.UserTermAgreement; +import com.example.umc10th.global.entity.BaseEntity; +import jakarta.persistence.Entity; +import jakarta.persistence.*; +import lombok.AccessLevel; +import lombok.Getter; +import lombok.NoArgsConstructor; + +import java.util.ArrayList; +import java.util.List; + +@Entity +@Getter +@NoArgsConstructor(access = AccessLevel.PROTECTED) +public class Term extends BaseEntity { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + private String title; + + private String content; + + @Column(name = "is_required") + private Boolean isRequired; + + private String version; + + @Column(name = "is_active") + private Boolean isActive; + + @OneToMany(mappedBy = "term") + private List userTermAgreementList = new ArrayList<>(); + +} diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/member/entity/mapping/Preference.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/member/entity/mapping/Preference.java new file mode 100644 index 0000000..aa8fe03 --- /dev/null +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/member/entity/mapping/Preference.java @@ -0,0 +1,29 @@ +package com.example.umc10th.domain.member.entity.mapping; + +import com.example.umc10th.domain.member.entity.FoodCategory; +import com.example.umc10th.domain.member.entity.Member; +import com.example.umc10th.domain.mission.entity.Market; +import com.example.umc10th.global.entity.BaseEntity; +import jakarta.persistence.*; +import lombok.AccessLevel; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Entity +@Getter +@NoArgsConstructor(access = AccessLevel.PROTECTED) +public class Preference extends BaseEntity { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "foodCategory_id") + private FoodCategory foodCategory; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "member_id") + private Member member; + +} diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/member/entity/mapping/UserTermAgreement.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/member/entity/mapping/UserTermAgreement.java new file mode 100644 index 0000000..0a3d78a --- /dev/null +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/member/entity/mapping/UserTermAgreement.java @@ -0,0 +1,31 @@ +package com.example.umc10th.domain.member.entity.mapping; + +import com.example.umc10th.domain.member.entity.Member; +import com.example.umc10th.domain.member.entity.Term; +import com.example.umc10th.global.entity.BaseEntity; +import jakarta.persistence.*; +import lombok.AccessLevel; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Entity +@Getter +@NoArgsConstructor(access = AccessLevel.PROTECTED) +public class UserTermAgreement extends BaseEntity { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Column(name = "is_agreed") + private Boolean isAgreed; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "member_id") + private Member member; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "term_id") + private Term term; + +} diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/member/enums/Gender.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/member/enums/Gender.java new file mode 100644 index 0000000..072ea2b --- /dev/null +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/member/enums/Gender.java @@ -0,0 +1,5 @@ +package com.example.umc10th.domain.member.enums; + +public enum Gender { + MALE, FEMALE +} diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/member/enums/NotifictationType.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/member/enums/NotifictationType.java new file mode 100644 index 0000000..802d42b --- /dev/null +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/member/enums/NotifictationType.java @@ -0,0 +1,10 @@ +package com.example.umc10th.domain.member.enums; + +public enum NotifictationType { + + COMMENT, + MISSION, + REVIEW, + EVENT + +} diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/member/enums/UserType.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/member/enums/UserType.java new file mode 100644 index 0000000..0d1a9c6 --- /dev/null +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/member/enums/UserType.java @@ -0,0 +1,11 @@ +package com.example.umc10th.domain.member.enums; + +public enum UserType { + + DEFAULT, + KAKAO, + NAVER, + APPLE, + GOOGLE + +} diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/member/exception/MemberExpection.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/member/exception/MemberExpection.java new file mode 100644 index 0000000..cfc9d67 --- /dev/null +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/member/exception/MemberExpection.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.member.exception; + +public class MemberExpection { +} diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/member/exception/code/MemberErrorCode.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/member/exception/code/MemberErrorCode.java new file mode 100644 index 0000000..135bd22 --- /dev/null +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/member/exception/code/MemberErrorCode.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.member.exception.code; + +public enum MemberErrorCode { +} diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/member/exception/code/MemberSuccessCode.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/member/exception/code/MemberSuccessCode.java new file mode 100644 index 0000000..f42e80f --- /dev/null +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/member/exception/code/MemberSuccessCode.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.member.exception.code; + +public enum MemberSuccessCode { +} diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/member/repository/MemberRepository.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/member/repository/MemberRepository.java new file mode 100644 index 0000000..e878bbb --- /dev/null +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/member/repository/MemberRepository.java @@ -0,0 +1,7 @@ +package com.example.umc10th.domain.member.repository; + +import com.example.umc10th.domain.member.entity.Member; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface MemberRepository extends JpaRepository { +} \ No newline at end of file diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/member/service/MemberService.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/member/service/MemberService.java new file mode 100644 index 0000000..8d867f2 --- /dev/null +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/member/service/MemberService.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.member.service; + +public class MemberService { +} diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/controller/MissionController.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/controller/MissionController.java new file mode 100644 index 0000000..3d13bcc --- /dev/null +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/controller/MissionController.java @@ -0,0 +1,43 @@ +package com.example.umc10th.domain.mission.controller; + +import com.example.umc10th.domain.mission.dto.MissionReqDTO; +import com.example.umc10th.domain.mission.dto.MissionResDTO; +import com.example.umc10th.global.apiPayload.ApiResponse; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; +import java.util.List; + +@RestController +@RequestMapping("/mission") +@RequiredArgsConstructor +public class MissionController { + + @GetMapping + public ApiResponse getMissionList( + @RequestParam(name = "regionName", required = false) String regionName, + @RequestParam(name = "status") String status, + @RequestParam(name = "page") Integer page, + @RequestParam(name = "size") Integer size + ) { + + MissionResDTO.MissionListDTO response = new MissionResDTO.MissionListDTO(); + response.content = List.of(); + response.page = page; + response.size = size; + response.hasNext = false; + + return ApiResponse.onSuccess(response); + } + + @PostMapping("/completed") + public ApiResponse completeMission( + @RequestBody MissionReqDTO.CompleteDTO request + ) { + + MissionResDTO.CompleteDTO response = new MissionResDTO.CompleteDTO(); + response.missionId = request.missionId; + response.message = "미션이 정상적으로 완료되었습니다."; + + return ApiResponse.onSuccess(response); + } +} \ No newline at end of file diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/converter/MissionConverter.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/converter/MissionConverter.java new file mode 100644 index 0000000..336f76a --- /dev/null +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/converter/MissionConverter.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.mission.converter; + +public class MissionConverter { +} diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/dto/MissionReqDTO.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/dto/MissionReqDTO.java new file mode 100644 index 0000000..e023c24 --- /dev/null +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/dto/MissionReqDTO.java @@ -0,0 +1,9 @@ +package com.example.umc10th.domain.mission.dto; + +public class MissionReqDTO { + + public static class CompleteDTO { + public Long missionId; + } + +} diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/dto/MissionResDTO.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/dto/MissionResDTO.java new file mode 100644 index 0000000..ea72ca4 --- /dev/null +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/dto/MissionResDTO.java @@ -0,0 +1,25 @@ +package com.example.umc10th.domain.mission.dto; + +import java.util.List; + +public class MissionResDTO { + + public static class MissionListDTO { + public List content; + public Integer page; + public Integer size; + public Boolean hasNext; + } + + public static class MissionDTO { + public Long missionId; + public String marketName; + public Integer point; + public String status; + } + + public static class CompleteDTO { + public Long missionId; + public String message; + } +} diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/entity/Market.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/entity/Market.java new file mode 100644 index 0000000..1395ea7 --- /dev/null +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/entity/Market.java @@ -0,0 +1,31 @@ +package com.example.umc10th.domain.mission.entity; + +import com.example.umc10th.global.entity.BaseEntity; +import jakarta.persistence.Entity; +import jakarta.persistence.*; + +import java.util.*; + +@Entity +public class Market extends BaseEntity { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + private String name; + + @Column(name = "address_line_1") + private String addressLine1; + + @Column(name = "address_line_2") + private String addressLine2; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "region_id") + private Region region; + + @OneToMany(mappedBy = "market") + private List missionList = new ArrayList<>(); + +} diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/entity/Mission.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/entity/Mission.java new file mode 100644 index 0000000..a22c3b4 --- /dev/null +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/entity/Mission.java @@ -0,0 +1,36 @@ +package com.example.umc10th.domain.mission.entity; + +import com.example.umc10th.domain.mission.entity.mapping.Participate; +import com.example.umc10th.domain.mission.enums.MissionStatus; +import com.example.umc10th.global.entity.BaseEntity; +import jakarta.persistence.Entity; +import jakarta.persistence.*; + +import java.time.LocalDateTime; +import java.util.*; + + +@Entity +public class Mission extends BaseEntity { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + private String content; + + private Integer point; + + @Column(name = "end_date") + private LocalDateTime endDate; + + @Column(name = "mission_status") + private MissionStatus missionStatus; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "market_id") + private Market market; + + @OneToMany(mappedBy = "mission") + private List participateList = new ArrayList<>(); + +} diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/entity/Region.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/entity/Region.java new file mode 100644 index 0000000..ed42b34 --- /dev/null +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/entity/Region.java @@ -0,0 +1,15 @@ +package com.example.umc10th.domain.mission.entity; + +import com.example.umc10th.global.entity.BaseEntity; +import jakarta.persistence.Entity; +import jakarta.persistence.*; + +@Entity +public class Region extends BaseEntity { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + private String name; + +} diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/entity/mapping/Participate.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/entity/mapping/Participate.java new file mode 100644 index 0000000..1da73f1 --- /dev/null +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/entity/mapping/Participate.java @@ -0,0 +1,31 @@ +package com.example.umc10th.domain.mission.entity.mapping; + +import com.example.umc10th.domain.member.entity.Member; +import com.example.umc10th.domain.mission.entity.Mission; +import com.example.umc10th.domain.mission.enums.ParticipatedStatus; +import com.example.umc10th.global.entity.BaseEntity; +import jakarta.persistence.*; +import lombok.AccessLevel; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Entity +@Getter +@NoArgsConstructor(access = AccessLevel.PROTECTED) +public class Participate extends BaseEntity { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Enumerated(EnumType.STRING) + private ParticipatedStatus status; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "member_id") + private Member member; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "mission_id") + private Mission mission; +} diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/enums/MissionStatus.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/enums/MissionStatus.java new file mode 100644 index 0000000..6a17f20 --- /dev/null +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/enums/MissionStatus.java @@ -0,0 +1,6 @@ +package com.example.umc10th.domain.mission.enums; + +public enum MissionStatus { + IN_PROGRESS, + EXPIRED +} diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/enums/ParticipatedStatus.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/enums/ParticipatedStatus.java new file mode 100644 index 0000000..5bbe507 --- /dev/null +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/enums/ParticipatedStatus.java @@ -0,0 +1,6 @@ +package com.example.umc10th.domain.mission.enums; + +public enum ParticipatedStatus { + CHALLERGING, + PARTICIPATED +} diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/exception/MissionExcepotion.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/exception/MissionExcepotion.java new file mode 100644 index 0000000..499fc5f --- /dev/null +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/exception/MissionExcepotion.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.mission.exception; + +public class MissionExcepotion { +} diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionErrorCode.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionErrorCode.java new file mode 100644 index 0000000..ee79191 --- /dev/null +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionErrorCode.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.mission.exception.code; + +public enum MissionErrorCode { +} diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionSuccessCode.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionSuccessCode.java new file mode 100644 index 0000000..a30e4ea --- /dev/null +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/exception/code/MissionSuccessCode.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.mission.exception.code; + +public enum MissionSuccessCode { +} diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/repository/MissionRepository.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/repository/MissionRepository.java new file mode 100644 index 0000000..71f7528 --- /dev/null +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/repository/MissionRepository.java @@ -0,0 +1,7 @@ +package com.example.umc10th.domain.mission.repository; + +import com.example.umc10th.domain.mission.entity.Mission; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface MissionRepository extends JpaRepository { +} diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/service/MissionService.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/service/MissionService.java new file mode 100644 index 0000000..d69ce74 --- /dev/null +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/service/MissionService.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.mission.service; + +public class MissionService { +} diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/review/controller/ReviewController.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/review/controller/ReviewController.java new file mode 100644 index 0000000..64edbab --- /dev/null +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/review/controller/ReviewController.java @@ -0,0 +1,21 @@ +package com.example.umc10th.domain.review.controller; + +import com.example.umc10th.domain.review.dto.ReviewReqDTO; +import com.example.umc10th.domain.review.dto.ReviewResDTO; +import com.example.umc10th.global.apiPayload.ApiResponse; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequestMapping("/review") +@RequiredArgsConstructor +public class ReviewController { + + @PostMapping("/markets/{marketId}") + public ApiResponse createReview( + @PathVariable Long marketId, + @RequestBody ReviewReqDTO.CreateReviewDTO request + ) { + return ApiResponse.onSuccess(null); + } +} \ No newline at end of file diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/review/converter/ReviewConverter.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/review/converter/ReviewConverter.java new file mode 100644 index 0000000..c2fd181 --- /dev/null +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/review/converter/ReviewConverter.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.review.converter; + +public class ReviewConverter { +} diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/review/dto/ReviewReqDTO.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/review/dto/ReviewReqDTO.java new file mode 100644 index 0000000..582f639 --- /dev/null +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/review/dto/ReviewReqDTO.java @@ -0,0 +1,9 @@ +package com.example.umc10th.domain.review.dto; + +public class ReviewReqDTO { + + public static class CreateReviewDTO { + public Integer stars; + public String content; + } +} \ No newline at end of file diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/review/dto/ReviewResDTO.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/review/dto/ReviewResDTO.java new file mode 100644 index 0000000..2d05bdd --- /dev/null +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/review/dto/ReviewResDTO.java @@ -0,0 +1,9 @@ +package com.example.umc10th.domain.review.dto; + +public class ReviewResDTO { + + public static class CreateReviewDTO { + public Long reviewId; + public String message; + } +} \ No newline at end of file diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/review/entity/Review.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/review/entity/Review.java new file mode 100644 index 0000000..2c1eb1d --- /dev/null +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/review/entity/Review.java @@ -0,0 +1,29 @@ +package com.example.umc10th.domain.review.entity; + +import com.example.umc10th.domain.member.entity.Member; +import com.example.umc10th.domain.mission.entity.Market; +import com.example.umc10th.global.entity.BaseEntity; +import jakarta.persistence.*; +import java.time.LocalDateTime; + +@Entity +@Table(name = "review") +public class Review extends BaseEntity { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "member_id") + private Member member; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "market_id") + private Market market; + + private Integer stars; + + private String content; + +} diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/review/exception/ReviewException.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/review/exception/ReviewException.java new file mode 100644 index 0000000..e91c51a --- /dev/null +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/review/exception/ReviewException.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.review.exception; + +public class ReviewException { +} diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewErrorCode.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewErrorCode.java new file mode 100644 index 0000000..0d1fcb3 --- /dev/null +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewErrorCode.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.review.exception.code; + +public enum ReviewErrorCode { +} diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewSuccessCode.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewSuccessCode.java new file mode 100644 index 0000000..fb2f221 --- /dev/null +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewSuccessCode.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.review.exception.code; + +public enum ReviewSuccessCode { +} diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/review/repository/ReviewRepository.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/review/repository/ReviewRepository.java new file mode 100644 index 0000000..d754a10 --- /dev/null +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/review/repository/ReviewRepository.java @@ -0,0 +1,7 @@ +package com.example.umc10th.domain.review.repository; + +import com.example.umc10th.domain.review.entity.Review; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface ReviewRepository extends JpaRepository { +} diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/review/service/ReviewService.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/review/service/ReviewService.java new file mode 100644 index 0000000..c60e350 --- /dev/null +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/review/service/ReviewService.java @@ -0,0 +1,4 @@ +package com.example.umc10th.domain.review.service; + +public class ReviewService { +} diff --git a/luke/umc10th/src/main/java/com/example/umc10th/global/apiPayload/ApiResponse.java b/luke/umc10th/src/main/java/com/example/umc10th/global/apiPayload/ApiResponse.java new file mode 100644 index 0000000..f34ca31 --- /dev/null +++ b/luke/umc10th/src/main/java/com/example/umc10th/global/apiPayload/ApiResponse.java @@ -0,0 +1,35 @@ +package com.example.umc10th.global.apiPayload; + +import com.example.umc10th.global.apiPayload.code.BaseErrorCode; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +@JsonPropertyOrder({"isSuccess", "code", "message", "result"}) +public class ApiResponse { + + @JsonProperty("isSuccess") + private final Boolean isSuccess; + + @JsonProperty("code") + private final String code; + + @JsonProperty("message") + private final String message; + + @JsonProperty("result") + private final T result; + + // 성공한 경우 (result 포함) + public static ApiResponse onSuccess(T result) { + return new ApiResponse<>(true, "COMMON200", "성공입니다.", result); + } + + // 실패한 경우 (result 포함) + public static ApiResponse onFailure(BaseErrorCode code, T result ) { + return new ApiResponse<>(false, code.getCode(), code.getMessage(), result); + } +} diff --git a/luke/umc10th/src/main/java/com/example/umc10th/global/apiPayload/code/BaseErrorCode.java b/luke/umc10th/src/main/java/com/example/umc10th/global/apiPayload/code/BaseErrorCode.java new file mode 100644 index 0000000..137c8ac --- /dev/null +++ b/luke/umc10th/src/main/java/com/example/umc10th/global/apiPayload/code/BaseErrorCode.java @@ -0,0 +1,9 @@ +package com.example.umc10th.global.apiPayload.code; + +import org.springframework.http.HttpStatus; + +public interface BaseErrorCode { + HttpStatus getStatus(); + String getCode(); + String getMessage(); +} diff --git a/luke/umc10th/src/main/java/com/example/umc10th/global/apiPayload/code/BaseSuccessCode.java b/luke/umc10th/src/main/java/com/example/umc10th/global/apiPayload/code/BaseSuccessCode.java new file mode 100644 index 0000000..5ebb033 --- /dev/null +++ b/luke/umc10th/src/main/java/com/example/umc10th/global/apiPayload/code/BaseSuccessCode.java @@ -0,0 +1,10 @@ +package com.example.umc10th.global.apiPayload.code; + +import org.springframework.http.HttpStatus; + +public interface BaseSuccessCode { + + HttpStatus getStatus(); + String getCode(); + String getMessage(); +} diff --git a/luke/umc10th/src/main/java/com/example/umc10th/global/apiPayload/code/GeneralErrorCode.java b/luke/umc10th/src/main/java/com/example/umc10th/global/apiPayload/code/GeneralErrorCode.java new file mode 100644 index 0000000..6f77729 --- /dev/null +++ b/luke/umc10th/src/main/java/com/example/umc10th/global/apiPayload/code/GeneralErrorCode.java @@ -0,0 +1,34 @@ +package com.example.umc10th.global.apiPayload.code; + +import lombok.Getter; +import lombok.RequiredArgsConstructor; +import org.springframework.http.HttpStatus; + +@Getter +@RequiredArgsConstructor +public enum GeneralErrorCode implements BaseErrorCode { + + BAD_REQUEST(HttpStatus.BAD_REQUEST, + "COMMON400_1", + "잘못된 요청입니다."), + UNAUTHORIZED(HttpStatus.UNAUTHORIZED, + "COMMON401_1", + "인증되지 않았습니다."), + FORBIDDEN(HttpStatus.FORBIDDEN, + "COMMON403_1", + "접근이 금지되었습니다."), + NOT_FOUND(HttpStatus.NOT_FOUND, + "Common404_1", + "해당 리소스를 찾을 수 없습니다." + ), + ; + + private final HttpStatus status; + private final String code; + private final String message; + +} + + + + diff --git a/luke/umc10th/src/main/java/com/example/umc10th/global/apiPayload/code/GeneralSuccessCode.java b/luke/umc10th/src/main/java/com/example/umc10th/global/apiPayload/code/GeneralSuccessCode.java new file mode 100644 index 0000000..4e0d00f --- /dev/null +++ b/luke/umc10th/src/main/java/com/example/umc10th/global/apiPayload/code/GeneralSuccessCode.java @@ -0,0 +1,19 @@ +package com.example.umc10th.global.apiPayload.code; + +import lombok.Getter; +import lombok.RequiredArgsConstructor; +import org.springframework.http.HttpStatus; + +@Getter@RequiredArgsConstructor +public enum GeneralSuccessCode implements BaseErrorCode{ + + OK(HttpStatus.OK, + "COMMON200_1", + "성공적으로 요청을 처리했습니다."), + + ; + + private final HttpStatus status; + private final String code; + private final String message; +} diff --git a/luke/umc10th/src/main/java/com/example/umc10th/global/config/SwaggerConfig.java b/luke/umc10th/src/main/java/com/example/umc10th/global/config/SwaggerConfig.java new file mode 100644 index 0000000..efda88f --- /dev/null +++ b/luke/umc10th/src/main/java/com/example/umc10th/global/config/SwaggerConfig.java @@ -0,0 +1,36 @@ +package com.example.umc10th.global.config; + +import io.swagger.v3.oas.models.info.Info; +import io.swagger.v3.oas.models.servers.Server; +import io.swagger.v3.oas.models.Components; +import io.swagger.v3.oas.models.OpenAPI; +import io.swagger.v3.oas.models.security.SecurityRequirement; +import io.swagger.v3.oas.models.security.SecurityScheme; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class SwaggerConfig { + + @Bean + public OpenAPI swagger() { + Info info = new Info().title("UMC10th").description("10기 Swagger").version("0.0.1"); + + // JWT 토큰 헤더 방식 + String securityScheme = "JWT TOKEN"; + SecurityRequirement securityRequirement = new SecurityRequirement().addList(securityScheme); + + Components components = new Components() + .addSecuritySchemes(securityScheme, new SecurityScheme() + .name(securityScheme) + .type(SecurityScheme.Type.HTTP) + .scheme("Bearer") + .bearerFormat("JWT")); + + return new OpenAPI() + .info(info) + .addServersItem(new Server().url("/")) + .addSecurityItem(securityRequirement) + .components(components); + } +} diff --git a/luke/umc10th/src/test/java/com/example/umc10th/Umc10thApplicationTests.java b/luke/umc10th/src/test/java/com/example/umc10th/Umc10thApplicationTests.java new file mode 100644 index 0000000..b43a96f --- /dev/null +++ b/luke/umc10th/src/test/java/com/example/umc10th/Umc10thApplicationTests.java @@ -0,0 +1,13 @@ +package com.example.umc10th; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +class Umc10thApplicationTests { + + @Test + void contextLoads() { + } + +} From 178783a5c4a90c9696ff48d113d279f662c8885d Mon Sep 17 00:00:00 2001 From: yujining3827 Date: Wed, 6 May 2026 23:22:31 +0900 Subject: [PATCH 32/46] =?UTF-8?q?feat:=20review=20controller=EB=9E=91=20se?= =?UTF-8?q?rvice=20=EC=97=B0=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mission/repository/MarketRepository.java | 7 +++ .../review/controller/ReviewController.java | 12 ++++- .../domain/review/dto/ReviewReqDTO.java | 7 ++- .../domain/review/dto/ReviewResDTO.java | 10 +++- .../umc10th/domain/review/entity/Review.java | 5 ++ .../domain/review/service/ReviewService.java | 48 +++++++++++++++++++ 6 files changed, 83 insertions(+), 6 deletions(-) create mode 100644 luke/umc10th/src/main/java/com/example/umc10th/domain/mission/repository/MarketRepository.java diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/repository/MarketRepository.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/repository/MarketRepository.java new file mode 100644 index 0000000..db23cbf --- /dev/null +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/repository/MarketRepository.java @@ -0,0 +1,7 @@ +package com.example.umc10th.domain.mission.repository; + +import com.example.umc10th.domain.mission.entity.Market; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface MarketRepository extends JpaRepository { +} diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/review/controller/ReviewController.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/review/controller/ReviewController.java index 64edbab..46c49e5 100644 --- a/luke/umc10th/src/main/java/com/example/umc10th/domain/review/controller/ReviewController.java +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/review/controller/ReviewController.java @@ -2,6 +2,7 @@ import com.example.umc10th.domain.review.dto.ReviewReqDTO; import com.example.umc10th.domain.review.dto.ReviewResDTO; +import com.example.umc10th.domain.review.service.ReviewService; import com.example.umc10th.global.apiPayload.ApiResponse; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; @@ -11,11 +12,18 @@ @RequiredArgsConstructor public class ReviewController { + private final ReviewService reviewService; + @PostMapping("/markets/{marketId}") public ApiResponse createReview( @PathVariable Long marketId, @RequestBody ReviewReqDTO.CreateReviewDTO request ) { - return ApiResponse.onSuccess(null); + Long memberId = 1L; // memberId 임시값 + + ReviewResDTO.CreateReviewDTO response = + reviewService.createReview(memberId, marketId, request); + + return ApiResponse.onSuccess(response); } -} \ No newline at end of file +} diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/review/dto/ReviewReqDTO.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/review/dto/ReviewReqDTO.java index 582f639..7eacf27 100644 --- a/luke/umc10th/src/main/java/com/example/umc10th/domain/review/dto/ReviewReqDTO.java +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/review/dto/ReviewReqDTO.java @@ -1,9 +1,12 @@ package com.example.umc10th.domain.review.dto; +import lombok.*; + public class ReviewReqDTO { + @Getter @Setter public static class CreateReviewDTO { - public Integer stars; - public String content; + private Integer stars; + private String content; } } \ No newline at end of file diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/review/dto/ReviewResDTO.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/review/dto/ReviewResDTO.java index 2d05bdd..b5cdf94 100644 --- a/luke/umc10th/src/main/java/com/example/umc10th/domain/review/dto/ReviewResDTO.java +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/review/dto/ReviewResDTO.java @@ -1,9 +1,15 @@ package com.example.umc10th.domain.review.dto; +import lombok.*; + public class ReviewResDTO { + @Getter + @Builder + @AllArgsConstructor + @NoArgsConstructor public static class CreateReviewDTO { - public Long reviewId; - public String message; + private Long reviewId; + private String message; } } \ No newline at end of file diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/review/entity/Review.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/review/entity/Review.java index 2c1eb1d..4d5248a 100644 --- a/luke/umc10th/src/main/java/com/example/umc10th/domain/review/entity/Review.java +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/review/entity/Review.java @@ -4,10 +4,15 @@ import com.example.umc10th.domain.mission.entity.Market; import com.example.umc10th.global.entity.BaseEntity; import jakarta.persistence.*; +import lombok.*; + import java.time.LocalDateTime; @Entity +@Getter @Builder @Table(name = "review") +@AllArgsConstructor +@NoArgsConstructor(access = AccessLevel.PROTECTED) public class Review extends BaseEntity { @Id diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/review/service/ReviewService.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/review/service/ReviewService.java index c60e350..db9436e 100644 --- a/luke/umc10th/src/main/java/com/example/umc10th/domain/review/service/ReviewService.java +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/review/service/ReviewService.java @@ -1,4 +1,52 @@ package com.example.umc10th.domain.review.service; +import com.example.umc10th.domain.member.entity.Member; +import com.example.umc10th.domain.member.repository.MemberRepository; +import com.example.umc10th.domain.mission.entity.Market; +import com.example.umc10th.domain.mission.repository.MarketRepository; +import com.example.umc10th.domain.review.dto.ReviewReqDTO; +import com.example.umc10th.domain.review.dto.ReviewResDTO; +import com.example.umc10th.domain.review.entity.Review; +import com.example.umc10th.domain.review.repository.ReviewRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +@Service +@RequiredArgsConstructor +@Transactional public class ReviewService { + + private final ReviewRepository reviewRepository; + private final MemberRepository memberRepository; + private final MarketRepository marketRepository; + + public ReviewResDTO.CreateReviewDTO createReview( + Long memberId, + Long marketId, + ReviewReqDTO.CreateReviewDTO request + ) { + + Member member = memberRepository.findById(memberId) + .orElseThrow(() -> new RuntimeException("멤버가 존재하지 않습니다.")); + + Market market = marketRepository.findById(marketId) + .orElseThrow(() -> new RuntimeException("가게가 존재하지 않습니다.")); + + Review review = Review.builder() + .member(member) + .market(market) + .stars(request.getStars()) + .content(request.getContent()) + .build(); + + Review savedReview = reviewRepository.save(review); + + return ReviewResDTO.CreateReviewDTO.builder() + .reviewId(savedReview.getId()) + .message("리뷰 작성 완료!") + .build(); + + } + } From 3611794409ac6bc313721630f2ba26769bd9f3c2 Mon Sep 17 00:00:00 2001 From: yujining3827 Date: Wed, 6 May 2026 23:48:55 +0900 Subject: [PATCH 33/46] =?UTF-8?q?feat:=20=EB=A9=A4=EB=B2=84=20=EC=A0=95?= =?UTF-8?q?=EB=B3=B4=20=EC=A1=B0=ED=9A=8C=20=EA=B8=B0=EB=8A=A5=EC=97=90=20?= =?UTF-8?q?memberService=20=EC=97=B0=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../member/controller/MemberController.java | 11 ++++++-- .../domain/member/dto/MemberReqDTO.java | 14 ++++++++++ .../domain/member/dto/MemberResDTO.java | 5 +++- .../domain/member/service/MemberService.java | 26 +++++++++++++++++++ .../umc10th/global/config/SwaggerConfig.java | 2 +- 5 files changed, 54 insertions(+), 4 deletions(-) diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/member/controller/MemberController.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/member/controller/MemberController.java index c792142..1b2e23f 100644 --- a/luke/umc10th/src/main/java/com/example/umc10th/domain/member/controller/MemberController.java +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/member/controller/MemberController.java @@ -2,6 +2,7 @@ import com.example.umc10th.domain.member.dto.MemberReqDTO; import com.example.umc10th.domain.member.dto.MemberResDTO; +import com.example.umc10th.domain.member.service.MemberService; import com.example.umc10th.global.apiPayload.ApiResponse; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; @@ -12,6 +13,8 @@ @RequiredArgsConstructor public class MemberController { + private final MemberService memberService; + @PostMapping("/signup") public ApiResponse signup( @RequestBody MemberReqDTO.SignupDTO request @@ -25,9 +28,13 @@ public ApiResponse signup( } @GetMapping("/home/my") - public ApiResponse getMyPage() { + public ApiResponse getMyPage( + @RequestParam Long memberId + ) { + + MemberResDTO.MyPageDTO response = + memberService.getMyPage(memberId); - MemberResDTO.MyPageDTO response = new MemberResDTO.MyPageDTO(); return ApiResponse.onSuccess(response); } } diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/member/dto/MemberReqDTO.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/member/dto/MemberReqDTO.java index aaf0394..a279cb4 100644 --- a/luke/umc10th/src/main/java/com/example/umc10th/domain/member/dto/MemberReqDTO.java +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/member/dto/MemberReqDTO.java @@ -4,6 +4,10 @@ import com.example.umc10th.domain.member.enums.UserType; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.*; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; import java.time.LocalDate; @@ -44,4 +48,14 @@ public static class SignupDTO { } + @Getter + @Builder + @AllArgsConstructor + @NoArgsConstructor + public static class MyPageDTO { + + private String name; + private String email; + private Integer point; + } } diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/member/dto/MemberResDTO.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/member/dto/MemberResDTO.java index 08c456e..b0b2edb 100644 --- a/luke/umc10th/src/main/java/com/example/umc10th/domain/member/dto/MemberResDTO.java +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/member/dto/MemberResDTO.java @@ -1,5 +1,7 @@ package com.example.umc10th.domain.member.dto; +import lombok.Builder; + public class MemberResDTO { public static class SignupDTO { @@ -7,11 +9,12 @@ public static class SignupDTO { public String message; } + @Builder public static class MyPageDTO { public String nickname; public String email; public String phoneNumber; - public Integer phoneNumberStatus; + public Boolean phoneNumberStatus; public Integer userPoint; } diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/member/service/MemberService.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/member/service/MemberService.java index 8d867f2..5e9c009 100644 --- a/luke/umc10th/src/main/java/com/example/umc10th/domain/member/service/MemberService.java +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/member/service/MemberService.java @@ -1,4 +1,30 @@ package com.example.umc10th.domain.member.service; +import com.example.umc10th.domain.member.dto.MemberResDTO; +import com.example.umc10th.domain.member.entity.Member; +import com.example.umc10th.domain.member.repository.MemberRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +@Service +@RequiredArgsConstructor +@Transactional(readOnly = true) public class MemberService { + + private final MemberRepository memberRepository; + + public MemberResDTO.MyPageDTO getMyPage(Long memberId) { + + Member member = memberRepository.findById(memberId) + .orElseThrow(() -> new RuntimeException("멤버가 존재하지 않습니다.")); + + return MemberResDTO.MyPageDTO.builder() + .nickname(member.getName()) + .email(member.getEmail()) + .phoneNumber(member.getPhoneNumber()) + .phoneNumberStatus(member.getPhoneNumberStatus()) + .userPoint(member.getUserPoint()) + .build(); + } } diff --git a/luke/umc10th/src/main/java/com/example/umc10th/global/config/SwaggerConfig.java b/luke/umc10th/src/main/java/com/example/umc10th/global/config/SwaggerConfig.java index efda88f..f0152ae 100644 --- a/luke/umc10th/src/main/java/com/example/umc10th/global/config/SwaggerConfig.java +++ b/luke/umc10th/src/main/java/com/example/umc10th/global/config/SwaggerConfig.java @@ -29,7 +29,7 @@ public OpenAPI swagger() { return new OpenAPI() .info(info) - .addServersItem(new Server().url("/")) + .addServersItem(new Server().url("/api/v1")) .addSecurityItem(securityRequirement) .components(components); } From 3d530cebd7db18d464fc66fe533527f78deb16ea Mon Sep 17 00:00:00 2001 From: yujining3827 Date: Thu, 7 May 2026 00:02:23 +0900 Subject: [PATCH 34/46] =?UTF-8?q?feat:=20BaseEntity=20Auditing=20=EC=A0=81?= =?UTF-8?q?=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/example/umc10th/Umc10thApplication.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/luke/umc10th/src/main/java/com/example/umc10th/Umc10thApplication.java b/luke/umc10th/src/main/java/com/example/umc10th/Umc10thApplication.java index 9983f43..9202ae8 100644 --- a/luke/umc10th/src/main/java/com/example/umc10th/Umc10thApplication.java +++ b/luke/umc10th/src/main/java/com/example/umc10th/Umc10thApplication.java @@ -2,8 +2,10 @@ import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.data.jpa.repository.config.EnableJpaAuditing; @SpringBootApplication +@EnableJpaAuditing public class Umc10thApplication { public static void main(String[] args) { From a407f3d5c257aa84a5b48690cb5748b040baa848 Mon Sep 17 00:00:00 2001 From: yujining3827 Date: Thu, 7 May 2026 00:04:26 +0900 Subject: [PATCH 35/46] =?UTF-8?q?fix:=20=EB=A6=AC=EB=B7=B0=20=EC=9E=91?= =?UTF-8?q?=EC=84=B1=20api=EC=97=90=20memberId=20params=EB=8F=84=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../umc10th/domain/review/controller/ReviewController.java | 2 +- .../java/com/example/umc10th/domain/review/entity/Review.java | 2 -- .../main/java/com/example/umc10th/global/entity/BaseEntity.java | 2 +- 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/review/controller/ReviewController.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/review/controller/ReviewController.java index 46c49e5..7860b50 100644 --- a/luke/umc10th/src/main/java/com/example/umc10th/domain/review/controller/ReviewController.java +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/review/controller/ReviewController.java @@ -17,9 +17,9 @@ public class ReviewController { @PostMapping("/markets/{marketId}") public ApiResponse createReview( @PathVariable Long marketId, + @RequestParam Long memberId, @RequestBody ReviewReqDTO.CreateReviewDTO request ) { - Long memberId = 1L; // memberId 임시값 ReviewResDTO.CreateReviewDTO response = reviewService.createReview(memberId, marketId, request); diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/review/entity/Review.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/review/entity/Review.java index 4d5248a..511a043 100644 --- a/luke/umc10th/src/main/java/com/example/umc10th/domain/review/entity/Review.java +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/review/entity/Review.java @@ -6,8 +6,6 @@ import jakarta.persistence.*; import lombok.*; -import java.time.LocalDateTime; - @Entity @Getter @Builder @Table(name = "review") diff --git a/luke/umc10th/src/main/java/com/example/umc10th/global/entity/BaseEntity.java b/luke/umc10th/src/main/java/com/example/umc10th/global/entity/BaseEntity.java index f33c28e..bab9c45 100644 --- a/luke/umc10th/src/main/java/com/example/umc10th/global/entity/BaseEntity.java +++ b/luke/umc10th/src/main/java/com/example/umc10th/global/entity/BaseEntity.java @@ -16,7 +16,7 @@ public abstract class BaseEntity { @CreatedDate - @Column(name = "created_at", nullable = false) + @Column(name = "created_at", nullable = false, updatable = false) private LocalDateTime createdAt; @LastModifiedDate From e486331faebccdb5b178d0861a03c3640c1276dd Mon Sep 17 00:00:00 2001 From: yujining3827 Date: Thu, 7 May 2026 00:35:14 +0900 Subject: [PATCH 36/46] =?UTF-8?q?feat:=20memberId=EC=9D=98=20=EB=AF=B8?= =?UTF-8?q?=EC=85=98=20=EC=B0=B8=EC=97=AC=EC=83=81=ED=83=9C=20=ED=95=84?= =?UTF-8?q?=ED=84=B0=EB=A7=81=20missionList=20=EC=B6=9C=EB=A0=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mission/controller/MissionController.java | 24 +++++---- .../domain/mission/dto/MissionResDTO.java | 10 ++++ .../umc10th/domain/mission/entity/Market.java | 3 ++ .../domain/mission/entity/Mission.java | 4 +- .../repository/ParticipateRepository.java | 27 ++++++++++ .../mission/service/MissionService.java | 52 +++++++++++++++++++ 6 files changed, 109 insertions(+), 11 deletions(-) create mode 100644 luke/umc10th/src/main/java/com/example/umc10th/domain/mission/repository/ParticipateRepository.java diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/controller/MissionController.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/controller/MissionController.java index 3d13bcc..a1ca5c4 100644 --- a/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/controller/MissionController.java +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/controller/MissionController.java @@ -2,31 +2,35 @@ import com.example.umc10th.domain.mission.dto.MissionReqDTO; import com.example.umc10th.domain.mission.dto.MissionResDTO; +import com.example.umc10th.domain.mission.enums.ParticipatedStatus; +import com.example.umc10th.domain.mission.service.MissionService; import com.example.umc10th.global.apiPayload.ApiResponse; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; -import java.util.List; @RestController @RequestMapping("/mission") @RequiredArgsConstructor public class MissionController { + private final MissionService missionService; + @GetMapping public ApiResponse getMissionList( - @RequestParam(name = "regionName", required = false) String regionName, - @RequestParam(name = "status") String status, + @RequestParam(name = "memberId", required = false) Long memberId, + @RequestParam(name = "status") ParticipatedStatus status, @RequestParam(name = "page") Integer page, @RequestParam(name = "size") Integer size ) { - MissionResDTO.MissionListDTO response = new MissionResDTO.MissionListDTO(); - response.content = List.of(); - response.page = page; - response.size = size; - response.hasNext = false; - - return ApiResponse.onSuccess(response); + return ApiResponse.onSuccess( + missionService.getMissionList( + memberId, + status, + page, + size + ) + ); } @PostMapping("/completed") diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/dto/MissionResDTO.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/dto/MissionResDTO.java index ea72ca4..6fcad8a 100644 --- a/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/dto/MissionResDTO.java +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/dto/MissionResDTO.java @@ -1,9 +1,15 @@ package com.example.umc10th.domain.mission.dto; +import lombok.*; + import java.util.List; public class MissionResDTO { + @Getter + @Builder + @AllArgsConstructor + @NoArgsConstructor public static class MissionListDTO { public List content; public Integer page; @@ -11,6 +17,10 @@ public static class MissionListDTO { public Boolean hasNext; } + @Getter + @Builder + @AllArgsConstructor + @NoArgsConstructor public static class MissionDTO { public Long missionId; public String marketName; diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/entity/Market.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/entity/Market.java index 1395ea7..31dabb4 100644 --- a/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/entity/Market.java +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/entity/Market.java @@ -3,10 +3,13 @@ import com.example.umc10th.global.entity.BaseEntity; import jakarta.persistence.Entity; import jakarta.persistence.*; +import lombok.*; import java.util.*; +@Getter @Entity +@NoArgsConstructor(access = AccessLevel.PROTECTED) public class Market extends BaseEntity { @Id diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/entity/Mission.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/entity/Mission.java index a22c3b4..0a50bb2 100644 --- a/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/entity/Mission.java +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/entity/Mission.java @@ -5,12 +5,14 @@ import com.example.umc10th.global.entity.BaseEntity; import jakarta.persistence.Entity; import jakarta.persistence.*; +import lombok.*; import java.time.LocalDateTime; import java.util.*; - +@Getter @Entity +@NoArgsConstructor(access = AccessLevel.PROTECTED) public class Mission extends BaseEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/repository/ParticipateRepository.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/repository/ParticipateRepository.java new file mode 100644 index 0000000..31ce554 --- /dev/null +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/repository/ParticipateRepository.java @@ -0,0 +1,27 @@ +package com.example.umc10th.domain.mission.repository; + +import com.example.umc10th.domain.mission.entity.mapping.Participate; +import com.example.umc10th.domain.mission.enums.ParticipatedStatus; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; +import org.springframework.stereotype.Repository; + +@Repository +public interface ParticipateRepository extends JpaRepository { + + @Query(""" + SELECT p + FROM Participate p + JOIN FETCH p.mission m + WHERE p.member.id = :memberId + AND p.status = :status + """) + Page findMissionListByMemberAndStatus( + @Param("memberId") Long memberId, + @Param("status") ParticipatedStatus status, + Pageable pageable + ); +} diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/service/MissionService.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/service/MissionService.java index d69ce74..eee705a 100644 --- a/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/service/MissionService.java +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/service/MissionService.java @@ -1,4 +1,56 @@ package com.example.umc10th.domain.mission.service; +import com.example.umc10th.domain.mission.dto.MissionResDTO; +import com.example.umc10th.domain.mission.entity.mapping.Participate; +import com.example.umc10th.domain.mission.enums.ParticipatedStatus; +import com.example.umc10th.domain.mission.repository.ParticipateRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +@Service +@RequiredArgsConstructor +@Transactional(readOnly = true) public class MissionService { + + private final ParticipateRepository participateRepository; + + public MissionResDTO.MissionListDTO getMissionList( + Long memberId, + ParticipatedStatus status, + Integer page, + Integer size + ) { + + Pageable pageable = PageRequest.of(page, size); + + Page participatePage = + participateRepository.findMissionListByMemberAndStatus( + memberId, + status, + pageable + ); + + List missionList = + participatePage.stream() + .map(participate -> MissionResDTO.MissionDTO.builder() + .missionId(participate.getMission().getId()) + .marketName(participate.getMission().getMarket().getName()) + .point(participate.getMission().getPoint()) + .status(participate.getStatus().name()) + .build()) + .toList(); + + return MissionResDTO.MissionListDTO.builder() + .content(missionList) + .page(page) + .size(size) + .hasNext(participatePage.hasNext()) + .build(); + } } From 0552e20d63a132c9f91558cf92fe802f0dbc84cc Mon Sep 17 00:00:00 2001 From: yujining3827 Date: Thu, 7 May 2026 00:58:14 +0900 Subject: [PATCH 37/46] =?UTF-8?q?feat:=20home=EC=97=90=20missionlist=20?= =?UTF-8?q?=EC=B6=9C=EB=A0=A5=20api=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mission/controller/MissionController.java | 16 ++++++++ .../domain/mission/dto/MissionResDTO.java | 1 + .../domain/mission/entity/Mission.java | 1 + .../mission/repository/MissionRepository.java | 20 +++++++++ .../mission/service/MissionService.java | 41 +++++++++++++++++++ 5 files changed, 79 insertions(+) diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/controller/MissionController.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/controller/MissionController.java index a1ca5c4..39c7891 100644 --- a/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/controller/MissionController.java +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/controller/MissionController.java @@ -44,4 +44,20 @@ public ApiResponse completeMission( return ApiResponse.onSuccess(response); } + + @GetMapping("/home") + public ApiResponse getHomeMissionList( + @RequestParam String regionName, + @RequestParam Integer page, + @RequestParam Integer size + ) { + + return ApiResponse.onSuccess( + missionService.getHomeMissionList( + regionName, + page, + size + ) + ); + } } \ No newline at end of file diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/dto/MissionResDTO.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/dto/MissionResDTO.java index 6fcad8a..2e81aa4 100644 --- a/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/dto/MissionResDTO.java +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/dto/MissionResDTO.java @@ -24,6 +24,7 @@ public static class MissionListDTO { public static class MissionDTO { public Long missionId; public String marketName; + public String content; public Integer point; public String status; } diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/entity/Mission.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/entity/Mission.java index 0a50bb2..6fd9e64 100644 --- a/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/entity/Mission.java +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/entity/Mission.java @@ -25,6 +25,7 @@ public class Mission extends BaseEntity { @Column(name = "end_date") private LocalDateTime endDate; + @Enumerated(EnumType.STRING) @Column(name = "mission_status") private MissionStatus missionStatus; diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/repository/MissionRepository.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/repository/MissionRepository.java index 71f7528..23aabc0 100644 --- a/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/repository/MissionRepository.java +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/repository/MissionRepository.java @@ -1,7 +1,27 @@ package com.example.umc10th.domain.mission.repository; import com.example.umc10th.domain.mission.entity.Mission; +import com.example.umc10th.domain.mission.enums.MissionStatus; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; public interface MissionRepository extends JpaRepository { + + @Query(""" + SELECT m + FROM Mission m + JOIN FETCH m.market mk + JOIN FETCH mk.region r + WHERE r.name = :regionName + AND m.missionStatus = :status + """) + Page findMissionByRegion( + @Param("regionName") String regionName, + @Param("status") MissionStatus status, + Pageable pageable + ); + } diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/service/MissionService.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/service/MissionService.java index eee705a..8cfd6db 100644 --- a/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/service/MissionService.java +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/service/MissionService.java @@ -1,8 +1,11 @@ package com.example.umc10th.domain.mission.service; import com.example.umc10th.domain.mission.dto.MissionResDTO; +import com.example.umc10th.domain.mission.entity.Mission; import com.example.umc10th.domain.mission.entity.mapping.Participate; +import com.example.umc10th.domain.mission.enums.MissionStatus; import com.example.umc10th.domain.mission.enums.ParticipatedStatus; +import com.example.umc10th.domain.mission.repository.MissionRepository; import com.example.umc10th.domain.mission.repository.ParticipateRepository; import lombok.RequiredArgsConstructor; import org.springframework.data.domain.Page; @@ -19,6 +22,7 @@ public class MissionService { private final ParticipateRepository participateRepository; + private final MissionRepository missionRepository; public MissionResDTO.MissionListDTO getMissionList( Long memberId, @@ -53,4 +57,41 @@ public MissionResDTO.MissionListDTO getMissionList( .hasNext(participatePage.hasNext()) .build(); } + + public MissionResDTO.MissionListDTO getHomeMissionList( + String regionName, + Integer page, + Integer size + ) { + + Pageable pageable = PageRequest.of(page, size); + + Page missionPage = + missionRepository.findMissionByRegion( + regionName, + MissionStatus.IN_PROGRESS, + pageable + ); + + List missionList = + missionPage.stream() + .map(mission -> + MissionResDTO.MissionDTO.builder() + .missionId(mission.getId()) + .marketName(mission.getMarket().getName()) + .content(mission.getContent()) + .point(mission.getPoint()) + .status(mission.getMissionStatus().name()) + .build() + ) + .toList(); + + return MissionResDTO.MissionListDTO.builder() + .content(missionList) + .page(page) + .size(size) + .hasNext(missionPage.hasNext()) + .build(); + } + } From faffa3f2d1e60e73063e6e04b7ae4b1fd5e64b8c Mon Sep 17 00:00:00 2001 From: yujining3827 Date: Mon, 11 May 2026 13:49:58 +0900 Subject: [PATCH 38/46] =?UTF-8?q?fix=20:=20memberService=EC=95=88=EC=97=90?= =?UTF-8?q?=20map,=20converter=EB=A1=9C=20=EB=B6=84=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/member/converter/MemberConverter.java | 15 +++++++++++++++ .../domain/member/service/MemberService.java | 10 +++------- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/member/converter/MemberConverter.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/member/converter/MemberConverter.java index 2c6188e..6c03f5d 100644 --- a/luke/umc10th/src/main/java/com/example/umc10th/domain/member/converter/MemberConverter.java +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/member/converter/MemberConverter.java @@ -1,4 +1,19 @@ package com.example.umc10th.domain.member.converter; +import com.example.umc10th.domain.member.dto.MemberResDTO; +import com.example.umc10th.domain.member.entity.Member; + public class MemberConverter { + + public static MemberResDTO.MyPageDTO toMyPageDTO(Member member) { + + return MemberResDTO.MyPageDTO.builder() + .nickname(member.getName()) + .email(member.getEmail()) + .phoneNumber(member.getPhoneNumber()) + .phoneNumberStatus(member.getPhoneNumberStatus()) + .userPoint(member.getUserPoint()) + .build(); + } + } diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/member/service/MemberService.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/member/service/MemberService.java index 5e9c009..240e454 100644 --- a/luke/umc10th/src/main/java/com/example/umc10th/domain/member/service/MemberService.java +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/member/service/MemberService.java @@ -1,5 +1,6 @@ package com.example.umc10th.domain.member.service; +import com.example.umc10th.domain.member.converter.MemberConverter; import com.example.umc10th.domain.member.dto.MemberResDTO; import com.example.umc10th.domain.member.entity.Member; import com.example.umc10th.domain.member.repository.MemberRepository; @@ -19,12 +20,7 @@ public MemberResDTO.MyPageDTO getMyPage(Long memberId) { Member member = memberRepository.findById(memberId) .orElseThrow(() -> new RuntimeException("멤버가 존재하지 않습니다.")); - return MemberResDTO.MyPageDTO.builder() - .nickname(member.getName()) - .email(member.getEmail()) - .phoneNumber(member.getPhoneNumber()) - .phoneNumberStatus(member.getPhoneNumberStatus()) - .userPoint(member.getUserPoint()) - .build(); + return MemberConverter.toMyPageDTO(member); + } } From 07e02487f3f208f435008ecbb9031e4918402233 Mon Sep 17 00:00:00 2001 From: yujining3827 Date: Mon, 11 May 2026 13:52:54 +0900 Subject: [PATCH 39/46] =?UTF-8?q?fix=20:=20missionService=EC=95=88?= =?UTF-8?q?=EC=97=90=20map,=20converter=EB=A1=9C=20=EB=B6=84=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mission/converter/MissionConverter.java | 49 +++++++++++++++++++ .../mission/service/MissionService.java | 42 ++++++---------- 2 files changed, 64 insertions(+), 27 deletions(-) diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/converter/MissionConverter.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/converter/MissionConverter.java index 336f76a..67fa52a 100644 --- a/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/converter/MissionConverter.java +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/converter/MissionConverter.java @@ -1,4 +1,53 @@ package com.example.umc10th.domain.mission.converter; +import com.example.umc10th.domain.mission.dto.MissionResDTO; +import com.example.umc10th.domain.mission.entity.Mission; +import com.example.umc10th.domain.mission.entity.mapping.Participate; + +import java.util.List; + public class MissionConverter { + + public static MissionResDTO.MissionDTO toMissionDTO( + Participate participate + ) { + + Mission mission = participate.getMission(); + + return MissionResDTO.MissionDTO.builder() + .missionId(mission.getId()) + .marketName(mission.getMarket().getName()) + .content(mission.getContent()) + .point(mission.getPoint()) + .status(participate.getStatus().name()) + .build(); + } + + public static MissionResDTO.MissionDTO toHomeMissionDTO( + Mission mission + ) { + + return MissionResDTO.MissionDTO.builder() + .missionId(mission.getId()) + .marketName(mission.getMarket().getName()) + .content(mission.getContent()) + .point(mission.getPoint()) + .status(mission.getMissionStatus().name()) + .build(); + } + + public static MissionResDTO.MissionListDTO toMissionListDTO( + List content, + Integer page, + Integer size, + Boolean hasNext + ) { + + return MissionResDTO.MissionListDTO.builder() + .content(content) + .page(page) + .size(size) + .hasNext(hasNext) + .build(); + } } diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/service/MissionService.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/service/MissionService.java index 8cfd6db..6cd24a7 100644 --- a/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/service/MissionService.java +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/service/MissionService.java @@ -1,5 +1,6 @@ package com.example.umc10th.domain.mission.service; +import com.example.umc10th.domain.mission.converter.MissionConverter; import com.example.umc10th.domain.mission.dto.MissionResDTO; import com.example.umc10th.domain.mission.entity.Mission; import com.example.umc10th.domain.mission.entity.mapping.Participate; @@ -42,20 +43,15 @@ public MissionResDTO.MissionListDTO getMissionList( List missionList = participatePage.stream() - .map(participate -> MissionResDTO.MissionDTO.builder() - .missionId(participate.getMission().getId()) - .marketName(participate.getMission().getMarket().getName()) - .point(participate.getMission().getPoint()) - .status(participate.getStatus().name()) - .build()) + .map(MissionConverter::toMissionDTO) .toList(); - return MissionResDTO.MissionListDTO.builder() - .content(missionList) - .page(page) - .size(size) - .hasNext(participatePage.hasNext()) - .build(); + return MissionConverter.toMissionListDTO( + missionList, + page, + size, + participatePage.hasNext() + ); } public MissionResDTO.MissionListDTO getHomeMissionList( @@ -75,23 +71,15 @@ public MissionResDTO.MissionListDTO getHomeMissionList( List missionList = missionPage.stream() - .map(mission -> - MissionResDTO.MissionDTO.builder() - .missionId(mission.getId()) - .marketName(mission.getMarket().getName()) - .content(mission.getContent()) - .point(mission.getPoint()) - .status(mission.getMissionStatus().name()) - .build() - ) + .map(MissionConverter::toHomeMissionDTO) .toList(); - return MissionResDTO.MissionListDTO.builder() - .content(missionList) - .page(page) - .size(size) - .hasNext(missionPage.hasNext()) - .build(); + return MissionConverter.toMissionListDTO( + missionList, + page, + size, + missionPage.hasNext() + ); } } From d9f5d6c9f40fa33bcaa18702402d424f3ed21fa1 Mon Sep 17 00:00:00 2001 From: yujining3827 Date: Mon, 11 May 2026 13:56:38 +0900 Subject: [PATCH 40/46] =?UTF-8?q?fix=20:=20reviewService=EC=95=88=EC=97=90?= =?UTF-8?q?=20map,=20converter=EB=A1=9C=20=EB=B6=84=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../review/converter/ReviewConverter.java | 30 +++++++++++++++++++ .../domain/review/service/ReviewService.java | 17 +++++------ 2 files changed, 37 insertions(+), 10 deletions(-) diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/review/converter/ReviewConverter.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/review/converter/ReviewConverter.java index c2fd181..84c1f9a 100644 --- a/luke/umc10th/src/main/java/com/example/umc10th/domain/review/converter/ReviewConverter.java +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/review/converter/ReviewConverter.java @@ -1,4 +1,34 @@ package com.example.umc10th.domain.review.converter; +import com.example.umc10th.domain.member.entity.Member; +import com.example.umc10th.domain.mission.entity.Market; +import com.example.umc10th.domain.review.dto.ReviewReqDTO; +import com.example.umc10th.domain.review.dto.ReviewResDTO; +import com.example.umc10th.domain.review.entity.Review; + public class ReviewConverter { + + public static Review toReview( + Member member, + Market market, + ReviewReqDTO.CreateReviewDTO request + ) { + + return Review.builder() + .member(member) + .market(market) + .stars(request.getStars()) + .content(request.getContent()) + .build(); + } + + public static ReviewResDTO.CreateReviewDTO toCreateReviewDTO( + Review review + ) { + + return ReviewResDTO.CreateReviewDTO.builder() + .reviewId(review.getId()) + .message("리뷰 작성 완료!") + .build(); + } } diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/review/service/ReviewService.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/review/service/ReviewService.java index db9436e..c444a3f 100644 --- a/luke/umc10th/src/main/java/com/example/umc10th/domain/review/service/ReviewService.java +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/review/service/ReviewService.java @@ -4,6 +4,7 @@ import com.example.umc10th.domain.member.repository.MemberRepository; import com.example.umc10th.domain.mission.entity.Market; import com.example.umc10th.domain.mission.repository.MarketRepository; +import com.example.umc10th.domain.review.converter.ReviewConverter; import com.example.umc10th.domain.review.dto.ReviewReqDTO; import com.example.umc10th.domain.review.dto.ReviewResDTO; import com.example.umc10th.domain.review.entity.Review; @@ -33,19 +34,15 @@ public ReviewResDTO.CreateReviewDTO createReview( Market market = marketRepository.findById(marketId) .orElseThrow(() -> new RuntimeException("가게가 존재하지 않습니다.")); - Review review = Review.builder() - .member(member) - .market(market) - .stars(request.getStars()) - .content(request.getContent()) - .build(); + Review review = ReviewConverter.toReview( + member, + market, + request + ); Review savedReview = reviewRepository.save(review); - return ReviewResDTO.CreateReviewDTO.builder() - .reviewId(savedReview.getId()) - .message("리뷰 작성 완료!") - .build(); + return ReviewConverter.toCreateReviewDTO(savedReview); } From 5e8b1e47b4d6391c059585e080198bd0ddf39626 Mon Sep 17 00:00:00 2001 From: yujining3827 Date: Mon, 11 May 2026 14:16:43 +0900 Subject: [PATCH 41/46] =?UTF-8?q?delete:=20=ED=95=84=EC=9A=94=EC=97=86?= =?UTF-8?q?=EB=8A=94=20=EC=BD=94=EB=93=9C=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../{MemberExpection.java => MemberException.java} | 2 +- .../member/exception/code/MemberErrorCode.java | 13 +++++++++++++ .../domain/member/service/MemberService.java | 5 ++++- ...MissionExcepotion.java => MissionException.java} | 2 +- 4 files changed, 19 insertions(+), 3 deletions(-) rename luke/umc10th/src/main/java/com/example/umc10th/domain/member/exception/{MemberExpection.java => MemberException.java} (64%) rename luke/umc10th/src/main/java/com/example/umc10th/domain/mission/exception/{MissionExcepotion.java => MissionException.java} (63%) diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/member/exception/MemberExpection.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/member/exception/MemberException.java similarity index 64% rename from luke/umc10th/src/main/java/com/example/umc10th/domain/member/exception/MemberExpection.java rename to luke/umc10th/src/main/java/com/example/umc10th/domain/member/exception/MemberException.java index cfc9d67..6c986bd 100644 --- a/luke/umc10th/src/main/java/com/example/umc10th/domain/member/exception/MemberExpection.java +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/member/exception/MemberException.java @@ -1,4 +1,4 @@ package com.example.umc10th.domain.member.exception; -public class MemberExpection { +public class MemberException { } diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/member/exception/code/MemberErrorCode.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/member/exception/code/MemberErrorCode.java index 135bd22..97fee51 100644 --- a/luke/umc10th/src/main/java/com/example/umc10th/domain/member/exception/code/MemberErrorCode.java +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/member/exception/code/MemberErrorCode.java @@ -1,4 +1,17 @@ package com.example.umc10th.domain.member.exception.code; +import lombok.AllArgsConstructor; +import lombok.Getter; +import org.springframework.http.HttpStatus; + +@Getter +@AllArgsConstructor public enum MemberErrorCode { + + MEMBER_NOT_FOUND(HttpStatus.NOT_FOUND, "MEMBER4001", "멤버가 존재하지 않습니다."); + + private final HttpStatus httpStatus; + private final String code; + private final String message; + } diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/member/service/MemberService.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/member/service/MemberService.java index 240e454..44cb732 100644 --- a/luke/umc10th/src/main/java/com/example/umc10th/domain/member/service/MemberService.java +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/member/service/MemberService.java @@ -3,6 +3,8 @@ import com.example.umc10th.domain.member.converter.MemberConverter; import com.example.umc10th.domain.member.dto.MemberResDTO; import com.example.umc10th.domain.member.entity.Member; +import com.example.umc10th.domain.member.exception.MemberException; +import com.example.umc10th.domain.member.exception.code.MemberErrorCode; import com.example.umc10th.domain.member.repository.MemberRepository; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -18,7 +20,8 @@ public class MemberService { public MemberResDTO.MyPageDTO getMyPage(Long memberId) { Member member = memberRepository.findById(memberId) - .orElseThrow(() -> new RuntimeException("멤버가 존재하지 않습니다.")); + .orElseThrow(() -> + new MemberException(MemberErrorCode.MEMBER_NOT_FOUND)); return MemberConverter.toMyPageDTO(member); diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/exception/MissionExcepotion.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/exception/MissionException.java similarity index 63% rename from luke/umc10th/src/main/java/com/example/umc10th/domain/mission/exception/MissionExcepotion.java rename to luke/umc10th/src/main/java/com/example/umc10th/domain/mission/exception/MissionException.java index 499fc5f..8a97725 100644 --- a/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/exception/MissionExcepotion.java +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/exception/MissionException.java @@ -1,4 +1,4 @@ package com.example.umc10th.domain.mission.exception; -public class MissionExcepotion { +public class MissionException { } From 67328cc404fff964e436076e86a0f354ee086513 Mon Sep 17 00:00:00 2001 From: yujining3827 Date: Mon, 11 May 2026 15:12:48 +0900 Subject: [PATCH 42/46] =?UTF-8?q?feat:=20GlobalExceptionHandler=20?= =?UTF-8?q?=EC=83=9D=EC=84=B1=20=EB=B0=8F=20=EC=BB=A4=EC=8A=A4=ED=85=80=20?= =?UTF-8?q?=EC=98=88=EC=99=B8=20=EC=9D=91=EB=8B=B5=20=EC=B2=98=EB=A6=AC=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../handler/GlobalExceptionHandler.java | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 luke/umc10th/src/main/java/com/example/umc10th/global/handler/GlobalExceptionHandler.java diff --git a/luke/umc10th/src/main/java/com/example/umc10th/global/handler/GlobalExceptionHandler.java b/luke/umc10th/src/main/java/com/example/umc10th/global/handler/GlobalExceptionHandler.java new file mode 100644 index 0000000..f69f9c6 --- /dev/null +++ b/luke/umc10th/src/main/java/com/example/umc10th/global/handler/GlobalExceptionHandler.java @@ -0,0 +1,24 @@ +package com.example.umc10th.global.handler; + +import com.example.umc10th.domain.review.exception.ReviewException; +import com.example.umc10th.global.apiPayload.ApiResponse; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.RestControllerAdvice; + +@RestControllerAdvice +public class GlobalExceptionHandler { + + @ExceptionHandler(ReviewException.class) + public ResponseEntity> handleReviewException( + ReviewException e + ) { + + return ResponseEntity + .status(e.getErrorCode().getStatus()) + .body(ApiResponse.onFailure( + e.getErrorCode(), + null + )); + } +} From 9f184d9a31896217259b854be2aef244cb1babdc Mon Sep 17 00:00:00 2001 From: yujining3827 Date: Mon, 11 May 2026 15:22:24 +0900 Subject: [PATCH 43/46] =?UTF-8?q?feat:=20member/review=20custom=20exceptio?= =?UTF-8?q?n=20=EC=B2=98=EB=A6=AC=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/member/exception/MemberException.java | 13 ++++++++++++- .../member/exception/code/MemberErrorCode.java | 2 +- .../domain/member/service/MemberService.java | 6 +++--- .../domain/review/exception/ReviewException.java | 12 +++++++++++- .../review/exception/code/ReviewErrorCode.java | 16 +++++++++++++++- .../domain/review/service/ReviewService.java | 8 ++++++-- 6 files changed, 48 insertions(+), 9 deletions(-) diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/member/exception/MemberException.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/member/exception/MemberException.java index 6c986bd..f9ad7d4 100644 --- a/luke/umc10th/src/main/java/com/example/umc10th/domain/member/exception/MemberException.java +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/member/exception/MemberException.java @@ -1,4 +1,15 @@ package com.example.umc10th.domain.member.exception; -public class MemberException { +import com.example.umc10th.domain.review.exception.code.ReviewErrorCode; +import lombok.Getter; + +@Getter +public class MemberException extends RuntimeException { + + private final ReviewErrorCode errorCode; + + public MemberException(ReviewErrorCode errorCode) { + this.errorCode = errorCode; + } + } diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/member/exception/code/MemberErrorCode.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/member/exception/code/MemberErrorCode.java index 97fee51..088c4ca 100644 --- a/luke/umc10th/src/main/java/com/example/umc10th/domain/member/exception/code/MemberErrorCode.java +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/member/exception/code/MemberErrorCode.java @@ -10,7 +10,7 @@ public enum MemberErrorCode { MEMBER_NOT_FOUND(HttpStatus.NOT_FOUND, "MEMBER4001", "멤버가 존재하지 않습니다."); - private final HttpStatus httpStatus; + private final HttpStatus status; private final String code; private final String message; diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/member/service/MemberService.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/member/service/MemberService.java index 44cb732..287356d 100644 --- a/luke/umc10th/src/main/java/com/example/umc10th/domain/member/service/MemberService.java +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/member/service/MemberService.java @@ -3,9 +3,9 @@ import com.example.umc10th.domain.member.converter.MemberConverter; import com.example.umc10th.domain.member.dto.MemberResDTO; import com.example.umc10th.domain.member.entity.Member; -import com.example.umc10th.domain.member.exception.MemberException; -import com.example.umc10th.domain.member.exception.code.MemberErrorCode; import com.example.umc10th.domain.member.repository.MemberRepository; +import com.example.umc10th.domain.review.exception.ReviewException; +import com.example.umc10th.domain.review.exception.code.ReviewErrorCode; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -21,7 +21,7 @@ public MemberResDTO.MyPageDTO getMyPage(Long memberId) { Member member = memberRepository.findById(memberId) .orElseThrow(() -> - new MemberException(MemberErrorCode.MEMBER_NOT_FOUND)); + new ReviewException(ReviewErrorCode.MEMBER_NOT_FOUND)); return MemberConverter.toMyPageDTO(member); diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/review/exception/ReviewException.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/review/exception/ReviewException.java index e91c51a..270f27a 100644 --- a/luke/umc10th/src/main/java/com/example/umc10th/domain/review/exception/ReviewException.java +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/review/exception/ReviewException.java @@ -1,4 +1,14 @@ package com.example.umc10th.domain.review.exception; -public class ReviewException { +import com.example.umc10th.domain.review.exception.code.ReviewErrorCode; +import lombok.Getter; + +@Getter +public class ReviewException extends RuntimeException { + + private final ReviewErrorCode errorCode; + + public ReviewException(ReviewErrorCode errorCode) { + this.errorCode = errorCode; + } } diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewErrorCode.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewErrorCode.java index 0d1fcb3..f30154a 100644 --- a/luke/umc10th/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewErrorCode.java +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/review/exception/code/ReviewErrorCode.java @@ -1,4 +1,18 @@ package com.example.umc10th.domain.review.exception.code; -public enum ReviewErrorCode { +import com.example.umc10th.global.apiPayload.code.BaseErrorCode; +import lombok.AllArgsConstructor; +import lombok.Getter; +import org.springframework.http.HttpStatus; + +@Getter +@AllArgsConstructor +public enum ReviewErrorCode implements BaseErrorCode { + + MEMBER_NOT_FOUND(HttpStatus.NOT_FOUND, "REVIEW4001", "멤버가 존재하지 않습니다."), + MARKET_NOT_FOUND(HttpStatus.NOT_FOUND, "REVIEW4002", "가게가 존재하지 않습니다."); + + private final HttpStatus status; + private final String code; + private final String message; } diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/review/service/ReviewService.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/review/service/ReviewService.java index c444a3f..fad660d 100644 --- a/luke/umc10th/src/main/java/com/example/umc10th/domain/review/service/ReviewService.java +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/review/service/ReviewService.java @@ -8,6 +8,8 @@ import com.example.umc10th.domain.review.dto.ReviewReqDTO; import com.example.umc10th.domain.review.dto.ReviewResDTO; import com.example.umc10th.domain.review.entity.Review; +import com.example.umc10th.domain.review.exception.ReviewException; +import com.example.umc10th.domain.review.exception.code.ReviewErrorCode; import com.example.umc10th.domain.review.repository.ReviewRepository; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -29,10 +31,12 @@ public ReviewResDTO.CreateReviewDTO createReview( ) { Member member = memberRepository.findById(memberId) - .orElseThrow(() -> new RuntimeException("멤버가 존재하지 않습니다.")); + .orElseThrow(() -> + new ReviewException(ReviewErrorCode.MEMBER_NOT_FOUND)); Market market = marketRepository.findById(marketId) - .orElseThrow(() -> new RuntimeException("가게가 존재하지 않습니다.")); + .orElseThrow(() -> + new ReviewException(ReviewErrorCode.MARKET_NOT_FOUND)); Review review = ReviewConverter.toReview( member, From cb7a59ec58499f6e979073b4611d02b5dd3970e7 Mon Sep 17 00:00:00 2001 From: yujining3827 Date: Mon, 11 May 2026 16:12:55 +0900 Subject: [PATCH 44/46] =?UTF-8?q?refactor:=20mission=20paging=20response?= =?UTF-8?q?=20=EA=B3=B5=ED=86=B5=20DTO=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mission/controller/MissionController.java | 5 ++-- .../mission/converter/MissionConverter.java | 14 --------- .../domain/mission/dto/MissionResDTO.java | 13 --------- .../mission/service/MissionService.java | 29 ++++++++++--------- .../apiPayload/dto/PageResponseDTO.java | 16 ++++++++++ 5 files changed, 34 insertions(+), 43 deletions(-) create mode 100644 luke/umc10th/src/main/java/com/example/umc10th/global/apiPayload/dto/PageResponseDTO.java diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/controller/MissionController.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/controller/MissionController.java index 39c7891..ce7f289 100644 --- a/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/controller/MissionController.java +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/controller/MissionController.java @@ -5,6 +5,7 @@ import com.example.umc10th.domain.mission.enums.ParticipatedStatus; import com.example.umc10th.domain.mission.service.MissionService; import com.example.umc10th.global.apiPayload.ApiResponse; +import com.example.umc10th.global.apiPayload.dto.PageResponseDTO; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; @@ -16,7 +17,7 @@ public class MissionController { private final MissionService missionService; @GetMapping - public ApiResponse getMissionList( + public ApiResponse> getMissionList( @RequestParam(name = "memberId", required = false) Long memberId, @RequestParam(name = "status") ParticipatedStatus status, @RequestParam(name = "page") Integer page, @@ -46,7 +47,7 @@ public ApiResponse completeMission( } @GetMapping("/home") - public ApiResponse getHomeMissionList( + public ApiResponse> getHomeMissionList( @RequestParam String regionName, @RequestParam Integer page, @RequestParam Integer size diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/converter/MissionConverter.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/converter/MissionConverter.java index 67fa52a..0764c22 100644 --- a/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/converter/MissionConverter.java +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/converter/MissionConverter.java @@ -36,18 +36,4 @@ public static MissionResDTO.MissionDTO toHomeMissionDTO( .build(); } - public static MissionResDTO.MissionListDTO toMissionListDTO( - List content, - Integer page, - Integer size, - Boolean hasNext - ) { - - return MissionResDTO.MissionListDTO.builder() - .content(content) - .page(page) - .size(size) - .hasNext(hasNext) - .build(); - } } diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/dto/MissionResDTO.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/dto/MissionResDTO.java index 2e81aa4..9cf2a43 100644 --- a/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/dto/MissionResDTO.java +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/dto/MissionResDTO.java @@ -2,21 +2,8 @@ import lombok.*; -import java.util.List; - public class MissionResDTO { - @Getter - @Builder - @AllArgsConstructor - @NoArgsConstructor - public static class MissionListDTO { - public List content; - public Integer page; - public Integer size; - public Boolean hasNext; - } - @Getter @Builder @AllArgsConstructor diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/service/MissionService.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/service/MissionService.java index 6cd24a7..75afae8 100644 --- a/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/service/MissionService.java +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/service/MissionService.java @@ -8,6 +8,7 @@ import com.example.umc10th.domain.mission.enums.ParticipatedStatus; import com.example.umc10th.domain.mission.repository.MissionRepository; import com.example.umc10th.domain.mission.repository.ParticipateRepository; +import com.example.umc10th.global.apiPayload.dto.PageResponseDTO; import lombok.RequiredArgsConstructor; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; @@ -25,7 +26,7 @@ public class MissionService { private final ParticipateRepository participateRepository; private final MissionRepository missionRepository; - public MissionResDTO.MissionListDTO getMissionList( + public PageResponseDTO getMissionList( Long memberId, ParticipatedStatus status, Integer page, @@ -46,15 +47,15 @@ public MissionResDTO.MissionListDTO getMissionList( .map(MissionConverter::toMissionDTO) .toList(); - return MissionConverter.toMissionListDTO( - missionList, - page, - size, - participatePage.hasNext() - ); + return PageResponseDTO.builder() + .content(missionList) + .page(page) + .size(size) + .hasNext(participatePage.hasNext()) + .build(); } - public MissionResDTO.MissionListDTO getHomeMissionList( + public PageResponseDTO getHomeMissionList( String regionName, Integer page, Integer size @@ -74,12 +75,12 @@ public MissionResDTO.MissionListDTO getHomeMissionList( .map(MissionConverter::toHomeMissionDTO) .toList(); - return MissionConverter.toMissionListDTO( - missionList, - page, - size, - missionPage.hasNext() - ); + return PageResponseDTO.builder() + .content(missionList) + .page(page) + .size(size) + .hasNext(missionPage.hasNext()) + .build(); } } diff --git a/luke/umc10th/src/main/java/com/example/umc10th/global/apiPayload/dto/PageResponseDTO.java b/luke/umc10th/src/main/java/com/example/umc10th/global/apiPayload/dto/PageResponseDTO.java new file mode 100644 index 0000000..c4072b8 --- /dev/null +++ b/luke/umc10th/src/main/java/com/example/umc10th/global/apiPayload/dto/PageResponseDTO.java @@ -0,0 +1,16 @@ +package com.example.umc10th.global.apiPayload.dto; + +import lombok.*; + +import java.util.List; + +@Getter +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class PageResponseDTO { + private List content; + private Integer page; + private Integer size; + private Boolean hasNext; +} From f9ea46feae91dcd4343ff9dc4ed24449df7c6e3e Mon Sep 17 00:00:00 2001 From: yujining3827 Date: Tue, 12 May 2026 16:35:42 +0900 Subject: [PATCH 45/46] =?UTF-8?q?refactor:=20mission=20=EC=A1=B0=ED=9A=8C?= =?UTF-8?q?=20Page=20->=20Slice=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../umc10th/domain/mission/repository/MissionRepository.java | 4 ++-- .../domain/mission/repository/ParticipateRepository.java | 3 ++- .../umc10th/domain/mission/service/MissionService.java | 5 +++-- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/repository/MissionRepository.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/repository/MissionRepository.java index 23aabc0..6b3738e 100644 --- a/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/repository/MissionRepository.java +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/repository/MissionRepository.java @@ -2,8 +2,8 @@ import com.example.umc10th.domain.mission.entity.Mission; import com.example.umc10th.domain.mission.enums.MissionStatus; -import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Slice; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; @@ -18,7 +18,7 @@ public interface MissionRepository extends JpaRepository { WHERE r.name = :regionName AND m.missionStatus = :status """) - Page findMissionByRegion( + Slice findMissionByRegion( @Param("regionName") String regionName, @Param("status") MissionStatus status, Pageable pageable diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/repository/ParticipateRepository.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/repository/ParticipateRepository.java index 31ce554..4ad8a38 100644 --- a/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/repository/ParticipateRepository.java +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/repository/ParticipateRepository.java @@ -4,6 +4,7 @@ import com.example.umc10th.domain.mission.enums.ParticipatedStatus; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Slice; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; @@ -19,7 +20,7 @@ public interface ParticipateRepository extends JpaRepository WHERE p.member.id = :memberId AND p.status = :status """) - Page findMissionListByMemberAndStatus( + Slice findMissionListByMemberAndStatus( @Param("memberId") Long memberId, @Param("status") ParticipatedStatus status, Pageable pageable diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/service/MissionService.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/service/MissionService.java index 75afae8..a9c8af7 100644 --- a/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/service/MissionService.java +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/mission/service/MissionService.java @@ -13,6 +13,7 @@ import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Slice; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -35,7 +36,7 @@ public PageResponseDTO getMissionList( Pageable pageable = PageRequest.of(page, size); - Page participatePage = + Slice participatePage = participateRepository.findMissionListByMemberAndStatus( memberId, status, @@ -63,7 +64,7 @@ public PageResponseDTO getHomeMissionList( Pageable pageable = PageRequest.of(page, size); - Page missionPage = + Slice missionPage = missionRepository.findMissionByRegion( regionName, MissionStatus.IN_PROGRESS, From 57bdc45195939c1407df60ef0eef2d891ec1a8f5 Mon Sep 17 00:00:00 2001 From: yujining3827 Date: Tue, 12 May 2026 16:38:51 +0900 Subject: [PATCH 46/46] =?UTF-8?q?refactor:=20ReviewService=20readOnly=20?= =?UTF-8?q?=ED=8A=B8=EB=9E=9C=EC=9E=AD=EC=85=98=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../example/umc10th/domain/review/service/ReviewService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/luke/umc10th/src/main/java/com/example/umc10th/domain/review/service/ReviewService.java b/luke/umc10th/src/main/java/com/example/umc10th/domain/review/service/ReviewService.java index fad660d..4a8e5b4 100644 --- a/luke/umc10th/src/main/java/com/example/umc10th/domain/review/service/ReviewService.java +++ b/luke/umc10th/src/main/java/com/example/umc10th/domain/review/service/ReviewService.java @@ -17,7 +17,7 @@ @Service @RequiredArgsConstructor -@Transactional +@Transactional(readOnly = true) public class ReviewService { private final ReviewRepository reviewRepository;