aboutsummaryrefslogtreecommitdiffstats
path: root/src/models/User.js
blob: 5a614efbeb25ec0bdad8191be68025ce5173db3b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import { observable } from 'mobx';

export default class User {
  id = null;

  @observable email = null;

  @observable firstname = null;

  @observable lastname = null;

  @observable organization = null;

  @observable accountType = null;

  @observable emailIsConfirmed = true;

  // better assume it's confirmed to avoid noise
  @observable subscription = {};

  @observable isSubscriptionOwner = false;

  @observable hasSubscription = true;

  @observable hadSubscription = false;

  @observable isPremium = true;

  @observable beta = false;

  @observable donor = {};

  @observable isDonor = false;

  @observable isMiner = false;

  @observable locale = false;

  @observable team = {};


  constructor(data) {
    if (!data.id) {
      throw Error('User requires Id');
    }

    this.id = data.id;
    this.email = data.email || this.email;
    this.firstname = data.firstname || this.firstname;
    this.lastname = data.lastname || this.lastname;
    this.organization = data.organization || this.organization;
    this.accountType = data.accountType || this.accountType;
    this.isPremium = true;
    this.beta = data.beta || this.beta;
    this.donor = data.donor || this.donor;
    this.isDonor = data.isDonor || this.isDonor;
    this.isMiner = data.isMiner || this.isMiner;
    this.locale = data.locale || this.locale;

    this.isSubscriptionOwner = data.isSubscriptionOwner || this.isSubscriptionOwner;
    this.hasSubscription = data.hasSubscription || this.hasSubscription;
    this.hadSubscription = data.hadSubscription || this.hadSubscription;

    this.team = data.team || this.team;
  }
}