-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathEmotionMarbleSpec.java
More file actions
49 lines (41 loc) · 2.46 KB
/
EmotionMarbleSpec.java
File metadata and controls
49 lines (41 loc) · 2.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package bitnagil.bitnagil_backend.emotionMarble.controller.spec;
import bitnagil.bitnagil_backend.emotionMarble.request.RegisterEmotionMarbleRequest;
import bitnagil.bitnagil_backend.emotionMarble.response.EmotionMarbleTypeResponse;
import bitnagil.bitnagil_backend.emotionMarble.response.EmotionMarbleTypeResponseV2;
import bitnagil.bitnagil_backend.emotionMarble.response.RegisterEmotionMarbleResponse;
import bitnagil.bitnagil_backend.global.errorcode.ErrorCode;
import bitnagil.bitnagil_backend.global.response.CustomResponseDto;
import bitnagil.bitnagil_backend.global.swagger.ApiErrorCodeExamples;
import bitnagil.bitnagil_backend.global.swagger.ApiTags;
import bitnagil.bitnagil_backend.user.domain.User;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Parameters;
import io.swagger.v3.oas.annotations.enums.ParameterIn;
import io.swagger.v3.oas.annotations.tags.Tag;
import java.time.LocalDate;
import java.util.List;
import org.springframework.web.bind.annotation.PathVariable;
@Tag(name = ApiTags.EMOTION_MARBLE)
public interface EmotionMarbleSpec {
@Operation(summary = "감정 구슬을 조회합니다")
public CustomResponseDto<List<EmotionMarbleTypeResponse>> getEmotionMarbles();
@Operation(summary = "감정 구슬을 등록합니다. 감정 구슬에 따른 추천 루틴을 응답합니다.")
@ApiErrorCodeExamples({ErrorCode.NOT_FOUND_RECOMMENDED_ROUTINE})
public CustomResponseDto<RegisterEmotionMarbleResponse> registryEmotionMarble(
User user, RegisterEmotionMarbleRequest request);
@Operation(summary = "(V2) 검색 날짜 기준으로 대한 유저의 감정구슬 정보를 조회합니다.")
@Parameters({
@Parameter(name = "searchDate", description = "감정 구슬 조회 날짜", required = true, example = "2025-08-15",
in = ParameterIn.PATH)
})
CustomResponseDto<EmotionMarbleTypeResponseV2> getEmotionMarbleBySearchDateV2(
User user, @PathVariable LocalDate searchDate);
@Operation(summary = "검색 날짜 기준으로 대한 유저의 감정구슬 정보를 조회합니다.")
@Parameters({
@Parameter(name = "searchDate", description = "감정 구슬 조회 날짜", required = true, example = "2025-07-01",
in = ParameterIn.PATH)
})
CustomResponseDto<EmotionMarbleTypeResponse> getEmotionMarbleBySearchDate(
User user, @PathVariable LocalDate searchDate);
}