시나리오

고객 앱에서 창구, 대기 화면까지

시니어 고객 한 명이 방문을 준비하고 호출되기까지의 흐름입니다. 아래 내용은 모두 저장소 코드에서 확인한 동작입니다.

흐름

  1. 고객 앱에서 AI 와 대화합니다. 용건을 말하거나(음성 입력 지원) 글로 입력합니다. 창업·사업자·법인 같은 단어가 보이면 「법인 사무 안내 받기」 버튼이 나타납니다. (근거: www/src/app/chat/page.tsx)
  2. 창구 직원에게 내용을 전달합니다. 대화를 AI 가 방문 목적, 관련 계좌, 금액, 필요 서류, 특이사항, 직원용 조언으로 정리하고, 법인 사무인지 일반 업무인지도 구분합니다. 결과는 창구 전달함에 저장되고 대기열에 등록됩니다. (근거: jb/apps/chat/app/use_cases/handoff_interactor.py)
  3. 창구 화면에 카드가 뜹니다. 직원은 대기·현장대기·호출 상태의 카드를 보고 「도착 인증」으로 현장대기로 바꾸고, 「호출」을 누릅니다. 화면은 5초마다 목록을 새로 읽습니다. (근거: teller/src/app/page.tsx)
  4. 대기 화면에 번호가 표시됩니다. 호출된 고객은 「지금 호출」 영역에 번호와 「N번 창구로 오세요」로 나타나고, 이전 호출은 작은 카드로 남습니다. 2초마다 갱신합니다. (근거: display/src/app/page.tsx)

대기 상태 규칙

상태 의미 규칙 근거
대기 접수됨 30분 안에 도착하지 않으면 파기 queue_entry_entity.py
현장대기 도착 인증 완료 만료 없음 queue_entry_entity.py
호출 직원이 호출함 1분 뒤 자동 삭제 queue_entry_entity.py

법인 사무는 번호표에 B 접두가 붙고(예: B2) 대기 화면에서 「법인 사무 창구」(2번)로 안내됩니다. 일반 업무는 접두 없이 1번 창구입니다. (근거: jb/shared_kernel/value_objects.py, display/src/app/page.tsx)

화면과 백엔드 컨텍스트의 연결

화면 쓰는 컨텍스트 대표 API 근거
고객 앱 — 가까운 지점 branch POST /api/v1/branch/nearby jb/apps/branch
고객 앱 — 대화 chat POST /api/v1/chat/message, /chat/handoff chat_router.py
고객 앱 — 번호표 예약 reservation POST·GET /api/v1/reservation/tickets, 취소 reservation_router.py
고객 앱 — 법인 사무 안내 corporate POST /api/v1/corporate/guidance corporate_router.py
창구 화면 queue GET /api/v1/queue/entries, …/arrive, …/call queue_router.py
대기 화면 queue GET /api/v1/queue/entries 중 호출 상태만 골라 표시 display/src/lib/api.ts

예약과 대화 전달이 만들어 낸 항목은 queue 컨텍스트의 대기열로 등록됩니다. 컨텍스트 사이는 포트와 어댑터로 이어집니다. (근거: 커밋 01693b9, 9215dfb)