개발 진행 #6

Luzern·2026년 2월 11일

Project

목록 보기
6/6

세탁 관련 API를 추가하였다.

  1. 우선 Cloth에 세탁 상태 필드를 추가한다.
    @Enumerated(EnumType.STRING)
    @Column(nullable = false, length = 20)
    private WashStatus washStatus = WashStatus.AVAILABLE; // 기본값

boolean과 enum 중 어떤 데이터타입을 사용할 지 고민했는데, enum을 사용해보기로 했다.

public enum WashStatus {
    AVAILABLE, // 입을 수 있는 상태
    WASHING // 세탁 중
}

두 가지 상태를 만들었다.

  1. User에 값을 추가한다.
    1. isUsingWashUpTech를 만들고 프론트에서 처리
    2. users API GET으로 만들어서 프론트가 쓰기 편하게 하자.
@GetMapping("/wash-setting")
    public ApiResponse<UserWashSettingResponse> getWashSetting(
            @AuthenticationPrincipal Long userId
    ) {
        return ApiResponse.ok( null, userService.getWashSetting(userId));
    }

    @PatchMapping("/wash-setting")
    public ApiResponse<UserWashSettingResponse> updateWashSetting(
            @AuthenticationPrincipal Long userId,
            @RequestBody UserWashSettingUpdateRequest request
    ) {
        return ApiResponse.ok("세탁 기능 설정이 변경되었어요.",
                userService.updateWashSetting(userId, request));
    }

사용자가 세탁 기능 사용 여부를 선택할 수 있고, 선택 여부 관련 boolean isUsingWashUpTech 변수를 만든다. Get과 Patch로 사용 여부를 불러오고 수정할 수 있다.

  1. 세탁 기능 추가에 따라 변경해야 할 API

  2. 모든 의상 조회에서 includeWashing 처리

  3. 세탁 상태 변경 : PATCH : washStatus

  4. 세탁 상태를 일괄로 변경 : 수동으로 체크를 쭉 해서 세탁 상태를 변경, PATCH washStatus clothIds : 쭉쭉

  5. 프리셋에 세탁중 포함 시 경고 팝업

    1. GET presets/{presetId}/washCheck
  6. 캘린더에서

    1. 캘린더에서 새로 등록 시 세탁중 옷은 기본으로 제외함.
    2. 혹시 보여주되 경고하고 싶다면 리스트에서 빨간 테두리 + 세탁 중입니다 어쩌구 표시
  7. 프리셋에서

    1. 프리셋 자체는 저장이 가능하다.
    2. 착용 확정 단계에서 washCheck 결과가 True면 세탁중 의상 포함. 그래도 입을까요? yesorno
  8. 추천 코디에서

    1. 추천에서 세탁중인 옷은 원칙적으로 후보에서 제외
    2. 단 옷이 부족하면 fallback : 세탁중인 옷이 포함될 수 있어요.
  9. 출근시간 + 10시간 이후에 세탁 팝업

    1. 앱 켜져있다면 프론트 타이머
    2. 꺼져있다면 로컬 푸시 알림 or 서버 스케쥴러
profile
그냥 기록용...

0개의 댓글