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

105 lines
3.0 KiB
Markdown

# 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 필드 없음
```json
{
"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 포함
```json
{
"id": 86,
"name": "아이스 맨",
"company_types": ["customer", "partner"],
...
}
```
### 필요한 개선
1. `/companies` 엔드포인트에 company_types 필드 추가
2. `/companies/branches` 엔드포인트에 company_types 필드 추가
### 영향
- 회사 목록 화면에서 유형(고객사/파트너사) 표시 불가
- 수정 후에도 목록에 반영되지 않음
- N+1 쿼리 문제 발생 (각 회사마다 상세 API 호출 필요)
### 임시 해결책
현재 프론트엔드에서 아래와 같이 처리 중:
- 회사 목록에서는 유형을 표시하지 않거나 기본값(고객사)으로 표시
- 수정/상세 화면에서만 정확한 유형 표시
### 제안하는 API 응답 형식
```json
{
"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`
- **오류 메시지**:
```json
{
"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
**우선순위**: 높음 (회사 유형 표시는 핵심 기능)