콘텐츠로 이동

[WORKSOUT] 라플 상세 화면

Screen ID Screen Title Screen Path
RAF-DETAIL-01 라플 상세 Raffle Detail

라플 상품 상세 화면. 상품 이미지, 응모 일정, 상세 설명, 응모 버튼으로 구성된다. 같은 컬렉션으로 묶인 다른 라플 상품을 볼 수 있으며, 응모 종료까지 남은 시간과 일정을 확인할 수 있다.


항목 기준
데이터 출처 GET /v1/raffle/products/{raffleProductId}
표시 순서 imageUrls 배열 순서 그대로
슬라이드 좌우 스와이프, 하단 네비게이터바 표시
동영상 현재 미지원, 향후 지원 예정. 도입 시 첫 번째 위치 불가

첫 화면에서 라플 상품에 추가된 이미지 또는 영상이 슬라이드 형태로 노출된다.

항목 기준
표시 조건 각 필드가 null이 아닐 때만 해당 섹션 노출
날짜 포맷 MM월 DD일 (요일) 오전/오후 HH:MM ~ MM월 DD일 (요일) 오전/오후 HH:MM
다른 응모 상품 영역 정책상 정의되어 있으나 현재 제외됨

표시 대상 및 국가별 구분

필드 표시 대상 한국 일본
availableFrom ~ availableUntil 응모 일정
announceAt 당첨자 발표 ✓ (paymentStartAt 표시)
paymentStartAt ~ paymentDeadlineAt 1차 결제 기간
announce2At 미수령 당첨자 발표 ✓ (paymentStart2At 표시)
paymentStart2At ~ paymentDeadline2At 2차 결제 기간

상품 상세 이미지 (raffleDetail HTML)

섹션 제목: “상품 상세 이미지 (raffleDetail HTML)”
항목 기준
데이터 출처 raffleDetail
표시 방식 HTML 코드 그대로 렌더링 (이미지/텍스트/링크 지원)
렌더링 실패 “상품 정보를 불러올 수 없습니다” 또는 기본 fallback 처리

같은 컬렉션으로 묶여진 다른 라플 상품을 볼 수 있으며, 응모 종료까지 남은 시간과 일정 및 안내를 확인할 수 있다 (응모(라플) 정책.md 3.2.2).

항목 기준
카운트다운 진행 중: availableUntil까지 남은 시간 표시 / 시작 전·종료 후: 00일 : 00시 : 00분 : 00초
공유하기 버튼 현재 페이지 URL 공유

응모 버튼 상태

상태 버튼 텍스트
응모 가능 응모하기
응모 완료 이미 지원한 응모입니다
응모 종료 종료된 응모입니다

응답 코드 처리

응답 코드 처리
SUCCESS 응모 프로세스 진행
ALREADY_APPLIED_RAFFLE “이미 지원한 응모입니다” 표시

기능은 개발되어 있으나 현재 실제로 사용하지 않는다.

항목 기준
활성 플래그 device_check_raffle = 1일 때만 수행
검증 기준 user.latest_device_id
중복 없음 응모 정상 진행
중복 발견 “한 기기당 한 번만 응모 가능합니다” 토스트 후 차단

디바이스 ID 관리

항목 기준
수집 시점 회원가입 /v1/user/signup, 로그인 /v1/user/login
갱신 주기 로그인마다 latest_device_id 갱신
기술 스택 Flutter device_info_plus
웹 이슈 웹 회원가입/로그인 시에도 디바이스 ID 반영 방식 별도 필요

STEP 1. 라플 상품 상세 데이터 확인

확인 항목 확인 위치 정상 기준
imageUrls 라플 상세 API 1개 이상
availableFrom / availableUntil 라플 상세 API 값 존재
raffleDetail 라플 상세 API HTML 값 존재
productId 라플 상세 API 상품 상세 조회 가능

STEP 2. 응모 상태 확인

  • 응모 상태 확인 API가 정상 응답하는지 확인
  • 이미 응모/종료 상태가 아닌지 확인
  • device_check_raffle 관련 차단 여부 확인

엔드포인트: GET /v1/raffle/products/{raffleProductId} — 라플 상세 화면 진입 시

필드 활용
imageUrls 슬라이드 이미지
productId 사이즈 가이드 / 상품 정보 고시 조회용
availableFrom / availableUntil 응모 기간, 카운트다운
announceAt 당첨자 발표 일시
paymentStartAt / paymentDeadlineAt 1차 결제 기간
announce2At 미수령 당첨자 발표 (null 가능)
paymentStart2At / paymentDeadline2At 2차 결제 기간 (null 가능)
raffleDetail HTML 상세 설명
raffleGroupProduct 동일 그룹 다른 상품 (현재 영역 제외)

상품 상세 정보 조회 (사이즈 가이드용 — 현재 미사용)

섹션 제목: “상품 상세 정보 조회 (사이즈 가이드용 — 현재 미사용)”

엔드포인트: GET /v1/products/{productId}/detail — 라플 상품 상세 조회 후 productId 확인 시. 활용 필드: productSize.actualMeasure (모두 null이면 사이즈 가이드 영역 숨김)

목적 API 호출 시점
응모 상태 확인 GET /v1/raffle/apply/{raffleId} 응모하기 버튼 클릭 시
응모 실행 POST /v1/raffle/deferred/apply/{raffleProductId} 상태 확인 후 응모 가능일 때

응답 코드: SUCCESS → 응모 프로세스 진행 / ALREADY_APPLIED_RAFFLE → “이미 지원한 응모입니다” 버튼 표시

증상 예상 원인 1차 조치
이미지 안 나옴 imageUrls 누락 / 파일 오류 API 응답과 원본 파일 확인
일정 정보 일부 안 보임 해당 필드 null 일정 필드 입력 여부 확인
사이즈 가이드 안 보임 actualMeasure 전부 null 상품 상세 API 확인
상세 HTML 깨짐 raffleDetail HTML 오류 HTML 저장값 점검
응모 버튼 상태 이상함 응모 상태 API 분기 오류 응답 코드 및 UI 매핑 확인
중복 응모 차단 안 됨 디바이스 ID 미수집 / 서버 검증 누락 로그인 시 디바이스 ID 갱신 여부 확인

항목 내용

버전 날짜 변경 내용
v1.0 2026-07-30 최초 작성 (라플 화면 마스터.md “라플 상세 화면” + 응모(라플) 정책.md 3.2.2 병합 이전)