Files
superport/API_ISSUES.md
JiWoong Sul 7d0077cd57
Some checks failed
Flutter Test & Quality Check / Build APK (push) Has been cancelled
Flutter Test & Quality Check / Test on macos-latest (push) Has been cancelled
Flutter Test & Quality Check / Test on ubuntu-latest (push) Has been cancelled
fix: 페이지네이션 로직 개선 및 상세 로그 추가
- 모든 관리 화면(회사, 장비, 입고지, 유지보수)의 페이지네이션 로직 통일
- Controller에서 전체 데이터 로드, View에서만 페이지네이션 처리
- 각 화면에 상세한 터미널 로그 추가로 데이터 로드 상태 추적 가능
- 회사 DTO에 지점 정보 포함 기능 추가
- 전체 79개 회사 중 14개만 표시되던 문제 해결
2025-08-09 19:40:39 +09:00

3.0 KiB

Superport API 개선 사항

1. [해결됨] 회사 목록 API에 company_types 필드 누락 및 제거 대응

최종 해결 내역 (2025-01-09)

  • 백엔드 변경사항:

    • company_types 필드 제거 예정
    • is_partner, is_customer 필드로 대체
  • 프론트엔드 대응 (완료):

    • CompanyListDto, CompanyResponse, CompanyBranchFlatDto에 is_partner, is_customer 필드 추가 (@Default(false))
    • CompanyService 변환 로직 수정 (하위 호환성 유지):
      • company_types가 있으면 우선 사용
      • company_types가 없으면 is_partner/is_customer 사용
      • 둘 다 없으면 빈 리스트 반환
    • 사이드 이펙트 없음 확인 (테스트 완료)

현재 상황

  • 문제 엔드포인트:

    • GET /companies
    • GET /companies/branches
  • 현재 응답: company_types 필드 없음

{
  "id": 95,
  "name": "한국물류창고(주)",
  "address": "경기도 용인시",
  "contact_name": "박물류",
  "contact_phone": "010-89208920",
  "contact_email": "contact@naver.com",
  "is_active": true,
  "created_at": "2025-08-08T09:31:04.661079Z"
}
  • 상세 API 응답 (GET /companies/{id}): company_types 포함
{
  "id": 86,
  "name": "아이스 맨",
  "company_types": ["customer", "partner"],
  ...
}

필요한 개선

  1. /companies 엔드포인트에 company_types 필드 추가
  2. /companies/branches 엔드포인트에 company_types 필드 추가

영향

  • 회사 목록 화면에서 유형(고객사/파트너사) 표시 불가
  • 수정 후에도 목록에 반영되지 않음
  • N+1 쿼리 문제 발생 (각 회사마다 상세 API 호출 필요)

임시 해결책

현재 프론트엔드에서 아래와 같이 처리 중:

  • 회사 목록에서는 유형을 표시하지 않거나 기본값(고객사)으로 표시
  • 수정/상세 화면에서만 정확한 유형 표시

제안하는 API 응답 형식

{
  "id": 95,
  "name": "한국물류창고(주)",
  "address": "경기도 용인시",
  "contact_name": "박물류",
  "contact_phone": "010-89208920",
  "contact_email": "contact@naver.com",
  "company_types": ["customer", "partner"],  // 추가 필요
  "is_active": true,
  "created_at": "2025-08-08T09:31:04.661079Z"
}

2. 장비 상태 관련 데이터베이스 오류

현재 상황

  • 문제 엔드포인트:

    • GET /overview/stats
    • GET /overview/equipment-status
  • 오류 메시지:

{
  "success": false,
  "error": {
    "code": "DATABASE_ERROR",
    "message": "Database error: Query Error: error returned from database: operator does not exist: character varying = equipment_status"
  }
}

원인 추정

  • equipment_status 타입과 character varying 타입 간 비교 연산자 문제
  • PostgreSQL에서 enum 타입 처리 오류

필요한 개선

  • 데이터베이스 쿼리 수정 또는 타입 캐스팅 추가

작성일: 2025-01-09 작성자: Claude Code 우선순위: 높음 (회사 유형 표시는 핵심 기능)