콘텐츠로 이동

시스템 흐름도

회원 가입/로그인 프로세스

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: 통합 통계 반환