backup: 사용하지 않는 파일 삭제 전 복구 지점
- 전체 371개 파일 중 82개 미사용 파일 식별 - Phase 1: 33개 파일 삭제 예정 (100% 안전) - Phase 2: 30개 파일 삭제 검토 예정 - Phase 3: 19개 파일 수동 검토 예정 🤖 Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import 'package:injectable/injectable.dart';
|
||||
import '../../core/constants/app_constants.dart';
|
||||
import '../../data/models/rent_dto.dart';
|
||||
import '../repositories/rent_repository.dart';
|
||||
|
||||
@@ -10,18 +11,24 @@ class RentUseCase {
|
||||
|
||||
RentUseCase(this._repository);
|
||||
|
||||
/// 임대 목록 조회 (백엔드 스키마 기반)
|
||||
/// 임대 목록 조회 (백엔드 실제 파라미터)
|
||||
Future<RentListResponse> getRents({
|
||||
int page = 1,
|
||||
int pageSize = 10,
|
||||
String? search,
|
||||
int? equipmentHistoryId,
|
||||
int perPage = AppConstants.rentPageSize,
|
||||
int? equipmentId,
|
||||
int? companyId,
|
||||
bool? isActive,
|
||||
DateTime? dateFrom,
|
||||
DateTime? dateTo,
|
||||
}) async {
|
||||
return await _repository.getRents(
|
||||
page: page,
|
||||
pageSize: pageSize,
|
||||
search: search,
|
||||
equipmentHistoryId: equipmentHistoryId,
|
||||
perPage: perPage,
|
||||
equipmentId: equipmentId,
|
||||
companyId: companyId,
|
||||
isActive: isActive,
|
||||
dateFrom: dateFrom,
|
||||
dateTo: dateTo,
|
||||
);
|
||||
}
|
||||
|
||||
@@ -57,70 +64,84 @@ class RentUseCase {
|
||||
return await _repository.deleteRent(id);
|
||||
}
|
||||
|
||||
/// 장비 이력별 임대 조회
|
||||
Future<List<RentDto>> getRentsByEquipmentHistory(int equipmentHistoryId) async {
|
||||
/// 진행중인 임대 조회 (백엔드 실존 API)
|
||||
Future<List<RentDto>> getActiveRents() async {
|
||||
return await _repository.getActiveRents();
|
||||
}
|
||||
|
||||
/// 장비별 임대 조회 (백엔드 필터링)
|
||||
Future<List<RentDto>> getRentsByEquipment(int equipmentId) async {
|
||||
final response = await getRents(
|
||||
pageSize: 1000,
|
||||
equipmentHistoryId: equipmentHistoryId,
|
||||
perPage: 1000,
|
||||
equipmentId: equipmentId,
|
||||
);
|
||||
return response.items;
|
||||
}
|
||||
|
||||
/// 회사별 임대 조회 (백엔드 필터링)
|
||||
Future<List<RentDto>> getRentsByCompany(int companyId) async {
|
||||
final response = await getRents(
|
||||
perPage: 1000,
|
||||
companyId: companyId,
|
||||
);
|
||||
return response.items;
|
||||
}
|
||||
|
||||
/// 특정 기간 내 임대 조회 (백엔드 날짜 필터링)
|
||||
Future<List<RentDto>> getRentsByDateRange({
|
||||
required DateTime startDate,
|
||||
required DateTime endDate,
|
||||
int? equipmentHistoryId,
|
||||
required DateTime dateFrom,
|
||||
required DateTime dateTo,
|
||||
int? equipmentId,
|
||||
int? companyId,
|
||||
}) async {
|
||||
final response = await getRents(
|
||||
pageSize: 1000,
|
||||
equipmentHistoryId: equipmentHistoryId,
|
||||
perPage: 1000,
|
||||
equipmentId: equipmentId,
|
||||
companyId: companyId,
|
||||
dateFrom: dateFrom,
|
||||
dateTo: dateTo,
|
||||
);
|
||||
|
||||
// 날짜 범위 필터링 (클라이언트 사이드)
|
||||
return response.items.where((rent) {
|
||||
return rent.startedAt.isAfter(startDate) &&
|
||||
rent.endedAt.isBefore(endDate);
|
||||
}).toList();
|
||||
return response.items;
|
||||
}
|
||||
|
||||
/// 현재 진행 중인 임대 조회
|
||||
Future<List<RentDto>> getCurrentRents({int? equipmentHistoryId}) async {
|
||||
/// 현재 진행 중인 임대 조회 (백엔드 계산값 활용)
|
||||
Future<List<RentDto>> getCurrentRents({int? equipmentId, int? companyId}) async {
|
||||
final response = await getRents(
|
||||
pageSize: 1000,
|
||||
equipmentHistoryId: equipmentHistoryId,
|
||||
perPage: 1000,
|
||||
equipmentId: equipmentId,
|
||||
companyId: companyId,
|
||||
isActive: true, // 백엔드 필터링
|
||||
);
|
||||
|
||||
final now = DateTime.now();
|
||||
return response.items.where((rent) {
|
||||
return rent.startedAt.isBefore(now) && rent.endedAt.isAfter(now);
|
||||
}).toList();
|
||||
return response.items;
|
||||
}
|
||||
|
||||
/// 종료된 임대 조회
|
||||
Future<List<RentDto>> getCompletedRents({int? equipmentHistoryId}) async {
|
||||
/// 종료된 임대 조회 (백엔드 필터링)
|
||||
Future<List<RentDto>> getCompletedRents({int? equipmentId, int? companyId}) async {
|
||||
final response = await getRents(
|
||||
pageSize: 1000,
|
||||
equipmentHistoryId: equipmentHistoryId,
|
||||
perPage: 1000,
|
||||
equipmentId: equipmentId,
|
||||
companyId: companyId,
|
||||
isActive: false, // 백엔드 필터링
|
||||
);
|
||||
|
||||
final now = DateTime.now();
|
||||
return response.items.where((rent) {
|
||||
return rent.endedAt.isBefore(now);
|
||||
}).toList();
|
||||
return response.items;
|
||||
}
|
||||
|
||||
/// 예정된 임대 조회
|
||||
Future<List<RentDto>> getUpcomingRents({int? equipmentHistoryId}) async {
|
||||
/// 예정된 임대 조회 (백엔드 필터링)
|
||||
Future<List<RentDto>> getUpcomingRents({int? equipmentId, int? companyId}) async {
|
||||
final now = DateTime.now();
|
||||
final tomorrow = now.add(Duration(days: 1));
|
||||
|
||||
final response = await getRents(
|
||||
pageSize: 1000,
|
||||
equipmentHistoryId: equipmentHistoryId,
|
||||
perPage: 1000,
|
||||
equipmentId: equipmentId,
|
||||
companyId: companyId,
|
||||
dateFrom: tomorrow, // 내일부터 시작하는 임대
|
||||
);
|
||||
|
||||
final now = DateTime.now();
|
||||
return response.items.where((rent) {
|
||||
return rent.startedAt.isAfter(now);
|
||||
}).toList();
|
||||
return response.items;
|
||||
}
|
||||
|
||||
/// 임대 기간 계산 (일수)
|
||||
@@ -137,22 +158,16 @@ class RentUseCase {
|
||||
return rent.endedAt.difference(now).inDays;
|
||||
}
|
||||
|
||||
/// 임대 통계 조회 (단순화)
|
||||
/// 임대 통계 조회 (백엔드 계산값 활용)
|
||||
Future<RentStatistics> getRentStatistics() async {
|
||||
final response = await getRents(pageSize: 1000);
|
||||
final response = await getRents(perPage: 1000);
|
||||
final rents = response.items;
|
||||
|
||||
final now = DateTime.now();
|
||||
// 백엔드 계산 필드 활용
|
||||
int totalCount = rents.length;
|
||||
int currentCount = rents.where((rent) =>
|
||||
rent.startedAt.isBefore(now) && rent.endedAt.isAfter(now)
|
||||
).length;
|
||||
int completedCount = rents.where((rent) =>
|
||||
rent.endedAt.isBefore(now)
|
||||
).length;
|
||||
int upcomingCount = rents.where((rent) =>
|
||||
rent.startedAt.isAfter(now)
|
||||
).length;
|
||||
int currentCount = rents.where((rent) => rent.isActive == true).length;
|
||||
int completedCount = rents.where((rent) => rent.isActive == false && rent.endedAt.isBefore(DateTime.now())).length;
|
||||
int upcomingCount = rents.where((rent) => rent.startedAt.isAfter(DateTime.now())).length;
|
||||
|
||||
return RentStatistics(
|
||||
totalCount: totalCount,
|
||||
|
||||
Reference in New Issue
Block a user