| 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 코드 그대로 렌더링 (이미지/텍스트/링크 지원) |
| 렌더링 실패 |
“상품 정보를 불러올 수 없습니다” 또는 기본 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. 응모 상태 확인
엔드포인트: 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 병합 이전) |