forked from baron/baron-sso
99 lines
2.5 KiB
Dart
99 lines
2.5 KiB
Dart
class Tenant {
|
|
final String id;
|
|
final String name;
|
|
final String slug;
|
|
final String description;
|
|
|
|
Tenant({
|
|
required this.id,
|
|
required this.name,
|
|
required this.slug,
|
|
required this.description,
|
|
});
|
|
|
|
factory Tenant.fromJson(Map<String, dynamic> json) {
|
|
return Tenant(
|
|
id: json['id'] ?? '',
|
|
name: json['name'] ?? '',
|
|
slug: json['slug'] ?? '',
|
|
description: json['description'] ?? '',
|
|
);
|
|
}
|
|
|
|
Map<String, dynamic> toJson() {
|
|
return {'id': id, 'name': name, 'slug': slug, 'description': description};
|
|
}
|
|
}
|
|
|
|
class UserProfile {
|
|
final String id;
|
|
final String email;
|
|
final String name;
|
|
final String phone;
|
|
final String department;
|
|
final String affiliationType;
|
|
final String companyCode;
|
|
final String? sessionAuthenticatedAt;
|
|
final Map<String, dynamic>? metadata;
|
|
final Tenant? tenant;
|
|
|
|
UserProfile({
|
|
required this.id,
|
|
required this.email,
|
|
required this.name,
|
|
required this.phone,
|
|
required this.department,
|
|
required this.affiliationType,
|
|
required this.companyCode,
|
|
this.sessionAuthenticatedAt,
|
|
this.metadata,
|
|
this.tenant,
|
|
});
|
|
|
|
factory UserProfile.fromJson(Map<String, dynamic> json) {
|
|
return UserProfile(
|
|
id: json['id'] ?? '',
|
|
email: json['email'] ?? '',
|
|
name: json['name'] ?? '',
|
|
phone: json['phone'] ?? '',
|
|
department: json['department'] ?? '',
|
|
affiliationType: json['affiliationType'] ?? '',
|
|
companyCode: json['companyCode'] ?? '',
|
|
sessionAuthenticatedAt: json['sessionAuthenticatedAt'] as String?,
|
|
metadata: json['metadata'] != null
|
|
? Map<String, dynamic>.from(json['metadata'])
|
|
: null,
|
|
tenant: json['tenant'] != null ? Tenant.fromJson(json['tenant']) : null,
|
|
);
|
|
}
|
|
|
|
Map<String, dynamic> toJson() {
|
|
return {
|
|
'id': id,
|
|
'email': email,
|
|
'name': name,
|
|
'phone': phone,
|
|
'department': department,
|
|
'affiliationType': affiliationType,
|
|
'companyCode': companyCode,
|
|
'sessionAuthenticatedAt': sessionAuthenticatedAt,
|
|
'metadata': metadata,
|
|
'tenant': tenant?.toJson(),
|
|
};
|
|
}
|
|
|
|
UserProfile copyWith({String? name, String? phone, String? department}) {
|
|
return UserProfile(
|
|
id: id,
|
|
email: email,
|
|
name: name ?? this.name,
|
|
phone: phone ?? this.phone,
|
|
department: department ?? this.department,
|
|
affiliationType: affiliationType,
|
|
companyCode: companyCode,
|
|
sessionAuthenticatedAt: sessionAuthenticatedAt,
|
|
tenant: tenant,
|
|
);
|
|
}
|
|
}
|