sequenceDiagram
    autonumber
    actor Admin as 관리자/사용자
    participant API as Backend API
    participant DB as PostgreSQL
    participant S3 as Storage
    participant AI as AI(OCR/LLM)

    Note over Admin, AI: [1] 계정 및 인증 (FR-01, FR-02)
    Admin->>API: 로그인 요청
    API->>DB: 계정 및 승인상태 확인
    DB-->>API: 정보 반환
    API-->>Admin: JWT 토큰 발급 (Bearer)

    Note over Admin, AI: [2] 지원자 및 문서 등록 (FR-03, FR-04)
    Admin->>API: 지원자 등록 및 파일 업로드
    API->>S3: 파일 저장 (Object Storage)
    API->>DB: document 생성 (extract_status='PENDING')
    API-->>Admin: 등록 성공

    Note over API, AI: [3] 비동기 데이터 처리 (FR-04-06)
    API->>AI: OCR 텍스트 추출 및 임베딩
    AI-->>API: 텍스트/벡터 데이터 반환
    API->>DB: extracted_text 저장 (status='READY')

    Note over Admin, AI: [4] 분석 실행 및 LLM 호출 (FR-05, FR-07)
    Admin->>API: 분석 실행 (Strategy 선택)
    API->>DB: workflow_run 생성
    API->>AI: LLM 분석 요청 (Prompt Context)
    AI-->>API: 결과 반환 (JSON)

    Note over API, DB: [5] 결과 저장 및 로그 (FR-06, FR-07, FR-08)
    API->>DB: 면접 질문(item) 저장
    API->>DB: llm_call_log 저장 (토큰/비용/Audit)
    API->>DB: workflow_run 상태 업데이트 (SUCCESS)

    Note over Admin, AI: [6] 확정 및 내보내기 (FR-06)
    Admin->>API: 질문 수정 및 최종 확정
    API->>DB: status='CONFIRMED' 업데이트
    Admin->>API: 보고서 내보내기 (Export)
    API-->>Admin: PDF/Excel 파일 제공