시스템 흐름도
회원 가입/로그인 프로세스
sequenceDiagram
participant Client
participant API
participant DB
Client->>API: POST /v1/users
Note over Client,API: domain, symId, tronAddress
API->>DB: 사용자 조회
alt 신규 사용자
API->>DB: 사용자 생성
else 기존 사용자
API->>DB: tronAddress 업데이트
end
API->>API: JWT 토큰 생성
API->>DB: Refresh Token 저장
API-->>Client: tokens, user 정보 반환
추천인 등록 프로세스
sequenceDiagram
participant Client
participant API
participant DB
Client->>API: PATCH /v1/users/:id/referrer
Note over Client,API: JWT 인증 필요
API->>DB: 추천인 존재 확인
API->>DB: 순환 참조 검사
alt 유효한 추천인
API->>DB: 추천인 등록
API->>DB: 추천 수 증가
API-->>Client: 성공 응답
else 잘못된 추천인
API-->>Client: 에러 응답
end
수당 정산 프로세스
sequenceDiagram
participant Order
participant API
participant DB
participant Reward
Order->>API: 주문 완료
API->>DB: 주문 정보 저장
API->>DB: 추천인 트리 조회
loop 각 레벨별 추천인
API->>DB: 수당 비율 조회
API->>Reward: 수당 계산
Reward->>DB: 수당 적립
end
API-->>Order: 정산 완료
토큰 갱신 프로세스
sequenceDiagram
participant Client
participant API
participant DB
Client->>API: POST /v1/users/refresh
Note over Client,API: Refresh Token 필요
API->>API: Refresh Token 검증
API->>DB: 토큰 유효성 확인
alt 유효한 토큰
API->>API: 새 토큰 쌍 생성
API->>DB: Refresh Token 업데이트
API-->>Client: 새 토큰 반환
else 만료된 토큰
API-->>Client: 401 Unauthorized
end
도메인별 통계 조회
sequenceDiagram
participant Admin
participant API
participant DB
Admin->>API: GET /v1/users/admin/stats
Note over Admin,API: SUPER_ADMIN 권한 필요
par 병렬 처리
API->>DB: 판매 통계 조회
API->>DB: 수당 통계 조회
API->>DB: 사용자 통계 조회
end
API-->>Admin: 통합 통계 반환