-
Notifications
You must be signed in to change notification settings - Fork 13
/
Copy pathorganizer.dart
118 lines (98 loc) · 3.07 KB
/
organizer.dart
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
// Project imports:
import 'package:notredame/features/ets/events/api-client/models/activity_area.dart';
/// Data-class that represents an organizer
class Organizer {
/// Organizer unique Id
final String id;
/// Organizer name
final String? name;
/// Organizer email
final String? email;
/// Organizer avatar URL
final String? avatarUrl;
/// Organizer type
final String? type;
/// Organizer's organization
final String? organization;
/// Organizer's activity area
final ActivityArea? activityArea;
/// Whether the organizer is active
final bool? isActive;
/// Organizer's profile description
final String? profileDescription;
/// Organizer's Facebook link
final String? facebookLink;
/// Organizer's Instagram link
final String? instagramLink;
/// Organizer's TikTok link
final String? tikTokLink;
/// Organizer's X link
final String? xLink;
/// Organizer's Discord link
final String? discordLink;
/// Organizer's LinkedIn link
final String? linkedInLink;
/// Organizer's Reddit link
final String? redditLink;
/// Organizer's website link
final String? webSiteLink;
Organizer({
required this.id,
this.name,
this.email,
this.avatarUrl,
this.type,
this.organization,
this.activityArea,
this.isActive,
this.profileDescription,
this.facebookLink,
this.instagramLink,
this.tikTokLink,
this.xLink,
this.discordLink,
this.linkedInLink,
this.redditLink,
this.webSiteLink,
});
/// Used to create [Organizer] instance from a JSON file
factory Organizer.fromJson(Map<String, dynamic> map) => Organizer(
id: map['id'] as String,
name: map['name'] as String?,
email: map['email'] as String?,
avatarUrl: map['avatarUrl'] as String?,
type: map['type'] as String?,
organization: map['organization'] as String?,
activityArea:
ActivityArea.fromJson(map['activityArea'] as Map<String, dynamic>),
isActive: map['isActive'] as bool?,
profileDescription: map['profileDescription'] as String?,
facebookLink: map['facebookLink'] as String?,
instagramLink: map['instagramLink'] as String?,
tikTokLink: map['tikTokLink'] as String?,
xLink: map['xLink'] as String?,
discordLink: map['discordLink'] as String?,
linkedInLink: map['linkedInLink'] as String?,
redditLink: map['redditLink'] as String?,
webSiteLink: map['webSiteLink'] as String?,
);
Map<String, dynamic> toJson() => {
'id': id,
'name': name,
'email': email,
'avatarUrl': avatarUrl,
'type': type,
'organization': organization,
'activityArea': activityArea?.toJson(),
'isActive': isActive,
'profileDescription': profileDescription,
'facebookLink': facebookLink,
'instagramLink': instagramLink,
'tikTokLink': tikTokLink,
'xLink': xLink,
'discordLink': discordLink,
'linkedInLink': linkedInLink,
'redditLink': redditLink,
'webSiteLink': webSiteLink,
};
}