사용하지 않는 파일 정리 전 백업 (Phase 10 완료 후 상태)
This commit is contained in:
@@ -227,14 +227,12 @@ class UserFormController extends ChangeNotifier {
|
||||
(_) => onResult(null),
|
||||
);
|
||||
} else {
|
||||
// 사용자 생성
|
||||
// 사용자 생성 (백엔드 API v1 준수)
|
||||
final params = CreateUserParams(
|
||||
username: username,
|
||||
email: email,
|
||||
password: password,
|
||||
name: name,
|
||||
email: email.isEmpty ? null : email,
|
||||
phone: phoneNumber.isEmpty ? null : phoneNumber,
|
||||
role: role,
|
||||
companiesId: 1, // TODO: 실제 회사 선택 기능 필요
|
||||
);
|
||||
|
||||
final result = await _createUserUseCase(params);
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get_it/get_it.dart';
|
||||
import 'package:superport/models/user_model.dart';
|
||||
import 'package:superport/core/controllers/base_list_controller.dart';
|
||||
@@ -7,6 +6,8 @@ import 'package:superport/domain/usecases/user/get_users_usecase.dart';
|
||||
import 'package:superport/domain/usecases/user/create_user_usecase.dart';
|
||||
import 'package:superport/domain/usecases/user/check_username_availability_usecase.dart';
|
||||
import 'package:superport/domain/repositories/user_repository.dart';
|
||||
import 'package:superport/domain/repositories/company_repository.dart';
|
||||
import 'package:superport/models/company_item_model.dart';
|
||||
import 'package:superport/core/errors/failures.dart';
|
||||
|
||||
/// 사용자 목록 화면 컨트롤러 (서버 API v0.2.1 대응)
|
||||
@@ -16,6 +17,7 @@ class UserListController extends BaseListController<User> {
|
||||
late final CreateUserUseCase _createUserUseCase;
|
||||
late final CheckUsernameAvailabilityUseCase _checkUsernameUseCase;
|
||||
late final UserRepository _userRepository;
|
||||
late final CompanyRepository _companyRepository;
|
||||
|
||||
// 필터 옵션 (서버 API v0.2.1 지원 필드만)
|
||||
UserRole? _filterRole;
|
||||
@@ -31,12 +33,25 @@ class UserListController extends BaseListController<User> {
|
||||
// 사용자명 중복 체크 상태
|
||||
bool _usernameCheckInProgress = false;
|
||||
bool get isCheckingUsername => _usernameCheckInProgress;
|
||||
|
||||
// 회사 선택 관련 상태
|
||||
List<CompanyItem> _companies = [];
|
||||
int? _selectedCompanyId;
|
||||
bool _isLoadingCompanies = false;
|
||||
|
||||
List<CompanyItem> get companies => _companies;
|
||||
int? get selectedCompanyId => _selectedCompanyId;
|
||||
bool get isLoadingCompanies => _isLoadingCompanies;
|
||||
|
||||
UserListController() {
|
||||
_getUsersUseCase = GetIt.instance<GetUsersUseCase>();
|
||||
_createUserUseCase = GetIt.instance<CreateUserUseCase>();
|
||||
_checkUsernameUseCase = GetIt.instance<CheckUsernameAvailabilityUseCase>();
|
||||
_userRepository = GetIt.instance<UserRepository>();
|
||||
_companyRepository = GetIt.instance<CompanyRepository>();
|
||||
|
||||
// 초기화 시 회사 목록 로드
|
||||
loadCompanies();
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -118,6 +133,42 @@ class UserListController extends BaseListController<User> {
|
||||
loadData(isRefresh: true);
|
||||
}
|
||||
|
||||
/// 회사 목록 로드
|
||||
Future<void> loadCompanies() async {
|
||||
_isLoadingCompanies = true;
|
||||
notifyListeners();
|
||||
|
||||
try {
|
||||
final result = await _companyRepository.getCompanies();
|
||||
result.fold(
|
||||
(failure) {
|
||||
// 에러 처리는 로그만 남기고 계속 진행
|
||||
print('회사 목록 로드 실패: ${failure.message}');
|
||||
},
|
||||
(paginatedResponse) {
|
||||
_companies = paginatedResponse.items
|
||||
.map((company) => CompanyItem.headquarters(company))
|
||||
.toList();
|
||||
// 첫 번째 회사를 기본 선택
|
||||
if (_companies.isNotEmpty && _selectedCompanyId == null) {
|
||||
_selectedCompanyId = _companies.first.company.id;
|
||||
}
|
||||
},
|
||||
);
|
||||
} catch (e) {
|
||||
print('회사 목록 로드 중 예외 발생: $e');
|
||||
} finally {
|
||||
_isLoadingCompanies = false;
|
||||
notifyListeners();
|
||||
}
|
||||
}
|
||||
|
||||
/// 회사 선택
|
||||
void selectCompany(int? companyId) {
|
||||
_selectedCompanyId = companyId;
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
/// 사용자 생성
|
||||
Future<void> createUser({
|
||||
required String username,
|
||||
@@ -126,14 +177,19 @@ class UserListController extends BaseListController<User> {
|
||||
required String name,
|
||||
String? phone,
|
||||
required UserRole role,
|
||||
int? companiesId,
|
||||
}) async {
|
||||
final effectiveCompanyId = companiesId ?? _selectedCompanyId;
|
||||
|
||||
if (effectiveCompanyId == null) {
|
||||
throw Exception('회사를 선택해주세요.');
|
||||
}
|
||||
|
||||
final params = CreateUserParams(
|
||||
username: username,
|
||||
email: email,
|
||||
password: password,
|
||||
name: name,
|
||||
email: email,
|
||||
phone: phone,
|
||||
role: role,
|
||||
companiesId: effectiveCompanyId,
|
||||
);
|
||||
|
||||
final result = await _createUserUseCase(params);
|
||||
|
||||
Reference in New Issue
Block a user