49 lines
1.1 KiB
JavaScript
49 lines
1.1 KiB
JavaScript
import { List, Record } from 'immutable';
|
|
|
|
export default class Profile extends Record({
|
|
addresses: new List(),
|
|
avatar: null,
|
|
email: null,
|
|
firstName: null,
|
|
generatedNomDeBid: false,
|
|
hasLinkedApple: false,
|
|
hasLinkedFacebook: false,
|
|
hasLinkedGoogle: false,
|
|
hasLocalAccount: false,
|
|
id: null,
|
|
isAllowedToBid: false,
|
|
isOrganizationEmployee: false,
|
|
isVerified: false,
|
|
lastName: null,
|
|
nomDeBid: null,
|
|
organizationIdentifier: null,
|
|
paymentToken: null,
|
|
phones: new List(),
|
|
}) {
|
|
get canBid() {
|
|
return this.isAllowedToBid && this.paymentToken !== null;
|
|
}
|
|
|
|
get fullName() {
|
|
return `${this.firstName} ${this.lastName}`;
|
|
}
|
|
|
|
get isRegisteredAccount() {
|
|
return (
|
|
this.hasLinkedApple ||
|
|
this.hasLinkedFacebook ||
|
|
this.hasLinkedGoogle ||
|
|
this.hasLocalAccount
|
|
);
|
|
}
|
|
}
|
|
|
|
Profile.fromJS = (data = {}) => {
|
|
return new Profile({
|
|
id: data._id,
|
|
...data,
|
|
addresses: new List(data.addresses),
|
|
phones: new List(data.phones),
|
|
});
|
|
};
|