Route
/verification/upload인증서류 업로드사용자 모바일 · P0/verification/upload
인증서류 업로드와 반려 상태를 처리하는 화면
민감정보 업로드 전 보안 gate와 상태 안내를 먼저 노출해 정책 확인 지점을 고정합니다.
서툰 우리의 옆자리Concept C — Social Event
검증 절차를 밝고 명확하게 안내하고 보관, 검토, 반려 상태를 안심시키는 구조로 설계한다.
인증 준비
제출할 항목과 검토 상태를 짧게 확인하고 다음 단계로 이동합니다.
제출 전 확인
업로드 전 서류 종류와 안내 문구를 먼저 확인합니다.
제출 파일
허용되는 인증서류와 보관 기간이 확정되기 전까지는 제출 항목만 안내합니다.
파일을 자동으로 읽기보다 운영자가 직접 확인하는 흐름으로 안내합니다.
반려 안내와 문의 동선은 운영 정책에 맞춰 확정합니다.
입력 정보
원본 파일 제출은 보관 기준과 운영자 열람 권한을 확인한 뒤 진행합니다.
Template family
Storage/Rules 연결 대기
UI primitives
State contract
디자인과 실데이터를 기다리는 동안에도 모든 route가 같은 실패/대기/빈값 골격을 유지하도록 화면별 상태 계약을 고정합니다.
Loading
인증서류 업로드 화면은 사용자 데이터와 공통 primitive 계약을 동시에 기다리는 로딩 상태를 노출합니다.
Empty
실제 사용자 데이터가 비어 있어도 레이아웃이 무너지지 않도록 안내문과 다음 행동을 유지합니다.
Error
실제 계정·정책·결제 연동 전에는 외부 요청을 만들지 않고, 재시도·문의·뒤로가기 위치만 계약으로 고정합니다.
Blocked
brandSkin, verificationDocumentPolicy, storageRules, firebaseProject 항목이 확정되기 전까지 디자인과 실데이터를 잠그지 않습니다.
Success
인증 상태와 필요한 다음 행동을 확인할 수 있습니다. 다음 단계는 인증 상태에서 이어서 확인할 수 있어요.
Primary action
인증 처리 흐름 확인/verificationcustomer input requiredRequired data
Customer input
Next routes
/verification/meAction/Form contract
`screen-action-contract.json` 기준 primary CTA, form field, 상태전이, provider 차단, audit requirement를 화면에 직접 표시합니다. 현재 경계는 fixture-only-no-provider-call이며 no provider calls before customer accounts 정책을 유지합니다.
Primary CTA
인증서류 업로드 화면의 주 CTA를 submitForm contract로 고정합니다.
submitForm인증 처리 흐름 확인/verificationProvider block
Firebase·Toss·Storage·Auth production call은 고객 계정 수령 전까지 차단합니다.
Audit requirement
none
none인증 처리 흐름 확인을 누르면 인증 확인 흐름으로 자연스럽게 이어집니다.
잠시만 기다리면 인증서류 업로드 상태가 화면에 정리됩니다.
인증 상태와 필요한 다음 행동을 확인할 수 있습니다. 다음 단계는 인증 상태에서 이어서 확인할 수 있어요.
입력한 내용과 화면 안내를 확인한 뒤 인증 처리 흐름 확인을 다시 눌러 주세요.
서류 기준과 검토 안내 문구 확인이 필요합니다. 준비되면 인증 처리 흐름 확인을 다시 진행할 수 있습니다.
사용자가 primary action을 실행합니다.
외부 provider 호출 없이 fixture 성공 상태를 표시합니다.
검증/fixture 오류 상태를 표시합니다.
고객 로고/계정/정책 blocker가 남아 있으면 blocked 상태를 유지합니다.
필수 입력이 해결되면 기본 상태로 돌아갑니다.
Upload state fixture
고객-facing 업로드 화면은 실제 Firebase Storage 호출 전에도 선택·검증·업로드 완료 상태를 같은 방식으로 보여줍니다. 실제 실행 seam은 boundedstorageUpload.uploadBytesOnce이며 다운로드 URL은 가져오지 않습니다.
Surface
업로드 슬롯서류 업로드가 완료되면 심사 대기 상태로 넘어갑니다.form-verification-uploadStorage policy
verification-documentsapplication/pdf · 최대 10MBverification-document-fixture.pdfSafe persistence
uploadedUID·full path·download URL은 fixture 화면에 저장하지 않습니다.verificationDocuments.storagePath업로드가 완료되어야 다음 저장/심사 흐름으로 넘어갑니다.
Metadata follow-up fixture
화면 흐름은 uploaded → metadataReady → submit 순서로 고정합니다. metadataReady는 bounded Firestore write validation 입력만 준비하며 실제 쓰기는 실행하지 않습니다.
DTO field
verificationDocuments.storagePathverificationDocuments.storagePathform-verification-uploadBounded validation
validateCreateDocumentcreateDocumentexplicitVerificationDocumentIdBeforeWriteNo live write
metadataReadywrite/provider call 0 · download URL 미사용verification-documents/<current-user>/verification-document-fixture.pdfFixture interaction runner
실 provider 호출 없이 primary CTA, role decision, form submit, state transition, audit requirement를 fixture-only로 점검합니다.
Role access
user6 denied rolesPrimary flow
인증 처리 흐름 확인/verificationForm submit
submitFixture2 required fields provided by fixtureAudit/provider
audit not required2 blocked providers, 0 callsFixture payload
실제 Firebase/Toss/정책 원문 대신 사용할 최소 payload입니다. 화면 구조와 DTO 슬롯을 먼저 맞추고, 고객 계정·정책 수령 후 실제 데이터로 교체합니다.
Payload contract
verificationStatuspayload-verification-uploadverificationDocumentSummary
인증서류 업로드 화면에 표시할 최소 verificationDocument fixture payload입니다. 실제 provider 호출 없이 layout과 DTO 슬롯만 확인합니다.
route-verification-upload-fixturefixture
blocked
verificationFlow 화면 검증용 fixture
Form fields
security-gate-needed
Firestore Rules checked
no PII sample data