feat: API 연동 개선 및 라이선스 모델 확장

- 라이선스 모델 전면 개편 (상세 필드 추가, 계산 필드 구현)
- API 응답 처리 개선 (HTTP 상태 코드 기반)
- 장비 출고 폼 컨트롤러 추가
- 회사 지점 정보 모델 추가
- 공통 데이터 모델 구조 추가
- 전체 서비스 레이어 API 호출 방식 통일
- UI 컴포넌트 마이너 개선
This commit is contained in:
JiWoong Sul
2025-07-25 01:22:15 +09:00
parent 8384423cf2
commit 71b7b7f40b
42 changed files with 1543 additions and 315 deletions

View File

@@ -10,7 +10,6 @@ import 'package:superport/data/models/equipment/equipment_out_request.dart';
import 'package:superport/data/models/equipment/equipment_request.dart';
import 'package:superport/data/models/equipment/equipment_response.dart';
import 'package:superport/models/equipment_unified_model.dart';
import 'package:superport/utils/constants.dart';
class EquipmentService {
final EquipmentRemoteDataSource _remoteDataSource = GetIt.instance<EquipmentRemoteDataSource>();
@@ -34,9 +33,9 @@ class EquipmentService {
return dtoList.map((dto) => _convertListDtoToEquipment(dto)).toList();
} on ServerException catch (e) {
throw Failure(message: e.message);
throw ServerFailure(message: e.message);
} catch (e) {
throw Failure(message: 'Failed to fetch equipment list: $e');
throw ServerFailure(message: 'Failed to fetch equipment list: $e');
}
}
@@ -59,9 +58,9 @@ class EquipmentService {
final response = await _remoteDataSource.createEquipment(request);
return _convertResponseToEquipment(response);
} on ServerException catch (e) {
throw Failure(message: e.message);
throw ServerFailure(message: e.message);
} catch (e) {
throw Failure(message: 'Failed to create equipment: $e');
throw ServerFailure(message: 'Failed to create equipment: $e');
}
}
@@ -71,11 +70,16 @@ class EquipmentService {
final response = await _remoteDataSource.getEquipmentDetail(id);
return _convertResponseToEquipment(response);
} on ServerException catch (e) {
throw Failure(message: e.message);
throw ServerFailure(message: e.message);
} catch (e) {
throw Failure(message: 'Failed to fetch equipment detail: $e');
throw ServerFailure(message: 'Failed to fetch equipment detail: $e');
}
}
// 장비 조회 (getEquipmentDetail의 alias)
Future<Equipment> getEquipment(int id) async {
return getEquipmentDetail(id);
}
// 장비 수정
Future<Equipment> updateEquipment(int id, Equipment equipment) async {
@@ -96,9 +100,9 @@ class EquipmentService {
final response = await _remoteDataSource.updateEquipment(id, request);
return _convertResponseToEquipment(response);
} on ServerException catch (e) {
throw Failure(message: e.message);
throw ServerFailure(message: e.message);
} catch (e) {
throw Failure(message: 'Failed to update equipment: $e');
throw ServerFailure(message: 'Failed to update equipment: $e');
}
}
@@ -107,9 +111,9 @@ class EquipmentService {
try {
await _remoteDataSource.deleteEquipment(id);
} on ServerException catch (e) {
throw Failure(message: e.message);
throw ServerFailure(message: e.message);
} catch (e) {
throw Failure(message: 'Failed to delete equipment: $e');
throw ServerFailure(message: 'Failed to delete equipment: $e');
}
}
@@ -119,9 +123,9 @@ class EquipmentService {
final response = await _remoteDataSource.changeEquipmentStatus(id, status, reason);
return _convertResponseToEquipment(response);
} on ServerException catch (e) {
throw Failure(message: e.message);
throw ServerFailure(message: e.message);
} catch (e) {
throw Failure(message: 'Failed to change equipment status: $e');
throw ServerFailure(message: 'Failed to change equipment status: $e');
}
}
@@ -137,9 +141,9 @@ class EquipmentService {
return await _remoteDataSource.addEquipmentHistory(equipmentId, request);
} on ServerException catch (e) {
throw Failure(message: e.message);
throw ServerFailure(message: e.message);
} catch (e) {
throw Failure(message: 'Failed to add equipment history: $e');
throw ServerFailure(message: 'Failed to add equipment history: $e');
}
}
@@ -148,9 +152,9 @@ class EquipmentService {
try {
return await _remoteDataSource.getEquipmentHistory(equipmentId, page: page, perPage: perPage);
} on ServerException catch (e) {
throw Failure(message: e.message);
throw ServerFailure(message: e.message);
} catch (e) {
throw Failure(message: 'Failed to fetch equipment history: $e');
throw ServerFailure(message: 'Failed to fetch equipment history: $e');
}
}
@@ -171,9 +175,9 @@ class EquipmentService {
return await _remoteDataSource.equipmentIn(request);
} on ServerException catch (e) {
throw Failure(message: e.message);
throw ServerFailure(message: e.message);
} catch (e) {
throw Failure(message: 'Failed to process equipment in: $e');
throw ServerFailure(message: 'Failed to process equipment in: $e');
}
}
@@ -196,9 +200,9 @@ class EquipmentService {
return await _remoteDataSource.equipmentOut(request);
} on ServerException catch (e) {
throw Failure(message: e.message);
throw ServerFailure(message: e.message);
} catch (e) {
throw Failure(message: 'Failed to process equipment out: $e');
throw ServerFailure(message: 'Failed to process equipment out: $e');
}
}