Skip to content

사물함 신청 API 추가 #70

Description

@leegain1

어떤 기능인가요?

학생 앱에서 구역 상세 조회로 고른 사물함을 신청 즉시 배정하는 API를 추가한다.

Method Endpoint 설명
POST /v1/app/lockers/applications 사물함 신청(즉시 배정)
  • 한 회원은 운영 회차당 사물함 하나만 신청할 수 있고, 신청 후 취소·변경은 없다.
  • 같은 사물함에 동시 신청이 들어오면 먼저 완료된 신청만 성공하고 나머지는 LOCKER_ALREADY_ASSIGNED(409)를 받는다.
  • #64에서 미뤄둔 locker_applications (locker_period_id, locker_id) 유니크 제약을 이 작업에서 추가한다.

📝 작업 상세 내용

스키마 (Flyway)

  • locker_applications (locker_period_id, locker_id) 비유니크 인덱스를 유니크로 교체
  • 신청 일시 applied_at 컬럼 추가 (행사 신청과 같이 앱이 채움), 회원 인덱스를 (member_id, applied_at)로 교체

도메인 / 영속화

  • LockerApplication에 appliedAt, create(...) 추가
  • LockerApplyCommand, LockerApplicationResult, LockerErrorCode.LOCKER_ALREADY_ASSIGNED 추가
  • LockerRepository에 게시 회차 단건 조회·사물함 신청 여부·신청 저장 추가
  • 유니크 위반을 LOCKER_ALREADY_ASSIGNED로 변환
  • LockerApplicationService 공개 인터페이스 + impl 추가

API

  • 요청 { lockerPeriodId, lockerId } — lockerPeriodId는 구역 조회에 쓴 값을 그대로 받는다
  • 응답 lockerApplicationId, lockerId, lockerLabel, usageStartDate, usageEndDate
  • AppLockerApi 스웨거 명세 + AppLockerController 엔드포인트

📁 참고 자료 (선택)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions