사용하지 않는 파일 정리 전 백업 (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

@@ -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);

View File

@@ -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);