@shakerquiz/utilities 0.3.32 → 0.3.34

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shakerquiz/utilities",
3
- "version": "0.3.32",
3
+ "version": "0.3.34",
4
4
  "author": "yurkimus <yurkimus@gmail.com>",
5
5
  "license": "ISC",
6
6
  "scripts": {
@@ -26,4 +26,4 @@
26
26
  "devDependencies": {
27
27
  "typescript": "5.8.2"
28
28
  }
29
- }
29
+ }
@@ -3,6 +3,7 @@ export namespace Backends {
3
3
  let Games: "Games";
4
4
  let Locations: "Locations";
5
5
  let Users: "Users";
6
+ let Integrations: "Integrations";
6
7
  }
7
8
  export namespace BackendFeatures {
8
9
  let Backend_1: ("City" | "Game" | "Registration" | "Theme" | "User" | "Venue" | "Checkin")[];
@@ -13,4 +14,6 @@ export namespace BackendFeatures {
13
14
  export { Locations_1 as Locations };
14
15
  let Users_1: ("User" | "Checkin")[];
15
16
  export { Users_1 as Users };
17
+ let Integrations_1: any[];
18
+ export { Integrations_1 as Integrations };
16
19
  }
@@ -6,6 +6,7 @@ export var Backends = /** @type {const} */ ({
6
6
  Games: 'Games',
7
7
  Locations: 'Locations',
8
8
  Users: 'Users',
9
+ Integrations: 'Integrations',
9
10
  })
10
11
 
11
12
  export var BackendFeatures = {
@@ -34,4 +35,9 @@ export var BackendFeatures = {
34
35
  Domains.User,
35
36
  Procedures.Checkin,
36
37
  ],
38
+
39
+ [Backends.Integrations]: [
40
+ Domains.Mailing,
41
+ Procedures.Redirect,
42
+ ],
37
43
  }
@@ -5,6 +5,7 @@ export namespace Domains {
5
5
  let Theme: "Theme";
6
6
  let User: "User";
7
7
  let Venue: "Venue";
8
+ let Mailing: "Mailing";
8
9
  }
9
10
  /**
10
11
  * @type {Record<Domain, Icon>}
@@ -10,6 +10,7 @@ export var Domains = /** @type {const} */ ({
10
10
  Theme: 'Theme',
11
11
  User: 'User',
12
12
  Venue: 'Venue',
13
+ Mailing: 'Mailing',
13
14
  })
14
15
 
15
16
  /**
@@ -22,6 +23,7 @@ export var DomainIcons = {
22
23
  [Domains.Theme]: Icons['document-text'],
23
24
  [Domains.User]: Icons['users'],
24
25
  [Domains.Venue]: Icons['map-pin'],
26
+ [Domains.Mailing]: Icons['envelope'],
25
27
  }
26
28
 
27
29
  /**
@@ -57,6 +59,11 @@ export var DomainKindPathnames = {
57
59
  [Kinds.Unit]: '/venue/:venue?',
58
60
  [Kinds.Set]: '/venues',
59
61
  },
62
+
63
+ [Domains.Mailing]: {
64
+ [Kinds.Unit]: '/mailing/:mailing?',
65
+ [Kinds.Set]: '/mailings',
66
+ },
60
67
  }
61
68
 
62
69
  /**
@@ -116,4 +123,13 @@ export var DomainMethodRequirements = {
116
123
  [Methods.POST]: new Set([Requirements.Checkin, Requirements.Body]),
117
124
  [Methods.PUT]: new Set([Requirements.Checkin, Requirements.Body]),
118
125
  },
126
+
127
+ [Domains.Mailing]: {
128
+ [Methods.DELETE]: new Set([Requirements.Checkin]),
129
+ [Methods.GET]: new Set([Requirements.Checkin]),
130
+ [Methods.OPTIONS]: new Set([]),
131
+ [Methods.PATCH]: new Set([Requirements.Checkin, Requirements.Body]),
132
+ [Methods.POST]: new Set([Requirements.Checkin, Requirements.Body]),
133
+ [Methods.PUT]: new Set([Requirements.Checkin, Requirements.Body]),
134
+ },
119
135
  }
@@ -1,6 +1,6 @@
1
1
  export const Features: {
2
2
  Checkin: "Checkin";
3
- Mailing: "Mailing";
3
+ Redirect: "Redirect";
4
4
  '404': "404";
5
5
  Exception: "Exception";
6
6
  Home: "Home";
@@ -11,6 +11,7 @@ export const Features: {
11
11
  Theme: "Theme";
12
12
  User: "User";
13
13
  Venue: "Venue";
14
+ Mailing: "Mailing";
14
15
  };
15
16
  /**
16
17
  * @type {Record<Feature, Icon>}
@@ -1,6 +1,6 @@
1
1
  export namespace Procedures {
2
2
  let Checkin: "Checkin";
3
- let Mailing: "Mailing";
3
+ let Redirect: "Redirect";
4
4
  }
5
5
  /**
6
6
  * @type {Record<Procedure, Icon>}
@@ -5,7 +5,7 @@ import { Requirements } from './requirements.js'
5
5
 
6
6
  export var Procedures = /** @type {const} */ ({
7
7
  Checkin: 'Checkin',
8
- Mailing: 'Mailing',
8
+ Redirect: 'Redirect',
9
9
  })
10
10
 
11
11
  /**
@@ -13,7 +13,7 @@ export var Procedures = /** @type {const} */ ({
13
13
  */
14
14
  export var ProcedureIcons = {
15
15
  [Procedures.Checkin]: Icons['arrow-right-end-on-rectangle'],
16
- [Procedures.Mailing]: Icons['envelope'],
16
+ [Procedures.Redirect]: Icons['no-symbol'],
17
17
  }
18
18
 
19
19
  /**
@@ -25,9 +25,9 @@ export var ProcedureKindPathnames = {
25
25
  [Kinds.Set]: '/checkins',
26
26
  },
27
27
 
28
- [Procedures.Mailing]: {
29
- [Kinds.Unit]: '/mailing',
30
- [Kinds.Set]: '/mailings',
28
+ [Procedures.Redirect]: {
29
+ [Kinds.Unit]: '/redirect',
30
+ [Kinds.Set]: '/redirects',
31
31
  },
32
32
  }
33
33
 
@@ -44,12 +44,7 @@ export var ProcedureMethodRequirements = {
44
44
  [Methods.PUT]: new Set([]),
45
45
  },
46
46
 
47
- [Procedures.Mailing]: {
48
- [Methods.DELETE]: new Set([]),
47
+ [Procedures.Redirect]: {
49
48
  [Methods.GET]: new Set([]),
50
- [Methods.OPTIONS]: new Set([]),
51
- [Methods.PATCH]: new Set([]),
52
- [Methods.POST]: new Set([Requirements.Body]),
53
- [Methods.PUT]: new Set([Requirements.Body]),
54
49
  },
55
50
  }
@@ -42,3 +42,393 @@ export namespace CityColumns {
42
42
  let vk_link: "vk_link";
43
43
  let yandex_metrica: "yandex_metrica";
44
44
  }
45
+ export namespace CityColumnDescriptors {
46
+ export namespace address_1 {
47
+ let type: "String";
48
+ let nullable: true;
49
+ let minLength: 1;
50
+ let maxLength: 255;
51
+ }
52
+ export { address_1 as address };
53
+ export namespace alias_1 {
54
+ let type_1: "String";
55
+ export { type_1 as type };
56
+ let minLength_1: 1;
57
+ export { minLength_1 as minLength };
58
+ let maxLength_1: 255;
59
+ export { maxLength_1 as maxLength };
60
+ }
61
+ export { alias_1 as alias };
62
+ export namespace chatapp_category_1 {
63
+ let type_2: "String";
64
+ export { type_2 as type };
65
+ let nullable_1: true;
66
+ export { nullable_1 as nullable };
67
+ }
68
+ export { chatapp_category_1 as chatapp_category };
69
+ export namespace chatapp_legacy_1 {
70
+ let type_3: "Boolean";
71
+ export { type_3 as type };
72
+ let nullable_2: true;
73
+ export { nullable_2 as nullable };
74
+ }
75
+ export { chatapp_legacy_1 as chatapp_legacy };
76
+ export namespace chatapp_line_1 {
77
+ let type_4: "String";
78
+ export { type_4 as type };
79
+ let nullable_3: true;
80
+ export { nullable_3 as nullable };
81
+ let minLength_2: 1;
82
+ export { minLength_2 as minLength };
83
+ let maxLength_2: 255;
84
+ export { maxLength_2 as maxLength };
85
+ }
86
+ export { chatapp_line_1 as chatapp_line };
87
+ export namespace chatapp_tag_1 {
88
+ let type_5: "String";
89
+ export { type_5 as type };
90
+ let nullable_4: true;
91
+ export { nullable_4 as nullable };
92
+ let minLength_3: 1;
93
+ export { minLength_3 as minLength };
94
+ let maxLength_3: 255;
95
+ export { maxLength_3 as maxLength };
96
+ }
97
+ export { chatapp_tag_1 as chatapp_tag };
98
+ export namespace chatapp_user_1 {
99
+ let type_6: "String";
100
+ export { type_6 as type };
101
+ let nullable_5: true;
102
+ export { nullable_5 as nullable };
103
+ let minLength_4: 1;
104
+ export { minLength_4 as minLength };
105
+ let maxLength_4: 255;
106
+ export { maxLength_4 as maxLength };
107
+ }
108
+ export { chatapp_user_1 as chatapp_user };
109
+ export namespace country_1 {
110
+ let type_7: "String";
111
+ export { type_7 as type };
112
+ let nullable_6: true;
113
+ export { nullable_6 as nullable };
114
+ let minLength_5: 2;
115
+ export { minLength_5 as minLength };
116
+ let maxLength_5: 2;
117
+ export { maxLength_5 as maxLength };
118
+ }
119
+ export { country_1 as country };
120
+ export namespace currency_1 {
121
+ let type_8: "String";
122
+ export { type_8 as type };
123
+ let minLength_6: 3;
124
+ export { minLength_6 as minLength };
125
+ let maxLength_6: 3;
126
+ export { maxLength_6 as maxLength };
127
+ }
128
+ export { currency_1 as currency };
129
+ export namespace custom_html_1 {
130
+ let type_9: "String";
131
+ export { type_9 as type };
132
+ let nullable_7: true;
133
+ export { nullable_7 as nullable };
134
+ }
135
+ export { custom_html_1 as custom_html };
136
+ export namespace custom_script_1 {
137
+ let type_10: "String";
138
+ export { type_10 as type };
139
+ let nullable_8: true;
140
+ export { nullable_8 as nullable };
141
+ }
142
+ export { custom_script_1 as custom_script };
143
+ export namespace description_1 {
144
+ let type_11: "String";
145
+ export { type_11 as type };
146
+ let nullable_9: true;
147
+ export { nullable_9 as nullable };
148
+ let minLength_7: 1;
149
+ export { minLength_7 as minLength };
150
+ let maxLength_7: 255;
151
+ export { maxLength_7 as maxLength };
152
+ }
153
+ export { description_1 as description };
154
+ export namespace email_1 {
155
+ let type_12: "String";
156
+ export { type_12 as type };
157
+ let nullable_10: true;
158
+ export { nullable_10 as nullable };
159
+ let minLength_8: 1;
160
+ export { minLength_8 as minLength };
161
+ let maxLength_8: 255;
162
+ export { maxLength_8 as maxLength };
163
+ export let format: "email";
164
+ }
165
+ export { email_1 as email };
166
+ export namespace game_time_1 {
167
+ let type_13: "String";
168
+ export { type_13 as type };
169
+ let format_1: "time";
170
+ export { format_1 as format };
171
+ }
172
+ export { game_time_1 as game_time };
173
+ export namespace id_1 {
174
+ let type_14: "String";
175
+ export { type_14 as type };
176
+ let nullable_11: true;
177
+ export { nullable_11 as nullable };
178
+ let format_2: "uuid";
179
+ export { format_2 as format };
180
+ }
181
+ export { id_1 as id };
182
+ export namespace inst_comment_1 {
183
+ let type_15: "String";
184
+ export { type_15 as type };
185
+ let nullable_12: true;
186
+ export { nullable_12 as nullable };
187
+ export let deprecated: true;
188
+ }
189
+ export { inst_comment_1 as inst_comment };
190
+ export namespace inst_link_1 {
191
+ let type_16: "String";
192
+ export { type_16 as type };
193
+ let nullable_13: true;
194
+ export { nullable_13 as nullable };
195
+ let deprecated_1: true;
196
+ export { deprecated_1 as deprecated };
197
+ }
198
+ export { inst_link_1 as inst_link };
199
+ export namespace inst_login_1 {
200
+ let type_17: "String";
201
+ export { type_17 as type };
202
+ let nullable_14: true;
203
+ export { nullable_14 as nullable };
204
+ let deprecated_2: true;
205
+ export { deprecated_2 as deprecated };
206
+ }
207
+ export { inst_login_1 as inst_login };
208
+ export namespace inst_password_1 {
209
+ let type_18: "String";
210
+ export { type_18 as type };
211
+ let nullable_15: true;
212
+ export { nullable_15 as nullable };
213
+ let deprecated_3: true;
214
+ export { deprecated_3 as deprecated };
215
+ }
216
+ export { inst_password_1 as inst_password };
217
+ export namespace is_default_1 {
218
+ let type_19: "Boolean";
219
+ export { type_19 as type };
220
+ let nullable_16: true;
221
+ export { nullable_16 as nullable };
222
+ }
223
+ export { is_default_1 as is_default };
224
+ export namespace is_franchise_1 {
225
+ let type_20: "Boolean";
226
+ export { type_20 as type };
227
+ }
228
+ export { is_franchise_1 as is_franchise };
229
+ export namespace max_members_count_1 {
230
+ let type_21: "Number";
231
+ export { type_21 as type };
232
+ let nullable_17: true;
233
+ export { nullable_17 as nullable };
234
+ let format_3: "integer";
235
+ export { format_3 as format };
236
+ }
237
+ export { max_members_count_1 as max_members_count };
238
+ export namespace meta_description_1 {
239
+ let type_22: "String";
240
+ export { type_22 as type };
241
+ let nullable_18: true;
242
+ export { nullable_18 as nullable };
243
+ let minLength_9: 1;
244
+ export { minLength_9 as minLength };
245
+ let maxLength_9: 255;
246
+ export { maxLength_9 as maxLength };
247
+ }
248
+ export { meta_description_1 as meta_description };
249
+ export namespace meta_title_1 {
250
+ let type_23: "String";
251
+ export { type_23 as type };
252
+ let nullable_19: true;
253
+ export { nullable_19 as nullable };
254
+ let minLength_10: 1;
255
+ export { minLength_10 as minLength };
256
+ let maxLength_10: 255;
257
+ export { maxLength_10 as maxLength };
258
+ }
259
+ export { meta_title_1 as meta_title };
260
+ export namespace min_members_count_1 {
261
+ let type_24: "Number";
262
+ export { type_24 as type };
263
+ let nullable_20: true;
264
+ export { nullable_20 as nullable };
265
+ let format_4: "integer";
266
+ export { format_4 as format };
267
+ }
268
+ export { min_members_count_1 as min_members_count };
269
+ export namespace name_1 {
270
+ let type_25: "String";
271
+ export { type_25 as type };
272
+ let minLength_11: 1;
273
+ export { minLength_11 as minLength };
274
+ let maxLength_11: 255;
275
+ export { maxLength_11 as maxLength };
276
+ }
277
+ export { name_1 as name };
278
+ export namespace phone_1 {
279
+ let type_26: "String";
280
+ export { type_26 as type };
281
+ let nullable_21: true;
282
+ export { nullable_21 as nullable };
283
+ let minLength_12: 1;
284
+ export { minLength_12 as minLength };
285
+ let maxLength_12: 255;
286
+ export { maxLength_12 as maxLength };
287
+ }
288
+ export { phone_1 as phone };
289
+ export namespace price_1 {
290
+ let type_27: "String";
291
+ export { type_27 as type };
292
+ let nullable_22: true;
293
+ export { nullable_22 as nullable };
294
+ let format_5: "float";
295
+ export { format_5 as format };
296
+ }
297
+ export { price_1 as price };
298
+ export namespace region_1 {
299
+ let type_28: "String";
300
+ export { type_28 as type };
301
+ let nullable_23: true;
302
+ export { nullable_23 as nullable };
303
+ let minLength_13: 1;
304
+ export { minLength_13 as minLength };
305
+ let maxLength_13: 255;
306
+ export { maxLength_13 as maxLength };
307
+ }
308
+ export { region_1 as region };
309
+ export namespace telegram_chat_id_1 {
310
+ let type_29: "String";
311
+ export { type_29 as type };
312
+ let nullable_24: true;
313
+ export { nullable_24 as nullable };
314
+ let minLength_14: 1;
315
+ export { minLength_14 as minLength };
316
+ let maxLength_14: 255;
317
+ export { maxLength_14 as maxLength };
318
+ }
319
+ export { telegram_chat_id_1 as telegram_chat_id };
320
+ export namespace tg_comment_1 {
321
+ let type_30: "String";
322
+ export { type_30 as type };
323
+ let nullable_25: true;
324
+ export { nullable_25 as nullable };
325
+ let minLength_15: 1;
326
+ export { minLength_15 as minLength };
327
+ let maxLength_15: 255;
328
+ export { maxLength_15 as maxLength };
329
+ }
330
+ export { tg_comment_1 as tg_comment };
331
+ export namespace tg_link_1 {
332
+ let type_31: "String";
333
+ export { type_31 as type };
334
+ let nullable_26: true;
335
+ export { nullable_26 as nullable };
336
+ let minLength_16: 1;
337
+ export { minLength_16 as minLength };
338
+ let maxLength_16: 255;
339
+ export { maxLength_16 as maxLength };
340
+ }
341
+ export { tg_link_1 as tg_link };
342
+ export namespace tg_login_1 {
343
+ let type_32: "String";
344
+ export { type_32 as type };
345
+ let nullable_27: true;
346
+ export { nullable_27 as nullable };
347
+ let deprecated_4: true;
348
+ export { deprecated_4 as deprecated };
349
+ let minLength_17: 1;
350
+ export { minLength_17 as minLength };
351
+ let maxLength_17: 255;
352
+ export { maxLength_17 as maxLength };
353
+ }
354
+ export { tg_login_1 as tg_login };
355
+ export namespace tg_password_1 {
356
+ let type_33: "String";
357
+ export { type_33 as type };
358
+ let nullable_28: true;
359
+ export { nullable_28 as nullable };
360
+ let deprecated_5: true;
361
+ export { deprecated_5 as deprecated };
362
+ let minLength_18: 1;
363
+ export { minLength_18 as minLength };
364
+ let maxLength_18: 255;
365
+ export { maxLength_18 as maxLength };
366
+ }
367
+ export { tg_password_1 as tg_password };
368
+ export namespace time_created_1 {
369
+ let type_34: "String";
370
+ export { type_34 as type };
371
+ let nullable_29: true;
372
+ export { nullable_29 as nullable };
373
+ let format_6: "Date";
374
+ export { format_6 as format };
375
+ }
376
+ export { time_created_1 as time_created };
377
+ export namespace time_updated_1 {
378
+ let type_35: "String";
379
+ export { type_35 as type };
380
+ let nullable_30: true;
381
+ export { nullable_30 as nullable };
382
+ let format_7: "Date";
383
+ export { format_7 as format };
384
+ }
385
+ export { time_updated_1 as time_updated };
386
+ export namespace timezone_1 {
387
+ let type_36: "String";
388
+ export { type_36 as type };
389
+ let nullable_31: true;
390
+ export { nullable_31 as nullable };
391
+ let format_8: "integer";
392
+ export { format_8 as format };
393
+ }
394
+ export { timezone_1 as timezone };
395
+ export namespace title_1 {
396
+ let type_37: "String";
397
+ export { type_37 as type };
398
+ let nullable_32: true;
399
+ export { nullable_32 as nullable };
400
+ let minLength_19: 1;
401
+ export { minLength_19 as minLength };
402
+ let maxLength_19: 255;
403
+ export { maxLength_19 as maxLength };
404
+ }
405
+ export { title_1 as title };
406
+ export namespace vk_comment_1 {
407
+ let type_38: "String";
408
+ export { type_38 as type };
409
+ let nullable_33: true;
410
+ export { nullable_33 as nullable };
411
+ }
412
+ export { vk_comment_1 as vk_comment };
413
+ export namespace vk_group_id_1 {
414
+ let type_39: "String";
415
+ export { type_39 as type };
416
+ let nullable_34: true;
417
+ export { nullable_34 as nullable };
418
+ }
419
+ export { vk_group_id_1 as vk_group_id };
420
+ export namespace vk_link_1 {
421
+ let type_40: "String";
422
+ export { type_40 as type };
423
+ let nullable_35: true;
424
+ export { nullable_35 as nullable };
425
+ }
426
+ export { vk_link_1 as vk_link };
427
+ export namespace yandex_metrica_1 {
428
+ let type_41: "String";
429
+ export { type_41 as type };
430
+ let nullable_36: true;
431
+ export { nullable_36 as nullable };
432
+ }
433
+ export { yandex_metrica_1 as yandex_metrica };
434
+ }
@@ -42,3 +42,265 @@ export var CityColumns = /** @type {const} */ ({
42
42
  vk_link: 'vk_link',
43
43
  yandex_metrica: 'yandex_metrica',
44
44
  })
45
+
46
+ export var CityColumnDescriptors = /** @type {const} */ ({
47
+ [CityColumns.address]: {
48
+ type: 'String',
49
+ nullable: true,
50
+ minLength: 1,
51
+ maxLength: 255,
52
+ },
53
+
54
+ [CityColumns.alias]: {
55
+ type: 'String',
56
+ minLength: 1,
57
+ maxLength: 255,
58
+ },
59
+
60
+ [CityColumns.chatapp_category]: {
61
+ type: 'String',
62
+ nullable: true,
63
+ },
64
+
65
+ [CityColumns.chatapp_legacy]: {
66
+ type: 'Boolean',
67
+ nullable: true,
68
+ },
69
+
70
+ [CityColumns.chatapp_line]: {
71
+ type: 'String',
72
+ nullable: true,
73
+ minLength: 1,
74
+ maxLength: 255,
75
+ },
76
+
77
+ [CityColumns.chatapp_tag]: {
78
+ type: 'String',
79
+ nullable: true,
80
+ minLength: 1,
81
+ maxLength: 255,
82
+ },
83
+
84
+ [CityColumns.chatapp_user]: {
85
+ type: 'String',
86
+ nullable: true,
87
+ minLength: 1,
88
+ maxLength: 255,
89
+ },
90
+
91
+ [CityColumns.country]: {
92
+ type: 'String',
93
+ nullable: true,
94
+ minLength: 2,
95
+ maxLength: 2,
96
+ },
97
+
98
+ [CityColumns.currency]: {
99
+ type: 'String',
100
+ minLength: 3,
101
+ maxLength: 3,
102
+ },
103
+
104
+ [CityColumns.custom_html]: {
105
+ type: 'String',
106
+ nullable: true,
107
+ },
108
+
109
+ [CityColumns.custom_script]: {
110
+ type: 'String',
111
+ nullable: true,
112
+ },
113
+
114
+ [CityColumns.description]: {
115
+ type: 'String',
116
+ nullable: true,
117
+ minLength: 1,
118
+ maxLength: 255,
119
+ },
120
+
121
+ [CityColumns.email]: {
122
+ type: 'String',
123
+ nullable: true,
124
+ minLength: 1,
125
+ maxLength: 255,
126
+ format: 'email',
127
+ },
128
+
129
+ [CityColumns.game_time]: {
130
+ type: 'String',
131
+ format: 'time',
132
+ },
133
+
134
+ [CityColumns.id]: {
135
+ type: 'String',
136
+ nullable: true,
137
+ format: 'uuid',
138
+ },
139
+
140
+ [CityColumns.inst_comment]: {
141
+ type: 'String',
142
+ nullable: true,
143
+ deprecated: true,
144
+ },
145
+
146
+ [CityColumns.inst_link]: {
147
+ type: 'String',
148
+ nullable: true,
149
+ deprecated: true,
150
+ },
151
+
152
+ [CityColumns.inst_login]: {
153
+ type: 'String',
154
+ nullable: true,
155
+ deprecated: true,
156
+ },
157
+
158
+ [CityColumns.inst_password]: {
159
+ type: 'String',
160
+ nullable: true,
161
+ deprecated: true,
162
+ },
163
+
164
+ [CityColumns.is_default]: {
165
+ type: 'Boolean',
166
+ nullable: true,
167
+ },
168
+
169
+ [CityColumns.is_franchise]: {
170
+ type: 'Boolean',
171
+ },
172
+
173
+ [CityColumns.max_members_count]: {
174
+ type: 'Number',
175
+ nullable: true,
176
+ format: 'integer',
177
+ },
178
+
179
+ [CityColumns.meta_description]: {
180
+ type: 'String',
181
+ nullable: true,
182
+ minLength: 1,
183
+ maxLength: 255,
184
+ },
185
+
186
+ [CityColumns.meta_title]: {
187
+ type: 'String',
188
+ nullable: true,
189
+ minLength: 1,
190
+ maxLength: 255,
191
+ },
192
+
193
+ [CityColumns.min_members_count]: {
194
+ type: 'Number',
195
+ nullable: true,
196
+ format: 'integer',
197
+ },
198
+
199
+ [CityColumns.name]: {
200
+ type: 'String',
201
+ minLength: 1,
202
+ maxLength: 255,
203
+ },
204
+
205
+ [CityColumns.phone]: {
206
+ type: 'String',
207
+ nullable: true,
208
+ minLength: 1,
209
+ maxLength: 255,
210
+ },
211
+
212
+ [CityColumns.price]: {
213
+ type: 'String',
214
+ nullable: true,
215
+ format: 'float',
216
+ },
217
+
218
+ [CityColumns.region]: {
219
+ type: 'String',
220
+ nullable: true,
221
+ minLength: 1,
222
+ maxLength: 255,
223
+ },
224
+
225
+ [CityColumns.telegram_chat_id]: {
226
+ type: 'String',
227
+ nullable: true,
228
+ minLength: 1,
229
+ maxLength: 255,
230
+ },
231
+
232
+ [CityColumns.tg_comment]: {
233
+ type: 'String',
234
+ nullable: true,
235
+ minLength: 1,
236
+ maxLength: 255,
237
+ },
238
+
239
+ [CityColumns.tg_link]: {
240
+ type: 'String',
241
+ nullable: true,
242
+ minLength: 1,
243
+ maxLength: 255,
244
+ },
245
+
246
+ [CityColumns.tg_login]: {
247
+ type: 'String',
248
+ nullable: true,
249
+ deprecated: true,
250
+ minLength: 1,
251
+ maxLength: 255,
252
+ },
253
+
254
+ [CityColumns.tg_password]: {
255
+ type: 'String',
256
+ nullable: true,
257
+ deprecated: true,
258
+ minLength: 1,
259
+ maxLength: 255,
260
+ },
261
+
262
+ [CityColumns.time_created]: {
263
+ type: 'String',
264
+ nullable: true,
265
+ format: 'Date',
266
+ },
267
+
268
+ [CityColumns.time_updated]: {
269
+ type: 'String',
270
+ nullable: true,
271
+ format: 'Date',
272
+ },
273
+
274
+ [CityColumns.timezone]: {
275
+ type: 'String',
276
+ nullable: true,
277
+ format: 'integer',
278
+ },
279
+
280
+ [CityColumns.title]: {
281
+ type: 'String',
282
+ nullable: true,
283
+ minLength: 1,
284
+ maxLength: 255,
285
+ },
286
+
287
+ [CityColumns.vk_comment]: {
288
+ type: 'String',
289
+ nullable: true,
290
+ },
291
+
292
+ [CityColumns.vk_group_id]: {
293
+ type: 'String',
294
+ nullable: true,
295
+ },
296
+
297
+ [CityColumns.vk_link]: {
298
+ type: 'String',
299
+ nullable: true,
300
+ },
301
+
302
+ [CityColumns.yandex_metrica]: {
303
+ type: 'String',
304
+ nullable: true,
305
+ },
306
+ })