사용자 마스터 UI 및 테스트 구현

This commit is contained in:
JiWoong Sul
2025-09-22 21:27:45 +09:00
parent 2106d13b12
commit b6e50464d2
16 changed files with 1921 additions and 54 deletions

View File

@@ -0,0 +1,94 @@
class UserAccount {
UserAccount({
this.id,
required this.employeeNo,
required this.employeeName,
this.email,
this.mobileNo,
this.group,
this.isActive = true,
this.isDeleted = false,
this.note,
this.createdAt,
this.updatedAt,
});
final int? id;
final String employeeNo;
final String employeeName;
final String? email;
final String? mobileNo;
final UserGroup? group;
final bool isActive;
final bool isDeleted;
final String? note;
final DateTime? createdAt;
final DateTime? updatedAt;
UserAccount copyWith({
int? id,
String? employeeNo,
String? employeeName,
String? email,
String? mobileNo,
UserGroup? group,
bool? isActive,
bool? isDeleted,
String? note,
DateTime? createdAt,
DateTime? updatedAt,
}) {
return UserAccount(
id: id ?? this.id,
employeeNo: employeeNo ?? this.employeeNo,
employeeName: employeeName ?? this.employeeName,
email: email ?? this.email,
mobileNo: mobileNo ?? this.mobileNo,
group: group ?? this.group,
isActive: isActive ?? this.isActive,
isDeleted: isDeleted ?? this.isDeleted,
note: note ?? this.note,
createdAt: createdAt ?? this.createdAt,
updatedAt: updatedAt ?? this.updatedAt,
);
}
}
class UserGroup {
UserGroup({required this.id, required this.groupName});
final int id;
final String groupName;
}
class UserInput {
UserInput({
required this.employeeNo,
required this.employeeName,
required this.groupId,
this.email,
this.mobileNo,
this.isActive = true,
this.note,
});
final String employeeNo;
final String employeeName;
final int groupId;
final String? email;
final String? mobileNo;
final bool isActive;
final String? note;
Map<String, dynamic> toPayload() {
return {
'employee_no': employeeNo,
'employee_name': employeeName,
'group_id': groupId,
'email': email,
'mobile_no': mobileNo,
'is_active': isActive,
'note': note,
};
}
}