STUDY/TIL

[TIL] 241207 - 대규모 AI 시스템 설계 프로젝트 3일차

7alswn 2024. 12. 7. 16:47

Do - List

  • 프로세스 정리
  • 베이스코드 작성

1. 허브 서비스 (Hub Service)

1.1 허브 등록

  • 요청자: MASTER
  • API: POST /hub
  • 입력 데이터:
    • 허브명: name
    • 주소: address
    • 위도: latitude
    • 경도: longitude
    • 허브 관리자: managerId
  • 기능:
    • MASTER가 새로운 허브를 등록
    • 입력된 허브명과 위치 정보를 기반으로 데이터 생성 → p_hub에 저장
  • 출력 데이터: 등록된 허브 ID, 생성된 허브 정보

1.2 허브 조회

  • 요청자: 모든 로그인 사용자
  • API:
    • 단일 허브 조회: GET /hub/{hub_id}
    • 모든 허브 조회: GET /hub
  • 출력 데이터: 허브 정보 목록 (허브명, 위치, 담당자)

1.3 허브 수정

  • 요청자: MASTER
  • API: PATCH /hub/{hub_id}
  • 입력 데이터:
    • 허브명: name
    • 주소: address
    • 위도: latitude
    • 경도: longitude
    • 허브 관리자 변경: managerId
  • 출력 데이터: 수정된 허브 정보

1.4 허브 내 소속 업체 조회

  • 요청자: 허브 관리자
  • API: GET /hub/{hub_id}/company
  • 기능:
    • 특정 허브에 소속된 업체 정보 조회
  • 출력 데이터: 업체 목록 (업체명, 주소, type)

2. 허브 루트 서비스 (Hub Route Service)

2.1 경로 등록

  • 요청자: MASTER
  • API: POST /hub-route
  • 입력 데이터:
    • 출발 허브 ID: origin_hub_id
    • 도착 허브 ID: destination _hub_id
    • 거리: actual_distance
    • 소요 시간: actual_duration
  • 출력 데이터: 생성된 경로 ID 및 경로 정보

2.2 경로 조회

  • 요청자: 모든 로그인 사용자
  • API:
    • 경로 리스트 조회: GET /hub-route
    • 단일 경로 조회: GET /hub-route/{hub_route_id}
    • 특정 출발지와 목적지로 경로 검색: GET /hub-route?source={origin_hub_id}&destination={destination _hub_id}
  • 기능:
    • 경로 상세 정보 확인 및 허브 간 이동 계획 수립
  • 출력 데이터: 경로 정보 (출발 허브, 도착 허브, 거리, 소요 시간)

2.3 경로 수정

  • 요청자: MASTER
  • API: PATCH /hub-route/{hub_route_id}
  • 입력 데이터: 거리, 소요 시간
  • 기능: 경로 정보 수정
  • 출력 데이터: 수정된 경로 정보

3. 업체 서비스 (Company Service)

3.1 업체 등록

  • 요청자: MASTER, 허브 관리자
  • API: POST /company
  • 입력 데이터:
    • 업체명: name
    • 위치 정보: address
    • 타입: type
    • 허브 소속: hub_id
    • 업체 담당자: user_id
  • 출력 데이터: 등록된 업체 ID, 생성된 업체 정보

3.2 업체 조회

  • 요청자: 모든 로그인 사용자
  • API:
    • 단일 업체 조회: GET /company/{company_id}
    • 허브별 업체 리스트 조회: GET /hub/{hub_id}/company
    • 업체 소속 허브 조회: GET /company/{company_id}/hub
  • 출력 데이터: 업체 정보 목록

3.3 업체 수정

  • 요청자: MASTER, 허브 관리자, 업체 담당자
  • API: PATCH /company/{company_id}
  • 입력 데이터:
    • 업체명: name
    • 위치 정보: address
    • 타입: type
    • 허브 소속 변경: hub_id
    • 업체 담당자 변경: user_id
  • 기능:
    • 업체 정보를 수정하거나 허브 소속, 업체 담당자 변경
  • 출력 데이터: 수정된 업체 정보