🔄 서비스 흐름도
어드민 등록 → 앱 노출 → 확인 이력까지 전체 플로우
flowchart TD subgraph ADMIN["🖥️ 어드민 - 영업담당자"] A1([팝업 등록 시작]) --> A2[프랜차이즈 팝업 관리 메뉴 접근] A2 --> A3[팝업 등록 버튼 클릭] A3 --> A4{팝업 타입 선택} A4 -->|이미지| A5[이미지 업로드\n+ 팝업 제목 입력] A4 -->|텍스트| A6[텍스트 에디터 입력\n볼드·밑줄 등 꾸미기\n+ 이미지 첨부 선택] A5 --> A7[프랜차이즈 브랜드 선택\n노출 대상 설정] A6 --> A7 A7 --> A8[시작일 / 종료일 설정] A8 --> A9[사용여부 ON 설정] A9 --> A10[등록 완료] A10 --> A11[(DB 저장\n월 max 20개 체크)] A11 -->|20개 초과| A12[❌ 등록 불가\n오류 메시지 노출] A11 -->|정상| A13[✅ 등록 완료] end subgraph APP["📱 앱 - 프랜차이즈 업장 사용자"] B1([앱 로그인]) --> B2{해당 업장에\n활성화된 팝업 존재?} B2 -->|없음| B3[일반 팝업 노출 로직으로] B2 -->|있음| B4[프랜차이즈 팝업\n전체화면 노출\n노출순서 오름차순 기준] B4 --> B5{여러 개?} B5 -->|예| B6[스와이프로 다음 팝업] B6 --> B7{마지막 팝업?} B7 -->|아니오| B6 B7 -->|예| B8[하단 버튼 선택] B5 -->|아니오| B8 B8 --> B9{버튼 선택} B9 -->|닫기| B10[확인 일시 기록\n팝업 종료] B9 -->|하루동안 보지 않기| B11[확인 일시 기록\n24시간 미노출 처리\n팝업 종료] B10 --> B12[일반 팝업 노출] B11 --> B12 B3 --> B12 end subgraph LOG["📊 확인 이력 관리"] C1[(팝업 확인 로그)] B10 -->|확인일시 저장| C1 B11 -->|확인일시 저장| C1 C1 --> C2[어드민 확인 이력 조회\n미확인 귀책 증빙] end A13 -.->|팝업 활성화| B2 style ADMIN fill:#EFF6FF,stroke:#3B82F6 style APP fill:#F0FDF4,stroke:#22C55E style LOG fill:#FFF7ED,stroke:#F97316
🏗️ 시스템 구조도
API 엔드포인트, DB 테이블 설계, 클라이언트 연결 구조
flowchart LR subgraph CLIENT[클라이언트] APP[OrderHero 앱] ADMIN[어드민] end subgraph APISVR[API 서버] API1[팝업 등록 및 수정 API] API2[팝업 목록 조회 API] API3[활성 팝업 조회 API\ndisplay_order 오름차순 정렬\n동순위 시 등록일 오름차순] API4[확인 이력 기록 API] API5[확인 이력 조회 API] API6[월 20개 등록 제한 검증] end subgraph DBSVR[데이터베이스] DB1[(franchise_popups)] DB2[(popup_confirms)] DB3[(franchise_brands)] DB4[(shops)] end subgraph STORE[Storage] S1[이미지 파일 S3] end ADMIN --> API1 ADMIN --> API2 ADMIN --> API5 APP --> API3 APP --> API4 API1 --> API6 API6 --> DB1 API1 --> S1 API2 --> DB1 API3 --> DB1 API3 --> DB4 API4 --> DB2 API5 --> DB2 DB1 --- DB3 DB4 --- DB3 style CLIENT fill:#EFF6FF,stroke:#3B82F6 style APISVR fill:#F0FDF4,stroke:#22C55E style DBSVR fill:#FFF7ED,stroke:#F97316 style STORE fill:#FDF4FF,stroke:#A855F7
📋 기능 정책서
노출 정책, 등록 정책, 확인 이력 정책 등 전체 규칙 문서
📖 운영 가이드
영업담당자 대상 등록 절차, 주의사항, FAQ