사용하지 않는 파일 정리 전 백업 (Phase 10 완료 후 상태)
This commit is contained in:
@@ -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,
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -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()));
|
||||
|
||||
@@ -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()));
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user