@foxford/sdk 8.0.1 → 8.1.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.
- package/api.d.cts +4 -19
- package/api.d.ts +4 -19
- package/api.js.flow +3 -26
- package/entities.cjs +557 -7
- package/entities.d.cts +524 -7
- package/entities.d.ts +524 -7
- package/entities.js +557 -7
- package/entities.js.flow +564 -7
- package/index.cjs +557 -7
- package/index.d.cts +697 -185
- package/index.d.ts +697 -185
- package/index.js +557 -7
- package/index.js.flow +817 -263
- package/package.json +6 -4
- package/plugins/autocomplete-email.d.cts +1 -1
- package/plugins/confirm-phone.d.cts +1 -1
- package/plugins/types-sRHKQ8xU.d.cts +1269 -0
- package/plugins/types-sRHKQ8xU.d.ts +1269 -0
- package/types-3Yq2Uj51.d.cts +33 -0
- package/types-BrKJGAOa.d.ts +33 -0
package/entities.js.flow
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
// @flow
|
|
2
|
+
import { U as UserInterests } from "./types-BrKJGAOa.js";
|
|
3
|
+
import "./antibot.js";
|
|
4
|
+
|
|
2
5
|
declare type PupilRole =
|
|
3
6
|
| "11 класс"
|
|
4
7
|
| "10 класс"
|
|
@@ -19,6 +22,21 @@ declare type UserRole =
|
|
|
19
22
|
| "Выпускник"
|
|
20
23
|
| "Дошкольник"
|
|
21
24
|
| PupilRole;
|
|
25
|
+
declare type LeaderboardAccessState =
|
|
26
|
+
| "unavailable"
|
|
27
|
+
| "available"
|
|
28
|
+
| "vacation"
|
|
29
|
+
| "disabled";
|
|
30
|
+
declare type LeaderboardReadinessState =
|
|
31
|
+
| "changeable_course_selection"
|
|
32
|
+
| "ready"
|
|
33
|
+
| "unready"
|
|
34
|
+
| "waiting_course_selection";
|
|
35
|
+
declare type LearningGoalsAccessState =
|
|
36
|
+
| "enabled"
|
|
37
|
+
| "disabled"
|
|
38
|
+
| "optional"
|
|
39
|
+
| "required";
|
|
22
40
|
declare interface UserDTO {
|
|
23
41
|
id: null | number;
|
|
24
42
|
email: string;
|
|
@@ -146,138 +164,677 @@ declare interface UserDTO {
|
|
|
146
164
|
yearName: string,
|
|
147
165
|
...
|
|
148
166
|
} | null;
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* Текущий интерес посетителя — та же форма, что у `GET /api/user/user_interest`, но из профиля.
|
|
170
|
+
*/
|
|
171
|
+
currentInterest: UserInterests | null;
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* До какой даты открыт приём в домашнюю школу.
|
|
175
|
+
*/
|
|
176
|
+
admissionFinishesOn: null | string;
|
|
177
|
+
|
|
178
|
+
/**
|
|
179
|
+
* Посетитель пришёл из Алгоритмики.
|
|
180
|
+
*/
|
|
181
|
+
algoritmika: boolean;
|
|
182
|
+
bonusesPageVisited: boolean;
|
|
183
|
+
canChangeSchoolInfo: boolean;
|
|
184
|
+
externshipDemoAccessActive: boolean;
|
|
185
|
+
|
|
186
|
+
/**
|
|
187
|
+
* Экстернат ждёт оплаты: когда закроется доступ и по какому договору.
|
|
188
|
+
*/
|
|
189
|
+
externshipPaymentRequired: {
|
|
190
|
+
accessClosingDate: string,
|
|
191
|
+
contractId: number,
|
|
192
|
+
...
|
|
193
|
+
} | null;
|
|
194
|
+
externshipPromoHeaderOn: boolean;
|
|
195
|
+
hasExamProgressAccess: boolean;
|
|
196
|
+
hasYearlyRecapAccess: boolean;
|
|
197
|
+
isAttestationSchoolManager: null | boolean;
|
|
198
|
+
isMentor: boolean;
|
|
199
|
+
isXpStreakAvailable: boolean;
|
|
200
|
+
leaderboard: {
|
|
201
|
+
accessState: LeaderboardAccessState,
|
|
202
|
+
readinessState: LeaderboardReadinessState,
|
|
203
|
+
...
|
|
204
|
+
} | null;
|
|
205
|
+
leaderboardAccessState: LeaderboardAccessState;
|
|
206
|
+
learningGoalsAccessState: LearningGoalsAccessState;
|
|
207
|
+
|
|
208
|
+
/**
|
|
209
|
+
* Мессенджеры, на которые подписан посетитель; `null` — бэкенд не считал.
|
|
210
|
+
*/
|
|
211
|
+
messengerSubscriptions: null | string[];
|
|
212
|
+
needToPromoteRenewalWithCoach: boolean;
|
|
213
|
+
nextYearCoursesBannerAvailable: boolean;
|
|
214
|
+
passwordSet: null | boolean;
|
|
215
|
+
referralCode: null | string;
|
|
216
|
+
targetActionsOnboardingAvailable: boolean;
|
|
149
217
|
}
|
|
150
218
|
declare class User {
|
|
151
219
|
constructor(): this;
|
|
220
|
+
|
|
221
|
+
/**
|
|
222
|
+
* Идентификатор посетителя на бэкенде.
|
|
223
|
+
* @returns Число либо `null` у гостя.
|
|
224
|
+
*/
|
|
152
225
|
id: $PropertyType<UserDTO, "id">;
|
|
226
|
+
|
|
227
|
+
/**
|
|
228
|
+
* Почта посетителя.
|
|
229
|
+
* @returns Строка; пустая, если почты нет.
|
|
230
|
+
*/
|
|
153
231
|
email: $PropertyType<UserDTO, "email">;
|
|
232
|
+
|
|
233
|
+
/**
|
|
234
|
+
* Имя.
|
|
235
|
+
* @returns Строка; пустая, если не заполнено.
|
|
236
|
+
*/
|
|
154
237
|
firstName: $PropertyType<UserDTO, "firstName">;
|
|
238
|
+
|
|
239
|
+
/**
|
|
240
|
+
* Отчество.
|
|
241
|
+
* @returns Строка; пустая, если не заполнено.
|
|
242
|
+
*/
|
|
155
243
|
middleName: $PropertyType<UserDTO, "middleName">;
|
|
244
|
+
|
|
245
|
+
/**
|
|
246
|
+
* Фамилия.
|
|
247
|
+
* @returns Строка; пустая, если не заполнено.
|
|
248
|
+
*/
|
|
156
249
|
lastName: $PropertyType<UserDTO, "lastName">;
|
|
250
|
+
|
|
251
|
+
/**
|
|
252
|
+
* Полное имя, каким его собрал бэкенд.
|
|
253
|
+
* @returns Строка; пустая у гостя.
|
|
254
|
+
*/
|
|
157
255
|
fullName: $PropertyType<UserDTO, "fullName">;
|
|
256
|
+
|
|
257
|
+
/**
|
|
258
|
+
* Короткое имя для обращения в интерфейсе.
|
|
259
|
+
* @returns Строка; пустая у гостя.
|
|
260
|
+
*/
|
|
158
261
|
shortName: $PropertyType<UserDTO, "shortName">;
|
|
262
|
+
|
|
263
|
+
/**
|
|
264
|
+
* Когда заведён профиль.
|
|
265
|
+
* @returns Дата ISO либо `null` у гостя.
|
|
266
|
+
*/
|
|
159
267
|
createdAt: $PropertyType<UserDTO, "createdAt">;
|
|
268
|
+
|
|
269
|
+
/**
|
|
270
|
+
* Часовой пояс посетителя.
|
|
271
|
+
* @returns Имя пояса либо `null`, если не задан.
|
|
272
|
+
*/
|
|
160
273
|
timezone: $PropertyType<UserDTO, "timezone">;
|
|
274
|
+
|
|
275
|
+
/**
|
|
276
|
+
* Локаль интерфейса.
|
|
277
|
+
* @returns Код локали либо `null`, если не задана.
|
|
278
|
+
*/
|
|
161
279
|
locale: $PropertyType<UserDTO, "locale">;
|
|
280
|
+
|
|
281
|
+
/**
|
|
282
|
+
* Класс посетителя: id, порядковый номер, имя и транслит.
|
|
283
|
+
* @returns Объект класса; у гостя поля `null` и пустые строки.
|
|
284
|
+
*/
|
|
162
285
|
grade: $PropertyType<UserDTO, "grade">;
|
|
286
|
+
|
|
287
|
+
/**
|
|
288
|
+
* Телефон посетителя.
|
|
289
|
+
* @returns Строка либо `null`, если не указан.
|
|
290
|
+
*/
|
|
163
291
|
phone: $PropertyType<UserDTO, "phone">;
|
|
292
|
+
|
|
293
|
+
/**
|
|
294
|
+
* Адрес аватара.
|
|
295
|
+
* @returns Строка; пустая, если аватара нет.
|
|
296
|
+
*/
|
|
164
297
|
avatarUrl: $PropertyType<UserDTO, "avatarUrl">;
|
|
298
|
+
|
|
299
|
+
/**
|
|
300
|
+
* Посетитель — родитель.
|
|
301
|
+
* @returns `true`, если роль родительская.
|
|
302
|
+
*/
|
|
165
303
|
isParent: $PropertyType<UserDTO, "isParent">;
|
|
304
|
+
|
|
305
|
+
/**
|
|
306
|
+
* Посетитель — выпускник.
|
|
307
|
+
* @returns `true`, если школу закончил.
|
|
308
|
+
*/
|
|
166
309
|
isGraduated: $PropertyType<UserDTO, "isGraduated">;
|
|
310
|
+
|
|
311
|
+
/**
|
|
312
|
+
* Класс подтверждён посетителем.
|
|
313
|
+
* @returns `true`, если класс проверен.
|
|
314
|
+
*/
|
|
167
315
|
gradeChecked: $PropertyType<UserDTO, "gradeChecked">;
|
|
316
|
+
|
|
317
|
+
/**
|
|
318
|
+
* Тип учётной записи на бэкенде.
|
|
319
|
+
* @returns `pupil`, `agent` либо `null` у гостя.
|
|
320
|
+
*/
|
|
168
321
|
type: $PropertyType<UserDTO, "type">;
|
|
322
|
+
|
|
323
|
+
/**
|
|
324
|
+
* Посетитель — репетитор.
|
|
325
|
+
* @returns `true`, если роль репетитора.
|
|
326
|
+
*/
|
|
169
327
|
isCoach: $PropertyType<UserDTO, "isCoach">;
|
|
328
|
+
|
|
329
|
+
/**
|
|
330
|
+
* Ведёт мини-группы.
|
|
331
|
+
* @returns `true`, если ведёт.
|
|
332
|
+
*/
|
|
170
333
|
isMiniGroupTeacher: $PropertyType<UserDTO, "isMiniGroupTeacher">;
|
|
334
|
+
|
|
335
|
+
/**
|
|
336
|
+
* Репетитор экстерната.
|
|
337
|
+
* @returns `true`, если ведёт экстернат.
|
|
338
|
+
*/
|
|
171
339
|
isExternshipCoach: $PropertyType<UserDTO, "isExternshipCoach">;
|
|
340
|
+
|
|
341
|
+
/**
|
|
342
|
+
* Посетитель — учитель.
|
|
343
|
+
* @returns `true`, если роль учителя.
|
|
344
|
+
*/
|
|
172
345
|
isAgent: $PropertyType<UserDTO, "isAgent">;
|
|
346
|
+
|
|
347
|
+
/**
|
|
348
|
+
* Посетитель — методист.
|
|
349
|
+
* @returns `true`, если методист.
|
|
350
|
+
*/
|
|
173
351
|
methodist: $PropertyType<UserDTO, "methodist">;
|
|
352
|
+
|
|
353
|
+
/**
|
|
354
|
+
* Почтовый адрес: страна, регион, город, улица, дом.
|
|
355
|
+
* @returns Объект адреса либо `null`, если не заполнен.
|
|
356
|
+
*/
|
|
174
357
|
address: $PropertyType<UserDTO, "address">;
|
|
358
|
+
|
|
359
|
+
/**
|
|
360
|
+
* Привязанные соцсети.
|
|
361
|
+
* @returns Список провайдеров с идентификаторами; пустой, если привязок нет.
|
|
362
|
+
*/
|
|
175
363
|
socialNets: $PropertyType<UserDTO, "socialNets">;
|
|
364
|
+
|
|
365
|
+
/**
|
|
366
|
+
* Логин в Skype.
|
|
367
|
+
* @returns Строка либо `null`.
|
|
368
|
+
*/
|
|
176
369
|
skype: $PropertyType<UserDTO, "skype">;
|
|
370
|
+
|
|
371
|
+
/**
|
|
372
|
+
* Настройки интерфейса: показанные подсказки и скрытые баннеры.
|
|
373
|
+
* @returns Объект флагов либо `undefined`, если бэкенд их не прислал.
|
|
374
|
+
*/
|
|
177
375
|
settings: $PropertyType<UserDTO, "settings">;
|
|
376
|
+
|
|
377
|
+
/**
|
|
378
|
+
* Бонусный счёт: подарочные и реальные бонусы.
|
|
379
|
+
* @returns Объект с суммами.
|
|
380
|
+
*/
|
|
178
381
|
bonus: $PropertyType<UserDTO, "bonus">;
|
|
382
|
+
|
|
383
|
+
/**
|
|
384
|
+
* Сумма бонусов на счёте.
|
|
385
|
+
* @returns Число.
|
|
386
|
+
*/
|
|
179
387
|
bonusAmount: $PropertyType<UserDTO, "bonusAmount">;
|
|
388
|
+
|
|
389
|
+
/**
|
|
390
|
+
* Есть действующие покупки.
|
|
391
|
+
* @returns `true`, если есть.
|
|
392
|
+
*/
|
|
180
393
|
hasActivePurchases: $PropertyType<UserDTO, "hasActivePurchases">;
|
|
394
|
+
|
|
395
|
+
/**
|
|
396
|
+
* Остались попытки пробных экзаменов.
|
|
397
|
+
* @returns `true`, если остались.
|
|
398
|
+
*/
|
|
181
399
|
hasAttemptsSolveExamRehearsals: $PropertyType<
|
|
182
400
|
UserDTO,
|
|
183
401
|
"hasAttemptsSolveExamRehearsals"
|
|
184
402
|
>;
|
|
403
|
+
|
|
404
|
+
/**
|
|
405
|
+
* Есть закладки.
|
|
406
|
+
* @returns `true`, если есть.
|
|
407
|
+
*/
|
|
185
408
|
hasBookmarks: $PropertyType<UserDTO, "hasBookmarks">;
|
|
409
|
+
|
|
410
|
+
/**
|
|
411
|
+
* Метки посетителя на бэкенде.
|
|
412
|
+
* @returns Список строк либо `null`.
|
|
413
|
+
*/
|
|
186
414
|
tags: $PropertyType<UserDTO, "tags">;
|
|
415
|
+
|
|
416
|
+
/**
|
|
417
|
+
* Шаблон корзины.
|
|
418
|
+
* @returns Число либо `null`.
|
|
419
|
+
*/
|
|
187
420
|
cartTemplateId: $PropertyType<UserDTO, "cartTemplateId">;
|
|
421
|
+
|
|
422
|
+
/**
|
|
423
|
+
* Сколько позиций в корзине.
|
|
424
|
+
* @returns Число.
|
|
425
|
+
*/
|
|
188
426
|
cartItemsCount: $PropertyType<UserDTO, "cartItemsCount">;
|
|
427
|
+
|
|
428
|
+
/**
|
|
429
|
+
* Онбординг пройден.
|
|
430
|
+
* @returns `true`, если пройден.
|
|
431
|
+
*/
|
|
189
432
|
onboardingFinished: $PropertyType<UserDTO, "onboardingFinished">;
|
|
433
|
+
|
|
434
|
+
/**
|
|
435
|
+
* Когда пройден онбординг.
|
|
436
|
+
* @returns Дата ISO либо `null`, пока не пройден.
|
|
437
|
+
*/
|
|
190
438
|
onboardingFinishedAt: $PropertyType<UserDTO, "onboardingFinishedAt">;
|
|
439
|
+
|
|
440
|
+
/**
|
|
441
|
+
* Почта подтверждена.
|
|
442
|
+
* @returns `true`, если подтверждена.
|
|
443
|
+
*/
|
|
191
444
|
emailConfirmed: $PropertyType<UserDTO, "emailConfirmed">;
|
|
445
|
+
|
|
446
|
+
/**
|
|
447
|
+
* Телефон подтверждён.
|
|
448
|
+
* @returns `true`, если подтверждён.
|
|
449
|
+
*/
|
|
192
450
|
phoneConfirmed: $PropertyType<UserDTO, "phoneConfirmed">;
|
|
451
|
+
|
|
452
|
+
/**
|
|
453
|
+
* Почта выдумана бэкендом при регистрации без почты.
|
|
454
|
+
* @returns `true`, если почта ненастоящая.
|
|
455
|
+
*/
|
|
193
456
|
fakeEmail: $PropertyType<UserDTO, "fakeEmail">;
|
|
457
|
+
|
|
458
|
+
/**
|
|
459
|
+
* Посетитель заведён бэкендом без его участия (например, по заявке).
|
|
460
|
+
* @returns `true`, если учётная запись ненастоящая.
|
|
461
|
+
*/
|
|
194
462
|
fakeUser: $PropertyType<UserDTO, "fakeUser">;
|
|
463
|
+
|
|
464
|
+
/**
|
|
465
|
+
* Профиль дополнен данными после регистрации.
|
|
466
|
+
* @returns `true`, если дополнен.
|
|
467
|
+
*/
|
|
195
468
|
profileEnriched: $PropertyType<UserDTO, "profileEnriched">;
|
|
469
|
+
|
|
470
|
+
/**
|
|
471
|
+
* Идентификатор итогов года.
|
|
472
|
+
* @returns Строка либо `null`, если итогов нет.
|
|
473
|
+
*/
|
|
196
474
|
recapUuid: $PropertyType<UserDTO, "recapUuid">;
|
|
475
|
+
|
|
476
|
+
/**
|
|
477
|
+
* Дисциплины, которые изучает посетитель.
|
|
478
|
+
* @returns Список id; пустой, если не выбраны.
|
|
479
|
+
*/
|
|
197
480
|
disciplineIds: $PropertyType<UserDTO, "disciplineIds">;
|
|
481
|
+
|
|
482
|
+
/**
|
|
483
|
+
* Настройки приватности.
|
|
484
|
+
* @returns Объект с флагом публичного профиля.
|
|
485
|
+
*/
|
|
198
486
|
privacy: $PropertyType<UserDTO, "privacy">;
|
|
487
|
+
|
|
488
|
+
/**
|
|
489
|
+
* Телефон родителя.
|
|
490
|
+
* @returns Строка либо `null`.
|
|
491
|
+
*/
|
|
199
492
|
parentPhone: $PropertyType<UserDTO, "parentPhone">;
|
|
493
|
+
|
|
494
|
+
/**
|
|
495
|
+
* Телефон родителя подтверждён.
|
|
496
|
+
* @returns `true`, если подтверждён.
|
|
497
|
+
*/
|
|
200
498
|
parentPhoneConfirmed: $PropertyType<UserDTO, "parentPhoneConfirmed">;
|
|
499
|
+
|
|
500
|
+
/**
|
|
501
|
+
* Посетитель что-то покупал.
|
|
502
|
+
* @returns `true`, `false` либо `null`, если бэкенд не считал.
|
|
503
|
+
*/
|
|
201
504
|
isCustomer: $PropertyType<UserDTO, "isCustomer">;
|
|
505
|
+
|
|
506
|
+
/**
|
|
507
|
+
* Доступны многодневные серии занятий.
|
|
508
|
+
* @returns `true`, если доступны.
|
|
509
|
+
*/
|
|
202
510
|
hasAccessToMultiDaysStreaks: $PropertyType<
|
|
203
511
|
UserDTO,
|
|
204
512
|
"hasAccessToMultiDaysStreaks"
|
|
205
513
|
>;
|
|
514
|
+
|
|
515
|
+
/**
|
|
516
|
+
* Ученик начальной школы.
|
|
517
|
+
* @returns `true`, если начальная школа.
|
|
518
|
+
*/
|
|
206
519
|
isElementaryPupil: $PropertyType<UserDTO, "isElementaryPupil">;
|
|
520
|
+
|
|
521
|
+
/**
|
|
522
|
+
* Токен для канала уведомлений по WebSocket.
|
|
523
|
+
* @returns Строка либо `null`, если канала нет.
|
|
524
|
+
*/
|
|
207
525
|
webSocketNotificationsJwt: $PropertyType<
|
|
208
526
|
UserDTO,
|
|
209
527
|
"webSocketNotificationsJwt"
|
|
210
528
|
>;
|
|
529
|
+
|
|
530
|
+
/**
|
|
531
|
+
* Доступны аттестационные листы.
|
|
532
|
+
* @returns `true`, если доступны.
|
|
533
|
+
*/
|
|
211
534
|
hasAccessToAttestationSheets: $PropertyType<
|
|
212
535
|
UserDTO,
|
|
213
536
|
"hasAccessToAttestationSheets"
|
|
214
537
|
>;
|
|
538
|
+
|
|
539
|
+
/**
|
|
540
|
+
* Посетитель учится в экстернате.
|
|
541
|
+
* @returns `true`, если экстернат.
|
|
542
|
+
*/
|
|
215
543
|
externshipUser: $PropertyType<UserDTO, "externshipUser">;
|
|
544
|
+
|
|
545
|
+
/**
|
|
546
|
+
* Есть оплаченные договоры экстерната.
|
|
547
|
+
* @returns `true`, если есть.
|
|
548
|
+
*/
|
|
216
549
|
hasPurchasedExternshipContracts: $PropertyType<
|
|
217
550
|
UserDTO,
|
|
218
551
|
"hasPurchasedExternshipContracts"
|
|
219
552
|
>;
|
|
553
|
+
|
|
554
|
+
/**
|
|
555
|
+
* Доступна аттестация экстерната.
|
|
556
|
+
* @returns `true`, если доступна.
|
|
557
|
+
*/
|
|
220
558
|
hasExternshipAttestationAccess: $PropertyType<
|
|
221
559
|
UserDTO,
|
|
222
560
|
"hasExternshipAttestationAccess"
|
|
223
561
|
>;
|
|
562
|
+
|
|
563
|
+
/**
|
|
564
|
+
* Профиль в разделе социализации.
|
|
565
|
+
* @returns Объект с id и состоянием либо `null`, если профиля нет.
|
|
566
|
+
*/
|
|
224
567
|
socializationProfile: $PropertyType<UserDTO, "socializationProfile">;
|
|
568
|
+
|
|
569
|
+
/**
|
|
570
|
+
* Когда заканчивается бесплатный доступ.
|
|
571
|
+
* @returns Дата ISO либо `null`, если доступа нет.
|
|
572
|
+
*/
|
|
225
573
|
freeAccessFinishesAt: $PropertyType<UserDTO, "freeAccessFinishesAt">;
|
|
574
|
+
|
|
575
|
+
/**
|
|
576
|
+
* В комнате начальной школы есть непросмотренные новинки.
|
|
577
|
+
* @returns `true`, если есть; `undefined`, если бэкенд не прислал.
|
|
578
|
+
*/
|
|
226
579
|
hasUnseenRoomFeatures: $PropertyType<UserDTO, "hasUnseenRoomFeatures">;
|
|
580
|
+
|
|
581
|
+
/**
|
|
582
|
+
* Покупал договоры экстерната.
|
|
583
|
+
* @returns `true`, если покупал.
|
|
584
|
+
*/
|
|
227
585
|
purchaseAnyExternshipContracts: $PropertyType<
|
|
228
586
|
UserDTO,
|
|
229
587
|
"purchaseAnyExternshipContracts"
|
|
230
588
|
>;
|
|
589
|
+
|
|
590
|
+
/**
|
|
591
|
+
* Связан с экстернатом: ученик, родитель либо репетитор.
|
|
592
|
+
* @returns `true`, если связан; `undefined`, если бэкенд не прислал.
|
|
593
|
+
*/
|
|
231
594
|
hasExternshipRelation: $PropertyType<UserDTO, "hasExternshipRelation">;
|
|
595
|
+
|
|
596
|
+
/**
|
|
597
|
+
* Есть действующий договор экстерната.
|
|
598
|
+
* @returns `true`, если есть; `undefined`, если бэкенд не прислал.
|
|
599
|
+
*/
|
|
232
600
|
hasExternshipActiveContract: $PropertyType<
|
|
233
601
|
UserDTO,
|
|
234
602
|
"hasExternshipActiveContract"
|
|
235
603
|
>;
|
|
604
|
+
|
|
605
|
+
/**
|
|
606
|
+
* Можно продлить договор домашней школы.
|
|
607
|
+
* @returns `true`, если можно; `undefined`, если бэкенд не прислал.
|
|
608
|
+
*/
|
|
236
609
|
canProlongateContract: $PropertyType<UserDTO, "canProlongateContract">;
|
|
610
|
+
|
|
611
|
+
/**
|
|
612
|
+
* Окно пролонгации договора: даты, скидка, заголовок следующего года.
|
|
613
|
+
* @returns Объект окна, `null` либо `undefined`, если окна нет.
|
|
614
|
+
*/
|
|
237
615
|
prolongation: $PropertyType<UserDTO, "prolongation">;
|
|
238
616
|
|
|
617
|
+
/**
|
|
618
|
+
* Текущий интерес посетителя: класс, дисциплина, уровень, формат и причина. Та же форма, что у `GET /api/user/user_interest`, но из профиля, без похода.
|
|
619
|
+
* @returns Объект интереса либо `null`, если бэкенд не считал.
|
|
620
|
+
*/
|
|
621
|
+
currentInterest: $PropertyType<UserDTO, "currentInterest">;
|
|
622
|
+
|
|
623
|
+
/**
|
|
624
|
+
* До какой даты открыт приём в домашнюю школу.
|
|
625
|
+
* @returns Дата либо `null`, если приём не идёт.
|
|
626
|
+
*/
|
|
627
|
+
admissionFinishesOn: $PropertyType<UserDTO, "admissionFinishesOn">;
|
|
628
|
+
|
|
629
|
+
/**
|
|
630
|
+
* Посетитель пришёл из Алгоритмики — партнёрский вход с другой площадки.
|
|
631
|
+
* @returns `true`, если из Алгоритмики.
|
|
632
|
+
*/
|
|
633
|
+
algoritmika: $PropertyType<UserDTO, "algoritmika">;
|
|
634
|
+
|
|
635
|
+
/**
|
|
636
|
+
* Страница бонусов уже открывалась — подсказки на ней больше не показываются.
|
|
637
|
+
* @returns `true`, если открывалась.
|
|
638
|
+
*/
|
|
639
|
+
bonusesPageVisited: $PropertyType<UserDTO, "bonusesPageVisited">;
|
|
640
|
+
|
|
641
|
+
/**
|
|
642
|
+
* Посетителю разрешено менять школу и класс в профиле.
|
|
643
|
+
* @returns `true`, если разрешено.
|
|
644
|
+
*/
|
|
645
|
+
canChangeSchoolInfo: $PropertyType<UserDTO, "canChangeSchoolInfo">;
|
|
646
|
+
|
|
647
|
+
/**
|
|
648
|
+
* Идёт демо-доступ к экстернату.
|
|
649
|
+
* @returns `true`, пока демо активно.
|
|
650
|
+
*/
|
|
651
|
+
externshipDemoAccessActive: $PropertyType<
|
|
652
|
+
UserDTO,
|
|
653
|
+
"externshipDemoAccessActive"
|
|
654
|
+
>;
|
|
655
|
+
|
|
656
|
+
/**
|
|
657
|
+
* Экстернат ждёт оплаты: когда закроется доступ и по какому договору.
|
|
658
|
+
* @returns Объект с датой и id договора либо `null`, если долга нет.
|
|
659
|
+
*/
|
|
660
|
+
externshipPaymentRequired: $PropertyType<
|
|
661
|
+
UserDTO,
|
|
662
|
+
"externshipPaymentRequired"
|
|
663
|
+
>;
|
|
664
|
+
|
|
665
|
+
/**
|
|
666
|
+
* Показывать промо-шапку экстерната.
|
|
667
|
+
* @returns `true`, если показывать.
|
|
668
|
+
*/
|
|
669
|
+
externshipPromoHeaderOn: $PropertyType<UserDTO, "externshipPromoHeaderOn">;
|
|
670
|
+
|
|
671
|
+
/**
|
|
672
|
+
* Доступен раздел прогресса подготовки к экзаменам.
|
|
673
|
+
* @returns `true`, если доступен.
|
|
674
|
+
*/
|
|
675
|
+
hasExamProgressAccess: $PropertyType<UserDTO, "hasExamProgressAccess">;
|
|
676
|
+
|
|
677
|
+
/**
|
|
678
|
+
* Доступны итоги года; их адрес — `recapUuid`.
|
|
679
|
+
* @returns `true`, если доступны.
|
|
680
|
+
*/
|
|
681
|
+
hasYearlyRecapAccess: $PropertyType<UserDTO, "hasYearlyRecapAccess">;
|
|
682
|
+
|
|
683
|
+
/**
|
|
684
|
+
* Управляет аттестационной школой.
|
|
685
|
+
* @returns `true`, `false` либо `null`, если бэкенд не считал.
|
|
686
|
+
*/
|
|
687
|
+
isAttestationSchoolManager: $PropertyType<
|
|
688
|
+
UserDTO,
|
|
689
|
+
"isAttestationSchoolManager"
|
|
690
|
+
>;
|
|
691
|
+
|
|
692
|
+
/**
|
|
693
|
+
* Посетитель — наставник.
|
|
694
|
+
* @returns `true`, если наставник.
|
|
695
|
+
*/
|
|
696
|
+
isMentor: $PropertyType<UserDTO, "isMentor">;
|
|
697
|
+
|
|
698
|
+
/**
|
|
699
|
+
* Доступна серия ежедневных занятий с опытом (XP-стрик).
|
|
700
|
+
* @returns `true`, если доступна.
|
|
701
|
+
*/
|
|
702
|
+
isXpStreakAvailable: $PropertyType<UserDTO, "isXpStreakAvailable">;
|
|
703
|
+
|
|
704
|
+
/**
|
|
705
|
+
* Таблица лидеров: доступна ли посетителю и готов ли он к ней (выбор курса).
|
|
706
|
+
* @returns Объект состояний либо `null`, если посетитель вне программы.
|
|
707
|
+
*/
|
|
708
|
+
leaderboard: $PropertyType<UserDTO, "leaderboard">;
|
|
709
|
+
|
|
710
|
+
/**
|
|
711
|
+
* Состояние доступа к таблице лидеров.
|
|
712
|
+
* @returns `unavailable`, `available`, `vacation` либо `disabled`.
|
|
713
|
+
*/
|
|
714
|
+
leaderboardAccessState: $PropertyType<UserDTO, "leaderboardAccessState">;
|
|
715
|
+
|
|
716
|
+
/**
|
|
717
|
+
* Как устроены учебные цели у посетителя.
|
|
718
|
+
* @returns `enabled`, `disabled`, `optional` либо `required`.
|
|
719
|
+
*/
|
|
720
|
+
learningGoalsAccessState: $PropertyType<UserDTO, "learningGoalsAccessState">;
|
|
721
|
+
|
|
722
|
+
/**
|
|
723
|
+
* Мессенджеры, на которые посетитель подписан на уведомления.
|
|
724
|
+
* @returns Список либо `null`, если бэкенд не считал.
|
|
725
|
+
*/
|
|
726
|
+
messengerSubscriptions: $PropertyType<UserDTO, "messengerSubscriptions">;
|
|
727
|
+
|
|
728
|
+
/**
|
|
729
|
+
* Пора предлагать продление занятий с репетитором.
|
|
730
|
+
* @returns `true`, если пора.
|
|
731
|
+
*/
|
|
732
|
+
needToPromoteRenewalWithCoach: $PropertyType<
|
|
733
|
+
UserDTO,
|
|
734
|
+
"needToPromoteRenewalWithCoach"
|
|
735
|
+
>;
|
|
736
|
+
|
|
737
|
+
/**
|
|
738
|
+
* Показывать баннер курсов следующего учебного года.
|
|
739
|
+
* @returns `true`, если показывать.
|
|
740
|
+
*/
|
|
741
|
+
nextYearCoursesBannerAvailable: $PropertyType<
|
|
742
|
+
UserDTO,
|
|
743
|
+
"nextYearCoursesBannerAvailable"
|
|
744
|
+
>;
|
|
745
|
+
|
|
746
|
+
/**
|
|
747
|
+
* Пароль задан — вход не только через код или соцсеть.
|
|
748
|
+
* @returns `true`, `false` либо `null`, если бэкенд не считал.
|
|
749
|
+
*/
|
|
750
|
+
passwordSet: $PropertyType<UserDTO, "passwordSet">;
|
|
751
|
+
|
|
752
|
+
/**
|
|
753
|
+
* Реферальный код для программы «приведи друга».
|
|
754
|
+
* @returns Строка либо `null`, если код не выдан.
|
|
755
|
+
*/
|
|
756
|
+
referralCode: $PropertyType<UserDTO, "referralCode">;
|
|
757
|
+
|
|
758
|
+
/**
|
|
759
|
+
* Доступен онбординг целевых действий.
|
|
760
|
+
* @returns `true`, если доступен.
|
|
761
|
+
*/
|
|
762
|
+
targetActionsOnboardingAvailable: $PropertyType<
|
|
763
|
+
UserDTO,
|
|
764
|
+
"targetActionsOnboardingAvailable"
|
|
765
|
+
>;
|
|
766
|
+
|
|
239
767
|
/**
|
|
240
768
|
* Идёт ли сейчас окно пролонгации договора домашней школы.
|
|
241
769
|
*
|
|
242
770
|
* Границы включаются: последний день окна ещё считается пролонгацией. Не заданная граница
|
|
243
771
|
* означает, что окна нет вовсе, а не что оно бесконечно.
|
|
772
|
+
* @returns `true`, если сегодня внутри окна включительно
|
|
244
773
|
*/
|
|
245
774
|
isProlongationBetweenDates(): boolean;
|
|
775
|
+
|
|
776
|
+
/**
|
|
777
|
+
* Гость — сущность с умолчаниями всех полей и признаком `isDefaultUser()`.
|
|
778
|
+
* @returns Новая сущность на каждый вызов: умолчания общие на процесс, копия своя.
|
|
779
|
+
*/
|
|
246
780
|
static createDefault(): User;
|
|
247
781
|
|
|
248
782
|
/**
|
|
249
783
|
* Форма посетителя по умолчанию ДАННЫМИ — гость со всеми полями: тому, кто отдаёт `UserDTO`
|
|
250
784
|
* наружу (хост — приложениям), нужна полная форма, а не сущность с методами. Своя копия на
|
|
251
785
|
* вызов: умолчания общие на процесс, и правка чужой копии их не тронет.
|
|
786
|
+
* @returns Новая копия умолчаний на каждый вызов
|
|
252
787
|
*/
|
|
253
788
|
static defaultDto(): UserDTO;
|
|
789
|
+
|
|
790
|
+
/**
|
|
791
|
+
* Сущность из профиля бэкенда (`UserDTO` в camelCase): строковые поля чистятся от null-байтов
|
|
792
|
+
* и пробелов по краям, остальное берётся как есть.
|
|
793
|
+
* @param input - Профиль в форме `UserDTO`
|
|
794
|
+
* @returns Сущность над копией профиля: исходный объект не трогается
|
|
795
|
+
*/
|
|
254
796
|
static fromApi(input: mixed): User;
|
|
797
|
+
|
|
798
|
+
/**
|
|
799
|
+
* Сущность собрана из умолчаний (`createDefault`), а не из профиля бэкенда.
|
|
800
|
+
* @returns `true` у гостя по умолчанию
|
|
801
|
+
*/
|
|
255
802
|
isDefaultUser(): boolean;
|
|
803
|
+
|
|
804
|
+
/**
|
|
805
|
+
* Посетитель вошёл — у него есть идентификатор на бэкенде.
|
|
806
|
+
* @returns `true`, если `id` задан и положителен
|
|
807
|
+
*/
|
|
256
808
|
isLoggedIn(): boolean;
|
|
257
809
|
|
|
258
810
|
/**
|
|
259
|
-
*
|
|
260
|
-
* @returns
|
|
811
|
+
* Роль либо класс словом — для подписи в интерфейсе.
|
|
812
|
+
* @returns «Дошкольник» для нулевого класса, «Выпускник» без класса, иначе класс («5 класс»)
|
|
261
813
|
*/
|
|
262
814
|
getPupilRole(): UserRole;
|
|
263
815
|
|
|
264
816
|
/**
|
|
265
|
-
*
|
|
266
|
-
* @returns
|
|
817
|
+
* Роль словом — по флагам профиля, первый совпавший: репетитор, учитель, родитель.
|
|
818
|
+
* @returns «Репетитор», «Учитель», «Родитель», иначе роль ученика из `getPupilRole()`
|
|
267
819
|
*/
|
|
268
820
|
getRole: () => UserRole;
|
|
269
821
|
|
|
270
822
|
/**
|
|
271
|
-
*
|
|
272
|
-
* @
|
|
273
|
-
* @return {string} 'Пупкин В.'
|
|
823
|
+
* Фамилия с инициалами имени и отчества — подпись в списках.
|
|
824
|
+
* @returns Строка вида «Пупкин В. И.»; без отчества — «Пупкин В.»
|
|
274
825
|
*/
|
|
275
826
|
getInitials: () => string;
|
|
827
|
+
|
|
828
|
+
/**
|
|
829
|
+
* Профиль строкой JSON — для печати в документ и передачи по сети.
|
|
830
|
+
* @returns JSON полей сущности
|
|
831
|
+
*/
|
|
276
832
|
toJson(): string;
|
|
277
833
|
|
|
278
834
|
/**
|
|
279
835
|
* Посетитель данными — то, что едет по сети и в состояние: сущность с методами не
|
|
280
836
|
* сериализуется. Своя копия на вызов: сущность неизменяема, и правка копии её не тронет.
|
|
837
|
+
* @returns Копия полей сущности данными
|
|
281
838
|
*/
|
|
282
839
|
toDto(): UserDTO;
|
|
283
840
|
}
|