- UserRemoteDataSource: 사용자 CRUD, 상태 변경, 비밀번호 변경, 중복 확인 API 구현 - UserService: DTO-Model 변환 로직 및 역할/전화번호 매핑 처리 - UserListController: ChangeNotifier 패턴 적용, 페이지네이션, 검색, 필터링 기능 추가 - UserFormController: API 연동, username 중복 확인 기능 추가 - user_form.dart: username/password 필드 추가 및 실시간 검증 - user_list_redesign.dart: Provider 패턴 적용, 무한 스크롤 구현 - equipment_out_form_controller.dart: 구문 오류 수정 - API 통합 진행률: 85% (사용자 관리 100% 완료)
71 lines
1.9 KiB
Dart
71 lines
1.9 KiB
Dart
class User {
|
|
final int? id;
|
|
final int companyId;
|
|
final int? branchId; // 지점 ID
|
|
final String name;
|
|
final String role; // 관리등급: S(관리자), M(멤버)
|
|
final String? position; // 직급
|
|
final String? email; // 이메일
|
|
final List<Map<String, String>> phoneNumbers; // 전화번호 목록 (유형과 번호)
|
|
final String? username; // 사용자명 (API 연동용)
|
|
final bool isActive; // 활성화 상태
|
|
final DateTime? createdAt; // 생성일
|
|
final DateTime? updatedAt; // 수정일
|
|
|
|
User({
|
|
this.id,
|
|
required this.companyId,
|
|
this.branchId,
|
|
required this.name,
|
|
required this.role,
|
|
this.position,
|
|
this.email,
|
|
this.phoneNumbers = const [],
|
|
this.username,
|
|
this.isActive = true,
|
|
this.createdAt,
|
|
this.updatedAt,
|
|
});
|
|
|
|
Map<String, dynamic> toJson() {
|
|
return {
|
|
'id': id,
|
|
'companyId': companyId,
|
|
'branchId': branchId,
|
|
'name': name,
|
|
'role': role,
|
|
'position': position,
|
|
'email': email,
|
|
'phoneNumbers': phoneNumbers,
|
|
'username': username,
|
|
'isActive': isActive,
|
|
'createdAt': createdAt?.toIso8601String(),
|
|
'updatedAt': updatedAt?.toIso8601String(),
|
|
};
|
|
}
|
|
|
|
factory User.fromJson(Map<String, dynamic> json) {
|
|
return User(
|
|
id: json['id'],
|
|
companyId: json['companyId'],
|
|
branchId: json['branchId'],
|
|
name: json['name'],
|
|
role: json['role'],
|
|
position: json['position'],
|
|
email: json['email'],
|
|
phoneNumbers:
|
|
json['phoneNumbers'] != null
|
|
? List<Map<String, String>>.from(json['phoneNumbers'])
|
|
: [],
|
|
username: json['username'],
|
|
isActive: json['isActive'] ?? true,
|
|
createdAt: json['createdAt'] != null
|
|
? DateTime.parse(json['createdAt'])
|
|
: null,
|
|
updatedAt: json['updatedAt'] != null
|
|
? DateTime.parse(json['updatedAt'])
|
|
: null,
|
|
);
|
|
}
|
|
}
|