@sellout/models 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. package/.dist/interfaces/IAddress.d.ts +13 -0
  2. package/.dist/interfaces/IAddress.js +3 -0
  3. package/.dist/interfaces/IAddress.js.map +1 -0
  4. package/.dist/interfaces/IMetrics.d.ts +29 -0
  5. package/.dist/interfaces/IMetrics.js +3 -0
  6. package/.dist/interfaces/IMetrics.js.map +1 -0
  7. package/.dist/interfaces/IPagination.d.ts +4 -0
  8. package/.dist/interfaces/IPagination.js +3 -0
  9. package/.dist/interfaces/IPagination.js.map +1 -0
  10. package/.dist/interfaces/IQuery.d.ts +15 -0
  11. package/.dist/interfaces/IQuery.js +20 -0
  12. package/.dist/interfaces/IQuery.js.map +1 -0
  13. package/.dist/mongo/Address.d.ts +58 -0
  14. package/.dist/mongo/Address.js +60 -0
  15. package/.dist/mongo/Address.js.map +1 -0
  16. package/.dist/mongo/Metrics.d.ts +131 -0
  17. package/.dist/mongo/Metrics.js +137 -0
  18. package/.dist/mongo/Metrics.js.map +1 -0
  19. package/.dist/schemas/Address.d.ts +58 -0
  20. package/.dist/schemas/Address.js +60 -0
  21. package/.dist/schemas/Address.js.map +1 -0
  22. package/.dist/schemas/Metrics.d.ts +131 -0
  23. package/.dist/schemas/Metrics.js +137 -0
  24. package/.dist/schemas/Metrics.js.map +1 -0
  25. package/.dist/sellout-proto.js +92266 -0
  26. package/.dist/utils/EventUtil.d.ts +38 -0
  27. package/.dist/utils/EventUtil.js +188 -0
  28. package/.dist/utils/EventUtil.js.map +1 -0
  29. package/.dist/utils/FeeUtil.d.ts +7 -0
  30. package/.dist/utils/FeeUtil.js +37 -0
  31. package/.dist/utils/FeeUtil.js.map +1 -0
  32. package/.dist/utils/OrderUtil.d.ts +29 -0
  33. package/.dist/utils/OrderUtil.js +216 -0
  34. package/.dist/utils/OrderUtil.js.map +1 -0
  35. package/.dist/utils/WebFlowUtil.d.ts +7 -0
  36. package/.dist/utils/WebFlowUtil.js +10 -0
  37. package/.dist/utils/WebFlowUtil.js.map +1 -0
  38. package/package.json +29 -0
  39. package/src/interfaces/IAddress.ts +13 -0
  40. package/src/interfaces/IArtist.ts +14 -0
  41. package/src/interfaces/IArtistContact.ts +8 -0
  42. package/src/interfaces/IArtistPressKit.ts +8 -0
  43. package/src/interfaces/IEvent.ts +62 -0
  44. package/src/interfaces/IEventCustomField.ts +16 -0
  45. package/src/interfaces/IEventPromotion.ts +15 -0
  46. package/src/interfaces/IEventSchedule.ts +7 -0
  47. package/src/interfaces/IEventUpgrade.ts +13 -0
  48. package/src/interfaces/IFee.ts +46 -0
  49. package/src/interfaces/IFile.ts +7 -0
  50. package/src/interfaces/IMetrics.ts +33 -0
  51. package/src/interfaces/IOrder.ts +32 -0
  52. package/src/interfaces/IOrderCustomField.ts +7 -0
  53. package/src/interfaces/IOrderState.ts +19 -0
  54. package/src/interfaces/IOrderSummary.ts +37 -0
  55. package/src/interfaces/IOrderTicket.ts +15 -0
  56. package/src/interfaces/IOrderType.ts +5 -0
  57. package/src/interfaces/IOrderUpgrade.ts +14 -0
  58. package/src/interfaces/IOrganization.ts +19 -0
  59. package/src/interfaces/IPagination.ts +4 -0
  60. package/src/interfaces/IPerformance.ts +18 -0
  61. package/src/interfaces/IQuery.ts +30 -0
  62. package/src/interfaces/IRefund.ts +6 -0
  63. package/src/interfaces/IRole.ts +17 -0
  64. package/src/interfaces/IScan.ts +5 -0
  65. package/src/interfaces/ISeating.ts +9 -0
  66. package/src/interfaces/ISocialAccountLink.ts +14 -0
  67. package/src/interfaces/ITask.ts +22 -0
  68. package/src/interfaces/ITicketExchange.ts +11 -0
  69. package/src/interfaces/ITicketHold.ts +6 -0
  70. package/src/interfaces/ITicketTier.ts +9 -0
  71. package/src/interfaces/ITicketType.ts +12 -0
  72. package/src/interfaces/IUser.ts +26 -0
  73. package/src/interfaces/IUserProfile.ts +20 -0
  74. package/src/interfaces/IVenue.ts +17 -0
  75. package/src/interfaces/IWebFlow.ts +55 -0
  76. package/src/proto/artist.proto +156 -0
  77. package/src/proto/broadcast.proto +157 -0
  78. package/src/proto/common.proto +59 -0
  79. package/src/proto/email.proto +179 -0
  80. package/src/proto/error.proto +31 -0
  81. package/src/proto/event.proto +270 -0
  82. package/src/proto/fee.proto +196 -0
  83. package/src/proto/file-upload.proto +27 -0
  84. package/src/proto/order.proto +272 -0
  85. package/src/proto/organization.proto +107 -0
  86. package/src/proto/role.proto +136 -0
  87. package/src/proto/seating.proto +64 -0
  88. package/src/proto/stripe.proto +181 -0
  89. package/src/proto/task.proto +39 -0
  90. package/src/proto/twilio.proto +43 -0
  91. package/src/proto/user-profile.proto +124 -0
  92. package/src/proto/user.proto +284 -0
  93. package/src/proto/venue.proto +120 -0
  94. package/src/proto/web-flow.proto +315 -0
  95. package/src/schemas/Address.ts +57 -0
  96. package/src/schemas/Artist.ts +104 -0
  97. package/src/schemas/Event.ts +400 -0
  98. package/src/schemas/Fee.ts +74 -0
  99. package/src/schemas/Metrics.ts +134 -0
  100. package/src/schemas/Order.ts +200 -0
  101. package/src/schemas/Organization.ts +108 -0
  102. package/src/schemas/Role.ts +37 -0
  103. package/src/schemas/Seating.ts +34 -0
  104. package/src/schemas/User.ts +95 -0
  105. package/src/schemas/UserProfile.ts +67 -0
  106. package/src/schemas/Venue.ts +58 -0
  107. package/src/schemas/WebFlow.ts +132 -0
  108. package/src/utils/EventUtil.ts +186 -0
  109. package/src/utils/FeeUtil.ts +34 -0
  110. package/src/utils/OrderUtil.ts +226 -0
  111. package/src/utils/WebFlowUtil.ts +8 -0
  112. package/tsconfig.json +27 -0
  113. package/tslint.json +21 -0
@@ -0,0 +1,120 @@
1
+ syntax = "proto3";
2
+
3
+ import "error.proto";
4
+ import "common.proto";
5
+
6
+
7
+ message Venue {
8
+ string _id = 0;
9
+ string name = 1;
10
+ string description = 2;
11
+ int32 capacity = 3;
12
+ string url = 4;
13
+ repeated string imageUrls = 5;
14
+ repeated string seatingMapIds = 6;
15
+ string venueGlobalId = 7;
16
+ string orgId = 8;
17
+ int32 venueFee = 9;
18
+ Address address = 10;
19
+ Metrics metrics = 11;
20
+ }
21
+
22
+ // Create Venue
23
+ message CreateVenueRequest {
24
+ string spanContext = 0;
25
+ Venue venue = 1;
26
+ string orgId = 2;
27
+ }
28
+
29
+ message CreateVenueResponse {
30
+ StatusCode status = 1;
31
+ repeated Error errors = 2;
32
+ Venue venue = 3;
33
+ }
34
+
35
+ // Update Venue
36
+ message UpdateVenueRequest {
37
+ string spanContext = 1;
38
+ Venue venue = 2;
39
+ string orgId = 3;
40
+ }
41
+
42
+ message UpdateVenueResponse {
43
+ StatusCode status = 1;
44
+ repeated Error errors = 2;
45
+ Venue venue = 3;
46
+ }
47
+
48
+ /****************************************************************************************
49
+ Find Venue
50
+ ****************************************************************************************/
51
+
52
+ message VenueQuery {
53
+ string name = 0;
54
+ repeated string venueIds = 1;
55
+ bool any = 2;
56
+ }
57
+
58
+ message QueryVenuesRequest {
59
+ string spanContext = 0;
60
+ string orgId = 1;
61
+ VenueQuery query = 2;
62
+ Pagination pagination = 3;
63
+ }
64
+
65
+ message QueryVenuesResponse {
66
+ StatusCode status = 0;
67
+ repeated Error errors = 1;
68
+ repeated Venue venues = 2;
69
+ }
70
+
71
+ // Find Venue
72
+ message FindVenueByIdRequest {
73
+ string spanContext = 0;
74
+ string venueId = 1;
75
+ }
76
+
77
+ message FindVenueByIdResponse {
78
+ StatusCode status = 0;
79
+ repeated Error errors = 1;
80
+ Venue venue = 2;
81
+ }
82
+
83
+
84
+ // List Venue
85
+ message ListPromoterVenuesRequest {
86
+ string spanContext = 0;
87
+ string orgId = 1;
88
+ }
89
+
90
+ message ListPromoterVenuesResponse {
91
+ StatusCode status = 0;
92
+ repeated Error errors = 1;
93
+ repeated Venue venues = 2;
94
+ }
95
+
96
+ message QueryGlobalVenuesRequest {
97
+ string spanContext = 0;
98
+ repeated Query query = 1;
99
+ Pagination pagination = 2;
100
+ }
101
+
102
+ message QueryGlobalVenuesResponse {
103
+ StatusCode status = 0;
104
+ repeated Error errors = 1;
105
+ repeated Venue venues = 2;
106
+ }
107
+
108
+ service VenueService {
109
+ // Create
110
+ rpc createVenue(CreateVenueRequest) returns (CreateVenueResponse) {}
111
+ // Update
112
+ rpc updateVenue(UpdateVenueRequest) returns (UpdateVenueResponse) {}
113
+ // Find
114
+ rpc findVenueById(FindVenueByIdRequest) returns (FindVenueByIdResponse) {}
115
+ // Query
116
+ rpc queryVenues(QueryVenuesRequest) returns (QueryVenuesResponse) {}
117
+ // List
118
+ rpc listPromoterVenues(ListPromoterVenuesRequest) returns (ListPromoterVenuesResponse) {}
119
+ rpc queryGlobalVenues(QueryGlobalVenuesRequest) returns (QueryGlobalVenuesResponse) {}
120
+ }
@@ -0,0 +1,315 @@
1
+ syntax = "proto3";
2
+
3
+ import "error.proto";
4
+ import "common.proto";
5
+
6
+ /***************************************************************************************
7
+ WebFlow Models
8
+ ****************************************************************************************/
9
+
10
+ message WebFlow {
11
+ string _id = 0;
12
+ string orgId = 1;
13
+ repeated WebFlowSite sites = 2;
14
+ repeated WebFlowEntity entities = 3;
15
+ int32 createdAt = 4;
16
+ int32 updatedAt = 5;
17
+ }
18
+
19
+ message WebFlowSite {
20
+ string _id = 0;
21
+ string name = 1;
22
+ string webFlowId = 2;
23
+ bool enabled = 3;
24
+ string eventCollectionId = 4;
25
+ string venueCollectionId = 5;
26
+ string artistCollectionId = 6;
27
+ string organizationCollectionId = 7;
28
+ string eventTypeCollectionId = 8;
29
+ string previewUrl = 9;
30
+ repeated WebFlowSiteDomain domains = 10;
31
+ int32 createdAt = 11;
32
+ int32 updatedAt = 12;
33
+ }
34
+
35
+ message WebFlowSiteDomain {
36
+ string _id = 0;
37
+ string name = 1;
38
+ int32 lastPublishedAt = 2;
39
+ }
40
+
41
+ message WebFlowEntityId {
42
+ string webFlowSiteId = 0;
43
+ string webFlowEntityId = 1;
44
+ string slug = 2;
45
+ WebFlowSite webFlowSite = 3;
46
+ }
47
+
48
+ message WebFlowEntity {
49
+ string _id = 0;
50
+ string entityType = 1;
51
+ string name = 2;
52
+ string selloutId = 3;
53
+ repeated WebFlowEntityId webFlowIds = 4;
54
+ repeated string alwaysPublishTo = 5;
55
+ int32 createdAt = 6;
56
+ int32 updatedAt = 7;
57
+ }
58
+
59
+ /***************************************************************************************
60
+ WebFlow
61
+ ****************************************************************************************/
62
+
63
+ message CreateWebFlowRequest {
64
+ string spanContext = 0;
65
+ string orgId = 1;
66
+ }
67
+
68
+ message CreateWebFlowResponse {
69
+ StatusCode status = 0;
70
+ repeated Error errors = 1;
71
+ WebFlow webFlow = 2;
72
+ }
73
+
74
+ message FindOrganizationWebFlowRequest {
75
+ string spanContext = 0;
76
+ string orgId = 1;
77
+ }
78
+
79
+ message FindOrganizationWebFlowResponse {
80
+ StatusCode status = 0;
81
+ repeated Error errors = 1;
82
+ WebFlow webFlow = 2;
83
+ }
84
+
85
+ message FindWebFlowEntityRequest {
86
+ string spanContext = 0;
87
+ string orgId = 1;
88
+ string selloutId = 2;
89
+ string entityType = 3;
90
+ }
91
+
92
+ message FindWebFlowEntityResponse {
93
+ StatusCode status = 0;
94
+ repeated Error errors = 1;
95
+ WebFlowEntity entity = 2;
96
+ }
97
+
98
+
99
+ /***************************************************************************************
100
+ WebFlow Site
101
+ ****************************************************************************************/
102
+
103
+ message ListWebFlowSitesRequest {
104
+ string spanContext = 0;
105
+ }
106
+
107
+ message ListWebFlowSitesResponse {
108
+ StatusCode status = 0;
109
+ repeated Error errors = 1;
110
+ repeated WebFlowSite sites = 2;
111
+ }
112
+
113
+ message CreateWebFlowSiteRequest {
114
+ string spanContext = 0;
115
+ string orgId = 1;
116
+ string webFlowId = 2;
117
+ }
118
+
119
+ message CreateWebFlowSiteResponse {
120
+ StatusCode status = 0;
121
+ repeated Error errors = 1;
122
+ WebFlow webFlow = 2;
123
+ }
124
+
125
+ message RemapWebFlowSiteRequest {
126
+ string spanContext = 0;
127
+ string webFlowId = 1;
128
+ }
129
+
130
+ message RemapWebFlowSiteResponse {
131
+ StatusCode status = 0;
132
+ repeated Error errors = 1;
133
+ repeated WebFlow webFlows = 2;
134
+ }
135
+
136
+ /***************************************************************************************
137
+ Publish Event
138
+ ****************************************************************************************/
139
+
140
+ message PublishWebFlowEventRequest {
141
+ string spanContext = 0;
142
+ string orgId = 1;
143
+ string eventId = 2;
144
+ string siteId = 3;
145
+ }
146
+
147
+ message PublishWebFlowEventResponse {
148
+ StatusCode status = 0;
149
+ repeated Error errors = 1;
150
+ WebFlow webFlow = 2;
151
+ }
152
+
153
+ message UnpublishWebFlowEventRequest {
154
+ string spanContext = 0;
155
+ string orgId = 1;
156
+ string eventId = 2;
157
+ string siteId = 3;
158
+ }
159
+
160
+ message UnpublishWebFlowEventResponse {
161
+ StatusCode status = 0;
162
+ repeated Error errors = 1;
163
+ WebFlow webFlow = 2;
164
+ }
165
+
166
+ message UpdateWebFlowEventRequest {
167
+ string spanContext = 0;
168
+ string orgId = 1;
169
+ string eventId = 2;
170
+ }
171
+
172
+ message UpdateWebFlowEventResponse {
173
+ StatusCode status = 0;
174
+ repeated Error errors = 1;
175
+ }
176
+
177
+ /***************************************************************************************
178
+ Publish Organization
179
+ ****************************************************************************************/
180
+
181
+ message PublishWebFlowOrganizationRequest {
182
+ string spanContext = 0;
183
+ string orgId = 1;
184
+ string siteId = 2;
185
+ WebFlow webFlow = 3;
186
+ bool live = 4;
187
+ }
188
+
189
+ message PublishWebFlowOrganizationResponse {
190
+ StatusCode status = 0;
191
+ repeated Error errors = 1;
192
+ WebFlow webFlow = 2;
193
+ }
194
+
195
+ message UnpublishWebFlowOrganizationRequest {
196
+ string spanContext = 0;
197
+ string orgId = 1;
198
+ string siteId = 2;
199
+ WebFlow webFlow = 3;
200
+ }
201
+
202
+ message UnpublishWebFlowOrganizationResponse {
203
+ StatusCode status = 0;
204
+ repeated Error errors = 1;
205
+ WebFlow webFlow = 2;
206
+ }
207
+
208
+ /***************************************************************************************
209
+ Publish Venue
210
+ ****************************************************************************************/
211
+
212
+ message PublishWebFlowVenueRequest {
213
+ string spanContext = 0;
214
+ string orgId = 1;
215
+ string venueId = 2;
216
+ string siteId = 3;
217
+ WebFlow webFlow = 4;
218
+ bool live = 5;
219
+ }
220
+
221
+ message PublishWebFlowVenueResponse {
222
+ StatusCode status = 0;
223
+ repeated Error errors = 1;
224
+ WebFlow webFlow = 2;
225
+ }
226
+
227
+ message UnpublishWebFlowVenueRequest {
228
+ string spanContext = 0;
229
+ string orgId = 1;
230
+ string venueId = 2;
231
+ string siteId = 3;
232
+ WebFlow webFlow = 4;
233
+ }
234
+
235
+ message UnpublishWebFlowVenueResponse {
236
+ StatusCode status = 0;
237
+ repeated Error errors = 1;
238
+ WebFlow webFlow = 2;
239
+ }
240
+
241
+ /***************************************************************************************
242
+ Publish Artist
243
+ ****************************************************************************************/
244
+
245
+ message PublishWebFlowArtistRequest {
246
+ string spanContext = 0;
247
+ string orgId = 1;
248
+ string artistId = 2;
249
+ string siteId = 3;
250
+ WebFlow webFlow = 4;
251
+ bool live = 5;
252
+ }
253
+
254
+ message PublishWebFlowArtistResponse {
255
+ StatusCode status = 0;
256
+ repeated Error errors = 1;
257
+ WebFlow webFlow = 2;
258
+ }
259
+
260
+ message UnpublishWebFlowArtistRequest {
261
+ string spanContext = 0;
262
+ string orgId = 1;
263
+ string artistId = 2;
264
+ string siteId = 3;
265
+ WebFlow webFlow = 4;
266
+ }
267
+
268
+ message UnpublishWebFlowArtistResponse {
269
+ StatusCode status = 0;
270
+ repeated Error errors = 1;
271
+ WebFlow webFlow = 2;
272
+ }
273
+
274
+ /***************************************************************************************
275
+ WebFlow Entities
276
+ ****************************************************************************************/
277
+
278
+ message UpdateVenuePublishingRequest {
279
+ string spanContext = 0;
280
+ string orgId = 1;
281
+ string venueId = 2;
282
+ repeated string alwaysPublishTo = 3;
283
+ }
284
+
285
+ message UpdateVenuePublishingResponse {
286
+ StatusCode status = 0;
287
+ repeated Error errors = 1;
288
+ WebFlow webFlow = 2;
289
+ }
290
+
291
+ service WebFlowService {
292
+ // WebFlow
293
+ rpc createWebFlow(CreateWebFlowRequest) returns (CreateWebFlowResponse) {}
294
+ rpc findOrganizationWebFlow(FindOrganizationWebFlowRequest) returns (FindOrganizationWebFlowResponse) {}
295
+ rpc findWebFlowEntity(FindWebFlowEntityRequest) returns (FindWebFlowEntityResponse) {}
296
+ // WebFlow Sites
297
+ rpc createWebFlowSite(CreateWebFlowSiteRequest) returns (CreateWebFlowSiteResponse) {}
298
+ rpc listWebFlowSites(ListWebFlowSitesRequest) returns (ListWebFlowSitesResponse) {}
299
+ rpc remapWebFlowSite(RemapWebFlowSiteRequest) returns (RemapWebFlowSiteResponse) {}
300
+ // Publish Event
301
+ rpc publishWebFlowEvent(PublishWebFlowEventRequest) returns (PublishWebFlowEventResponse) {}
302
+ rpc unpublishWebFlowEvent(UnpublishWebFlowEventRequest) returns (UnpublishWebFlowEventResponse) {}
303
+ rpc updateWebFlowEvent(UpdateWebFlowEventRequest) returns (UpdateWebFlowEventResponse) {}
304
+ // Publish Organization
305
+ rpc publishWebFlowOrganization(PublishWebFlowOrganizationRequest) returns (PublishWebFlowOrganizationResponse) {}
306
+ rpc unpublishWebFlowOrganization(UnpublishWebFlowOrganizationRequest) returns (UnpublishWebFlowOrganizationResponse) {}
307
+ // Publish Venue
308
+ rpc publishWebFlowVenue(PublishWebFlowVenueRequest) returns (PublishWebFlowVenueResponse) {}
309
+ rpc unpublishWebFlowVenue(UnpublishWebFlowVenueRequest) returns (UnpublishWebFlowVenueResponse) {}
310
+ // Publish Artist
311
+ rpc publishWebFlowArtist(PublishWebFlowArtistRequest) returns (PublishWebFlowArtistResponse) {}
312
+ rpc unpublishWebFlowArtist(UnpublishWebFlowArtistRequest) returns (UnpublishWebFlowArtistResponse) {}
313
+ // WebFlow Entities
314
+ rpc updateVenuePublishing(UpdateVenuePublishingRequest) returns (UpdateVenuePublishingResponse) {}
315
+ }
@@ -0,0 +1,57 @@
1
+ export default {
2
+ address1: {
3
+ type: String,
4
+ required: false,
5
+ default: null,
6
+ },
7
+ address2: {
8
+ type: String,
9
+ required: false,
10
+ default: null,
11
+ },
12
+ city: {
13
+ type: String,
14
+ required: false,
15
+ default: null,
16
+ },
17
+ state: {
18
+ type: String,
19
+ required: false,
20
+ default: null,
21
+ },
22
+ zip: {
23
+ type: String,
24
+ required: false,
25
+ default: null
26
+ },
27
+ country: {
28
+ type: String,
29
+ required: false,
30
+ default: null
31
+ },
32
+ phone: {
33
+ type: String,
34
+ required: false,
35
+ default: null
36
+ },
37
+ lat: {
38
+ type: Number,
39
+ required: false,
40
+ default: null,
41
+ },
42
+ lng: {
43
+ type: Number,
44
+ required: false,
45
+ default: null
46
+ },
47
+ placeId: {
48
+ type: String,
49
+ required: false,
50
+ default: null,
51
+ },
52
+ timezone: {
53
+ type: String,
54
+ required: false,
55
+ default: null,
56
+ }
57
+ };
@@ -0,0 +1,104 @@
1
+ import shortid from 'shortid';
2
+ import Metrics from './Metrics';
3
+
4
+ const ArtistPressKit = {
5
+ title: {
6
+ type: String,
7
+ required: false,
8
+ },
9
+ description: {
10
+ type: String,
11
+ required: false,
12
+ },
13
+ posterImageUrls: [
14
+ {
15
+ type: String,
16
+ required: false,
17
+ },
18
+ ],
19
+ links: [
20
+ {
21
+ platform: {
22
+ type: String,
23
+ required: false,
24
+ },
25
+ link: {
26
+ type: String,
27
+ required: false,
28
+ },
29
+ },
30
+ ],
31
+ };
32
+
33
+ const ArtistContact = {
34
+ firstName: {
35
+ type: String,
36
+ required: false,
37
+ },
38
+ lastName: {
39
+ type: String,
40
+ required: false,
41
+ },
42
+ title: {
43
+ type: String,
44
+ required: false,
45
+ },
46
+ company: {
47
+ type: String,
48
+ required: false,
49
+ },
50
+ email: {
51
+ type: String,
52
+ required: false,
53
+ },
54
+ phoneNumber: {
55
+ type: String,
56
+ required: false,
57
+ },
58
+ };
59
+
60
+ const SocialLink = {
61
+ platform: {
62
+ type: String,
63
+ required: false,
64
+ },
65
+ link: {
66
+ type: String,
67
+ required: false,
68
+ },
69
+ };
70
+
71
+ export default {
72
+ _id: {
73
+ type: String,
74
+ default: shortid.generate,
75
+ },
76
+ orgId: {
77
+ type: String,
78
+ required: false,
79
+ },
80
+ name: {
81
+ type: String,
82
+ required: false,
83
+ },
84
+ genres: [{
85
+ type: String,
86
+ required: false,
87
+ }],
88
+ artistGlobalId: {
89
+ type: String,
90
+ required: false,
91
+ },
92
+ socialAccounts: [SocialLink],
93
+ pressKits: [ArtistPressKit],
94
+ contacts: [ArtistContact],
95
+ createdAt: {
96
+ type: Number,
97
+ default: null,
98
+ },
99
+ createdBy: {
100
+ type: String,
101
+ default: null,
102
+ },
103
+ metrics: Metrics,
104
+ };