update api

This commit is contained in:
Phuoc Nguyen
2025-10-10 17:15:40 +07:00
parent b94c158004
commit 04f7042b8d
24 changed files with 3322 additions and 8 deletions

View File

@@ -0,0 +1,66 @@
import '../../domain/entities/user.dart';
/// User model for data layer (extends User entity)
class UserModel extends User {
const UserModel({
required super.id,
required super.name,
required super.email,
required super.roles,
required super.isActive,
required super.createdAt,
required super.updatedAt,
});
/// Create UserModel from JSON
factory UserModel.fromJson(Map<String, dynamic> json) {
return UserModel(
id: json['id'] as String,
name: json['name'] as String,
email: json['email'] as String,
roles: (json['roles'] as List<dynamic>).cast<String>(),
isActive: json['isActive'] as bool? ?? true,
createdAt: DateTime.parse(json['createdAt'] as String),
updatedAt: DateTime.parse(json['updatedAt'] as String),
);
}
/// Convert UserModel to JSON
Map<String, dynamic> toJson() {
return {
'id': id,
'name': name,
'email': email,
'roles': roles,
'isActive': isActive,
'createdAt': createdAt.toIso8601String(),
'updatedAt': updatedAt.toIso8601String(),
};
}
/// Create UserModel from User entity
factory UserModel.fromEntity(User user) {
return UserModel(
id: user.id,
name: user.name,
email: user.email,
roles: user.roles,
isActive: user.isActive,
createdAt: user.createdAt,
updatedAt: user.updatedAt,
);
}
/// Convert to User entity
User toEntity() {
return User(
id: id,
name: name,
email: email,
roles: roles,
isActive: isActive,
createdAt: createdAt,
updatedAt: updatedAt,
);
}
}