사용하지 않는 파일 정리 전 백업 (Phase 10 완료 후 상태)

This commit is contained in:
JiWoong Sul
2025-08-29 15:11:59 +09:00
parent a740ff10c8
commit d916b281a7
333 changed files with 53617 additions and 22574 deletions

View File

@@ -1,8 +1,7 @@
import 'package:dartz/dartz.dart';
import 'package:injectable/injectable.dart';
import '../../../data/models/warehouse/warehouse_dto.dart';
import '../../../data/models/warehouse/warehouse_location_dto.dart';
import '../../../models/warehouse_location_model.dart';
import '../../../models/address_model.dart';
import '../../repositories/warehouse_location_repository.dart';
import '../../../core/errors/failures.dart';
import '../base_usecase.dart';
@@ -22,33 +21,25 @@ class CreateWarehouseLocationUseCase implements UseCase<WarehouseLocationDto, Cr
return Left(ValidationFailure(message: '창고 위치 이름은 필수입니다'));
}
// 비즈니스 로직: 주소 유효성 검증
if (params.address.isEmpty) {
return Left(ValidationFailure(message: '창고 주소는 필수입니다'));
}
// 비즈니스 로직: 연락처 형식 검증
if (params.contactNumber != null && params.contactNumber!.isNotEmpty) {
final phoneRegex = RegExp(r'^[\d\-\+\(\)\s]+$');
if (!phoneRegex.hasMatch(params.contactNumber!)) {
return Left(ValidationFailure(message: '올바른 연락처 형식이 아닙니다'));
}
// 비즈니스 로직: 우편번호 유효성 검증
if (params.zipcode != null && params.zipcode!.isEmpty) {
return Left(ValidationFailure(message: '올바른 우편번호를 입력해주세요'));
}
final warehouseLocation = WarehouseLocation(
id: 0, // Default id for new warehouse location
name: params.name,
address: params.address,
address: params.zipcode ?? '', // Use zipcode as address
remark: params.description,
);
final result = await repository.createWarehouseLocation(warehouseLocation);
return result.map((createdLocation) => WarehouseLocationDto(
id: createdLocation.id ?? 0,
id: createdLocation.id,
name: createdLocation.name,
address: createdLocation.address,
isActive: true, // Default value since model doesn't have isActive
createdAt: DateTime.now(), // Add required createdAt parameter
zipcodesZipcode: params.zipcode,
remark: params.description,
registeredAt: DateTime.now(),
));
} catch (e) {
return Left(ServerFailure(message: e.toString()));
@@ -59,32 +50,20 @@ class CreateWarehouseLocationUseCase implements UseCase<WarehouseLocationDto, Cr
/// 창고 위치 생성 파라미터
class CreateWarehouseLocationParams {
final String name;
final String address;
final String? zipcode;
final String? description;
final String? contactNumber;
final String? manager;
final double? latitude;
final double? longitude;
CreateWarehouseLocationParams({
required this.name,
required this.address,
this.zipcode,
this.description,
this.contactNumber,
this.manager,
this.latitude,
this.longitude,
});
Map<String, dynamic> toMap() {
return {
'name': name,
'address': address,
'description': description,
'contact_number': contactNumber,
'manager': manager,
'latitude': latitude,
'longitude': longitude,
'Name': name,
'zipcodes_zipcode': zipcode,
'Remark': description,
};
}
}

View File

@@ -1,6 +1,6 @@
import 'package:dartz/dartz.dart';
import 'package:injectable/injectable.dart';
import '../../../data/models/warehouse/warehouse_dto.dart';
import '../../../data/models/warehouse/warehouse_location_dto.dart';
import '../../repositories/warehouse_location_repository.dart';
import '../../../core/errors/failures.dart';
import '../base_usecase.dart';
@@ -17,11 +17,11 @@ class GetWarehouseLocationDetailUseCase implements UseCase<WarehouseLocationDto,
try {
final result = await repository.getWarehouseLocationById(id);
return result.map((location) => WarehouseLocationDto(
id: location.id ?? 0,
id: location.id,
name: location.name,
address: location.address.toString(),
isActive: true, // Default value since model doesn't have isActive
createdAt: DateTime.now(), // Add required createdAt parameter
zipcodesZipcode: location.address, // Map address to zipcode
remark: location.remark,
registeredAt: DateTime.now(),
));
} catch (e) {
return Left(ServerFailure(message: e.toString()));

View File

@@ -1,20 +1,20 @@
import 'package:dartz/dartz.dart';
import 'package:injectable/injectable.dart';
import '../../../data/models/common/pagination_params.dart';
import '../../../data/models/warehouse/warehouse_dto.dart';
import '../../../data/models/warehouse/warehouse_location_dto.dart';
import '../../repositories/warehouse_location_repository.dart';
import '../../../core/errors/failures.dart';
import '../base_usecase.dart';
/// 창고 위치 목록 조회 UseCase
@injectable
class GetWarehouseLocationsUseCase implements UseCase<WarehouseLocationListDto, GetWarehouseLocationsParams> {
class GetWarehouseLocationsUseCase implements UseCase<WarehouseLocationListResponse, GetWarehouseLocationsParams> {
final WarehouseLocationRepository repository;
GetWarehouseLocationsUseCase(this.repository);
@override
Future<Either<Failure, WarehouseLocationListDto>> call(GetWarehouseLocationsParams params) async {
Future<Either<Failure, WarehouseLocationListResponse>> call(GetWarehouseLocationsParams params) async {
try {
final result = await repository.getWarehouseLocations(
page: params.page,
@@ -26,18 +26,18 @@ class GetWarehouseLocationsUseCase implements UseCase<WarehouseLocationListDto,
sortBy: params.filters?['sortBy'],
sortOrder: params.filters?['sortOrder'],
);
return result.map((paginatedResponse) => WarehouseLocationListDto(
return result.map((paginatedResponse) => WarehouseLocationListResponse(
items: paginatedResponse.items.map((location) => WarehouseLocationDto(
id: location.id ?? 0,
id: location.id,
name: location.name,
address: location.address.toString(),
isActive: true, // Default value since model doesn't have isActive
createdAt: DateTime.now(), // Add required createdAt parameter
zipcodesZipcode: location.address, // Map address to zipcode
remark: location.remark,
registeredAt: DateTime.now(),
)).toList(),
page: paginatedResponse.page,
perPage: params.perPage, // Add missing required perPage parameter
total: paginatedResponse.totalElements,
currentPage: paginatedResponse.page,
totalCount: paginatedResponse.totalElements,
totalPages: paginatedResponse.totalPages,
pageSize: params.perPage,
));
} catch (e) {
return Left(ServerFailure(message: e.toString()));

View File

@@ -1,8 +1,7 @@
import 'package:dartz/dartz.dart';
import 'package:injectable/injectable.dart';
import '../../../data/models/warehouse/warehouse_dto.dart';
import '../../../data/models/warehouse/warehouse_location_dto.dart';
import '../../../models/warehouse_location_model.dart';
import '../../../models/address_model.dart';
import '../../repositories/warehouse_location_repository.dart';
import '../../../core/errors/failures.dart';
import '../base_usecase.dart';
@@ -22,41 +21,25 @@ class UpdateWarehouseLocationUseCase implements UseCase<WarehouseLocationDto, Up
return Left(ValidationFailure(message: '창고 위치 이름은 비어있을 수 없습니다'));
}
// 비즈니스 로직: 주소 유효성 검증
if (params.address != null && params.address!.isEmpty) {
return Left(ValidationFailure(message: '창고 주소는 비어있을 수 없습니다'));
}
// 비즈니스 로직: 연락처 형식 검증
if (params.contactNumber != null && params.contactNumber!.isNotEmpty) {
final phoneRegex = RegExp(r'^[\d\-\+\(\)\s]+$');
if (!phoneRegex.hasMatch(params.contactNumber!)) {
return Left(ValidationFailure(message: '올바른 연락처 형식이 아닙니다'));
}
}
// 비즈니스 로직: 좌표 유효성 검증
if (params.latitude != null && (params.latitude! < -90 || params.latitude! > 90)) {
return Left(ValidationFailure(message: '유효하지 않은 위도값입니다'));
}
if (params.longitude != null && (params.longitude! < -180 || params.longitude! > 180)) {
return Left(ValidationFailure(message: '유효하지 않은 경도값입니다'));
// 비즈니스 로직: 우편번호 유효성 검증
if (params.zipcode != null && params.zipcode!.isEmpty) {
return Left(ValidationFailure(message: '올바른 우편번호를 입력해주세요'));
}
final warehouseLocation = WarehouseLocation(
id: params.id,
name: params.name ?? '',
address: params.address,
address: params.zipcode ?? '', // Use zipcode as address
remark: params.description,
);
final result = await repository.updateWarehouseLocation(params.id, warehouseLocation);
return result.map((updatedLocation) => WarehouseLocationDto(
id: updatedLocation.id ?? 0,
id: updatedLocation.id,
name: updatedLocation.name,
address: updatedLocation.address,
isActive: true, // Default value since model doesn't have isActive
createdAt: DateTime.now(), // Add required createdAt parameter
zipcodesZipcode: params.zipcode,
remark: params.description,
updatedAt: DateTime.now(),
));
} catch (e) {
return Left(ServerFailure(message: e.toString()));
@@ -68,36 +51,21 @@ class UpdateWarehouseLocationUseCase implements UseCase<WarehouseLocationDto, Up
class UpdateWarehouseLocationParams {
final int id;
final String? name;
final String? address;
final String? zipcode;
final String? description;
final String? contactNumber;
final String? manager;
final double? latitude;
final double? longitude;
final bool? isActive;
UpdateWarehouseLocationParams({
required this.id,
this.name,
this.address,
this.zipcode,
this.description,
this.contactNumber,
this.manager,
this.latitude,
this.longitude,
this.isActive,
});
Map<String, dynamic> toMap() {
final Map<String, dynamic> data = {};
if (name != null) data['name'] = name;
if (address != null) data['address'] = address;
if (description != null) data['description'] = description;
if (contactNumber != null) data['contact_number'] = contactNumber;
if (manager != null) data['manager'] = manager;
if (latitude != null) data['latitude'] = latitude;
if (longitude != null) data['longitude'] = longitude;
if (isActive != null) data['is_active'] = isActive;
if (name != null) data['Name'] = name;
if (zipcode != null) data['zipcodes_zipcode'] = zipcode;
if (description != null) data['Remark'] = description;
return data;
}
}