75 lines
1.5 KiB
Dart
75 lines
1.5 KiB
Dart
class User {
|
|
String id;
|
|
String name;
|
|
String phoneNumber;
|
|
bool hasSignup;
|
|
List<String> privileges = [];
|
|
|
|
String fcsID;
|
|
|
|
String get phone => phoneNumber != null && phoneNumber.startsWith("959")
|
|
? "0${phoneNumber.substring(2)}"
|
|
: phoneNumber;
|
|
|
|
User({
|
|
this.id,
|
|
this.name,
|
|
this.phoneNumber,
|
|
this.fcsID,
|
|
});
|
|
|
|
factory User.fromJson(Map<String, dynamic> json) {
|
|
return User(
|
|
id: json['id'],
|
|
name: json['user_name'],
|
|
phoneNumber: json['phone_number'],
|
|
);
|
|
}
|
|
|
|
Map<String, dynamic> toJson() => {
|
|
'id': id,
|
|
'user_name': name,
|
|
'phone_number': phoneNumber,
|
|
};
|
|
|
|
Map<String, dynamic> toMap() {
|
|
return {
|
|
'user_name': name,
|
|
'phone_number': phoneNumber,
|
|
};
|
|
}
|
|
|
|
factory User.fromMap(Map<String, dynamic> map, String docID) {
|
|
return User(
|
|
id: docID,
|
|
name: map['user_name'],
|
|
phoneNumber: map['phone_number'],
|
|
);
|
|
}
|
|
|
|
bool isCustomer() {
|
|
return privileges == null || privileges.length == 0;
|
|
}
|
|
|
|
bool hasSysAdmin() {
|
|
return privileges != null ? privileges.contains('sa') : false;
|
|
}
|
|
|
|
bool hasAdmin() {
|
|
return privileges != null ? privileges.contains('admin') : false;
|
|
}
|
|
|
|
bool hasMaintenance() {
|
|
return privileges != null ? privileges.contains('mt') : false;
|
|
}
|
|
|
|
bool hasCustomers() {
|
|
return privileges != null ? privileges.contains('c') : false;
|
|
}
|
|
|
|
@override
|
|
String toString() {
|
|
return 'User{name: $name, phoneNumber: $phoneNumber,hasSignup:$hasSignup}';
|
|
}
|
|
}
|