@mtgame/core 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.
- package/README.md +24 -0
- package/api/basketball-game-api.d.ts +17 -0
- package/api/league-api.d.ts +16 -0
- package/api/media-api.d.ts +24 -0
- package/api/notification-api.d.ts +4 -0
- package/api/notification-base-api.d.ts +22 -0
- package/api/org-notification-api.d.ts +4 -0
- package/api/paginated-response.interface.d.ts +4 -0
- package/api/public-api.d.ts +12 -0
- package/api/reference-api.d.ts +11 -0
- package/api/tournament-api.d.ts +64 -0
- package/api/tournament-join-api.d.ts +14 -0
- package/api/tournament-stage-api.d.ts +15 -0
- package/api/volleyball-game-api.d.ts +17 -0
- package/bundles/mtgame-core.umd.js +4785 -0
- package/bundles/mtgame-core.umd.js.map +1 -0
- package/bundles/mtgame-core.umd.min.js +16 -0
- package/bundles/mtgame-core.umd.min.js.map +1 -0
- package/esm2015/api/basketball-game-api.js +54 -0
- package/esm2015/api/league-api.js +60 -0
- package/esm2015/api/media-api.js +110 -0
- package/esm2015/api/notification-api.js +18 -0
- package/esm2015/api/notification-base-api.js +83 -0
- package/esm2015/api/org-notification-api.js +18 -0
- package/esm2015/api/paginated-response.interface.js +1 -0
- package/esm2015/api/public-api.js +12 -0
- package/esm2015/api/reference-api.js +40 -0
- package/esm2015/api/tournament-api.js +187 -0
- package/esm2015/api/tournament-join-api.js +51 -0
- package/esm2015/api/tournament-stage-api.js +56 -0
- package/esm2015/api/volleyball-game-api.js +54 -0
- package/esm2015/http-cookie.interceptor.js +34 -0
- package/esm2015/localization/basketball-game-log-types.js +26 -0
- package/esm2015/localization/overtime-types.js +7 -0
- package/esm2015/localization/public-api.js +7 -0
- package/esm2015/localization/team-event-type.js +6 -0
- package/esm2015/localization/team-user-role.js +7 -0
- package/esm2015/localization/user-profile.js +46 -0
- package/esm2015/localization/volleyball-game-log-types.js +25 -0
- package/esm2015/models/basketball-game-config.js +42 -0
- package/esm2015/models/basketball-game-log.js +109 -0
- package/esm2015/models/basketball-game-statistic.js +50 -0
- package/esm2015/models/basketball-game-team-statistic.js +27 -0
- package/esm2015/models/basketball-profile.js +43 -0
- package/esm2015/models/basketball-statistic.js +69 -0
- package/esm2015/models/city.js +22 -0
- package/esm2015/models/file.js +38 -0
- package/esm2015/models/game-invite.js +37 -0
- package/esm2015/models/game-log-base.js +1 -0
- package/esm2015/models/game-statistic-base.js +1 -0
- package/esm2015/models/game-timeline-stages.js +49 -0
- package/esm2015/models/game-user.js +32 -0
- package/esm2015/models/game.js +108 -0
- package/esm2015/models/league-court.js +24 -0
- package/esm2015/models/league.js +52 -0
- package/esm2015/models/media-item.js +40 -0
- package/esm2015/models/notification-settings.js +35 -0
- package/esm2015/models/notification.js +134 -0
- package/esm2015/models/organization.js +27 -0
- package/esm2015/models/playoff.js +78 -0
- package/esm2015/models/poll.js +132 -0
- package/esm2015/models/public-api.js +50 -0
- package/esm2015/models/sport.js +47 -0
- package/esm2015/models/team-event-invite.js +32 -0
- package/esm2015/models/team-event-type.js +6 -0
- package/esm2015/models/team-event.js +45 -0
- package/esm2015/models/team-invite-external.js +25 -0
- package/esm2015/models/team-invite.js +41 -0
- package/esm2015/models/team-user.js +39 -0
- package/esm2015/models/team.js +56 -0
- package/esm2015/models/tournament-disqualification.js +29 -0
- package/esm2015/models/tournament-event.js +38 -0
- package/esm2015/models/tournament-group.js +23 -0
- package/esm2015/models/tournament-invite.js +39 -0
- package/esm2015/models/tournament-join-team.js +55 -0
- package/esm2015/models/tournament-news.js +33 -0
- package/esm2015/models/tournament-stage-team.js +45 -0
- package/esm2015/models/tournament-stage.js +35 -0
- package/esm2015/models/tournament-team-user-invite.js +29 -0
- package/esm2015/models/tournament-team-user.js +49 -0
- package/esm2015/models/tournament-team.js +54 -0
- package/esm2015/models/tournament.js +161 -0
- package/esm2015/models/user-profile.js +24 -0
- package/esm2015/models/user.js +74 -0
- package/esm2015/models/util.js +208 -0
- package/esm2015/models/volleyball-game-config.js +40 -0
- package/esm2015/models/volleyball-game-log.js +139 -0
- package/esm2015/models/volleyball-game-statistic.js +50 -0
- package/esm2015/models/volleyball-game-team-statistic.js +27 -0
- package/esm2015/models/volleyball-profile.js +43 -0
- package/esm2015/models/volleyball-statistic.js +66 -0
- package/esm2015/mtgame-core.js +5 -0
- package/esm2015/public-api.js +8 -0
- package/esm2015/services/base.service.js +18 -0
- package/esm2015/services/centrifugo.service.js +107 -0
- package/esm2015/services/config.service.js +40 -0
- package/esm2015/services/public-api.js +4 -0
- package/esm2015/storage/local-storage-engine.js +18 -0
- package/esm2015/storage/public-api.js +4 -0
- package/esm2015/storage/storage-engine.js +61 -0
- package/esm2015/storage/store.js +63 -0
- package/esm2015/utils/array.js +18 -0
- package/esm2015/utils/component-destroyed.js +21 -0
- package/esm2015/utils/cookie.js +9 -0
- package/esm2015/utils/data.js +75 -0
- package/esm2015/utils/device.js +14 -0
- package/esm2015/utils/enum.js +7 -0
- package/esm2015/utils/errors.js +10 -0
- package/esm2015/utils/favicon.js +25 -0
- package/esm2015/utils/form.js +22 -0
- package/esm2015/utils/public-api.js +11 -0
- package/esm2015/utils/validators.js +47 -0
- package/esm5/api/basketball-game-api.js +65 -0
- package/esm5/api/league-api.js +70 -0
- package/esm5/api/media-api.js +125 -0
- package/esm5/api/notification-api.js +21 -0
- package/esm5/api/notification-base-api.js +109 -0
- package/esm5/api/org-notification-api.js +21 -0
- package/esm5/api/paginated-response.interface.js +1 -0
- package/esm5/api/public-api.js +12 -0
- package/esm5/api/reference-api.js +45 -0
- package/esm5/api/tournament-api.js +245 -0
- package/esm5/api/tournament-join-api.js +59 -0
- package/esm5/api/tournament-stage-api.js +65 -0
- package/esm5/api/volleyball-game-api.js +65 -0
- package/esm5/http-cookie.interceptor.js +35 -0
- package/esm5/localization/basketball-game-log-types.js +27 -0
- package/esm5/localization/overtime-types.js +8 -0
- package/esm5/localization/public-api.js +7 -0
- package/esm5/localization/team-event-type.js +7 -0
- package/esm5/localization/team-user-role.js +8 -0
- package/esm5/localization/user-profile.js +47 -0
- package/esm5/localization/volleyball-game-log-types.js +26 -0
- package/esm5/models/basketball-game-config.js +47 -0
- package/esm5/models/basketball-game-log.js +117 -0
- package/esm5/models/basketball-game-statistic.js +63 -0
- package/esm5/models/basketball-game-team-statistic.js +32 -0
- package/esm5/models/basketball-profile.js +48 -0
- package/esm5/models/basketball-statistic.js +78 -0
- package/esm5/models/city.js +27 -0
- package/esm5/models/file.js +41 -0
- package/esm5/models/game-invite.js +42 -0
- package/esm5/models/game-log-base.js +1 -0
- package/esm5/models/game-statistic-base.js +1 -0
- package/esm5/models/game-timeline-stages.js +57 -0
- package/esm5/models/game-user.js +37 -0
- package/esm5/models/game.js +134 -0
- package/esm5/models/league-court.js +29 -0
- package/esm5/models/league.js +69 -0
- package/esm5/models/media-item.js +49 -0
- package/esm5/models/notification-settings.js +40 -0
- package/esm5/models/notification.js +143 -0
- package/esm5/models/organization.js +32 -0
- package/esm5/models/playoff.js +91 -0
- package/esm5/models/poll.js +154 -0
- package/esm5/models/public-api.js +50 -0
- package/esm5/models/sport.js +52 -0
- package/esm5/models/team-event-invite.js +35 -0
- package/esm5/models/team-event-type.js +6 -0
- package/esm5/models/team-event.js +58 -0
- package/esm5/models/team-invite-external.js +30 -0
- package/esm5/models/team-invite.js +46 -0
- package/esm5/models/team-user.js +44 -0
- package/esm5/models/team.js +61 -0
- package/esm5/models/tournament-disqualification.js +34 -0
- package/esm5/models/tournament-event.js +43 -0
- package/esm5/models/tournament-group.js +28 -0
- package/esm5/models/tournament-invite.js +48 -0
- package/esm5/models/tournament-join-team.js +73 -0
- package/esm5/models/tournament-news.js +38 -0
- package/esm5/models/tournament-stage-team.js +54 -0
- package/esm5/models/tournament-stage.js +40 -0
- package/esm5/models/tournament-team-user-invite.js +34 -0
- package/esm5/models/tournament-team-user.js +66 -0
- package/esm5/models/tournament-team.js +63 -0
- package/esm5/models/tournament.js +176 -0
- package/esm5/models/user-profile.js +27 -0
- package/esm5/models/user.js +95 -0
- package/esm5/models/util.js +275 -0
- package/esm5/models/volleyball-game-config.js +49 -0
- package/esm5/models/volleyball-game-log.js +142 -0
- package/esm5/models/volleyball-game-statistic.js +71 -0
- package/esm5/models/volleyball-game-team-statistic.js +32 -0
- package/esm5/models/volleyball-profile.js +48 -0
- package/esm5/models/volleyball-statistic.js +71 -0
- package/esm5/mtgame-core.js +5 -0
- package/esm5/public-api.js +8 -0
- package/esm5/services/base.service.js +19 -0
- package/esm5/services/centrifugo.service.js +111 -0
- package/esm5/services/config.service.js +52 -0
- package/esm5/services/public-api.js +4 -0
- package/esm5/storage/local-storage-engine.js +25 -0
- package/esm5/storage/public-api.js +4 -0
- package/esm5/storage/storage-engine.js +77 -0
- package/esm5/storage/store.js +77 -0
- package/esm5/utils/array.js +18 -0
- package/esm5/utils/component-destroyed.js +21 -0
- package/esm5/utils/cookie.js +9 -0
- package/esm5/utils/data.js +79 -0
- package/esm5/utils/device.js +14 -0
- package/esm5/utils/enum.js +7 -0
- package/esm5/utils/errors.js +12 -0
- package/esm5/utils/favicon.js +47 -0
- package/esm5/utils/form.js +22 -0
- package/esm5/utils/public-api.js +11 -0
- package/esm5/utils/validators.js +49 -0
- package/fesm2015/mtgame-core.js +3749 -0
- package/fesm2015/mtgame-core.js.map +1 -0
- package/fesm5/mtgame-core.js +4455 -0
- package/fesm5/mtgame-core.js.map +1 -0
- package/http-cookie.interceptor.d.ts +10 -0
- package/localization/basketball-game-log-types.d.ts +25 -0
- package/localization/overtime-types.d.ts +6 -0
- package/localization/public-api.d.ts +6 -0
- package/localization/team-event-type.d.ts +5 -0
- package/localization/team-user-role.d.ts +6 -0
- package/localization/user-profile.d.ts +45 -0
- package/localization/volleyball-game-log-types.d.ts +24 -0
- package/models/basketball-game-config.d.ts +22 -0
- package/models/basketball-game-log.d.ts +52 -0
- package/models/basketball-game-statistic.d.ts +29 -0
- package/models/basketball-game-team-statistic.d.ts +8 -0
- package/models/basketball-profile.d.ts +20 -0
- package/models/basketball-statistic.d.ts +44 -0
- package/models/city.d.ts +7 -0
- package/models/file.d.ts +14 -0
- package/models/game-invite.d.ts +16 -0
- package/models/game-log-base.d.ts +10 -0
- package/models/game-statistic-base.d.ts +3 -0
- package/models/game-timeline-stages.d.ts +18 -0
- package/models/game-user.d.ts +12 -0
- package/models/game.d.ts +56 -0
- package/models/league-court.d.ts +9 -0
- package/models/league.d.ts +25 -0
- package/models/media-item.d.ts +15 -0
- package/models/notification-settings.d.ts +15 -0
- package/models/notification.d.ts +98 -0
- package/models/organization.d.ts +9 -0
- package/models/playoff.d.ts +25 -0
- package/models/poll.d.ts +46 -0
- package/models/public-api.d.ts +50 -0
- package/models/sport.d.ts +19 -0
- package/models/team-event-invite.d.ts +12 -0
- package/models/team-event-type.d.ts +4 -0
- package/models/team-event.d.ts +17 -0
- package/models/team-invite-external.d.ts +10 -0
- package/models/team-invite.d.ts +20 -0
- package/models/team-user.d.ts +18 -0
- package/models/team.d.ts +21 -0
- package/models/tournament-disqualification.d.ts +10 -0
- package/models/tournament-event.d.ts +16 -0
- package/models/tournament-group.d.ts +10 -0
- package/models/tournament-invite.d.ts +17 -0
- package/models/tournament-join-team.d.ts +19 -0
- package/models/tournament-news.d.ts +13 -0
- package/models/tournament-stage-team.d.ts +21 -0
- package/models/tournament-stage.d.ts +15 -0
- package/models/tournament-team-user-invite.d.ts +11 -0
- package/models/tournament-team-user.d.ts +22 -0
- package/models/tournament-team.d.ts +28 -0
- package/models/tournament.d.ts +87 -0
- package/models/user-profile.d.ts +8 -0
- package/models/user.d.ts +33 -0
- package/models/util.d.ts +49 -0
- package/models/volleyball-game-config.d.ts +17 -0
- package/models/volleyball-game-log.d.ts +54 -0
- package/models/volleyball-game-statistic.d.ts +28 -0
- package/models/volleyball-game-team-statistic.d.ts +8 -0
- package/models/volleyball-profile.d.ts +20 -0
- package/models/volleyball-statistic.d.ts +43 -0
- package/mtgame-core.d.ts +4 -0
- package/mtgame-core.metadata.json +1 -0
- package/package.json +23 -0
- package/public-api.d.ts +7 -0
- package/services/base.service.d.ts +5 -0
- package/services/centrifugo.service.d.ts +20 -0
- package/services/config.service.d.ts +11 -0
- package/services/public-api.d.ts +3 -0
- package/storage/local-storage-engine.d.ts +6 -0
- package/storage/public-api.d.ts +3 -0
- package/storage/storage-engine.d.ts +24 -0
- package/storage/store.d.ts +21 -0
- package/utils/array.d.ts +2 -0
- package/utils/component-destroyed.d.ts +7 -0
- package/utils/cookie.d.ts +1 -0
- package/utils/data.d.ts +6 -0
- package/utils/device.d.ts +1 -0
- package/utils/enum.d.ts +1 -0
- package/utils/errors.d.ts +1 -0
- package/utils/favicon.d.ts +9 -0
- package/utils/form.d.ts +2 -0
- package/utils/public-api.d.ts +10 -0
- package/utils/validators.d.ts +25 -0
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { BaseModel, DateField, enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';
|
|
3
|
+
import { UserProfile } from './user-profile';
|
|
4
|
+
import { File } from './file';
|
|
5
|
+
import { City } from './city';
|
|
6
|
+
import { BasketballProfile } from './basketball-profile';
|
|
7
|
+
import { VolleyballProfile } from './volleyball-profile';
|
|
8
|
+
export var UserGender;
|
|
9
|
+
(function (UserGender) {
|
|
10
|
+
UserGender[UserGender["male"] = 1] = "male";
|
|
11
|
+
UserGender[UserGender["female"] = 2] = "female";
|
|
12
|
+
})(UserGender || (UserGender = {}));
|
|
13
|
+
let User = class User extends BaseModel {
|
|
14
|
+
static toFront(data) {
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
static toBack(user) {
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
get fullName() {
|
|
21
|
+
return [this.lastName, this.firstName].filter(s => s).join(' ');
|
|
22
|
+
}
|
|
23
|
+
get shortName() {
|
|
24
|
+
return [this.lastName, this.firstName].filter(s => s).join(' ');
|
|
25
|
+
}
|
|
26
|
+
get initials() {
|
|
27
|
+
return [this.lastName, this.firstName].filter(s => s).map(s => s.substr(0, 1)).join('');
|
|
28
|
+
}
|
|
29
|
+
get age() {
|
|
30
|
+
if (!this.birthDate) {
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
const diff = (new Date()).getTime() - this.birthDate.getTime();
|
|
34
|
+
return Math.floor(diff / (365 * 86400 * 1000));
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
__decorate([
|
|
38
|
+
ToFrontHook
|
|
39
|
+
], User, "toFront", null);
|
|
40
|
+
__decorate([
|
|
41
|
+
ToBackHook
|
|
42
|
+
], User, "toBack", null);
|
|
43
|
+
User = __decorate([
|
|
44
|
+
ModelInstance({
|
|
45
|
+
mappingFields: {
|
|
46
|
+
id: 'id',
|
|
47
|
+
last_name: 'lastName',
|
|
48
|
+
first_name: 'firstName',
|
|
49
|
+
middle_name: 'middleName',
|
|
50
|
+
email: 'email',
|
|
51
|
+
phone: 'phone',
|
|
52
|
+
birth_date: 'birthDate',
|
|
53
|
+
photo: 'photo',
|
|
54
|
+
profile: 'profile',
|
|
55
|
+
basketball_profile: 'basketballProfile',
|
|
56
|
+
volleyball_profile: 'volleyballProfile',
|
|
57
|
+
wizards: 'wizards',
|
|
58
|
+
city: 'city',
|
|
59
|
+
gender: 'gender',
|
|
60
|
+
is_active: 'isActive',
|
|
61
|
+
},
|
|
62
|
+
relation: {
|
|
63
|
+
birthDate: DateField,
|
|
64
|
+
photo: File,
|
|
65
|
+
profile: UserProfile,
|
|
66
|
+
basketballProfile: BasketballProfile,
|
|
67
|
+
volleyballProfile: VolleyballProfile,
|
|
68
|
+
city: City,
|
|
69
|
+
gender: enumField(UserGender)
|
|
70
|
+
}
|
|
71
|
+
})
|
|
72
|
+
], User);
|
|
73
|
+
export { User };
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BtdGdhbWUvY29yZS8iLCJzb3VyY2VzIjpbIm1vZGVscy91c2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDakcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDOUIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUM5QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV6RCxNQUFNLENBQU4sSUFBWSxVQUdYO0FBSEQsV0FBWSxVQUFVO0lBQ3BCLDJDQUFRLENBQUE7SUFDUiwrQ0FBTSxDQUFBO0FBQ1IsQ0FBQyxFQUhXLFVBQVUsS0FBVixVQUFVLFFBR3JCO0FBOEJELElBQWEsSUFBSSxHQUFqQixNQUFhLElBQUssU0FBUSxTQUFTO0lBa0JqQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQVM7UUFDdEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBR0QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFVO1FBQ3RCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMxRixDQUFDO0lBRUQsSUFBSSxHQUFHO1FBQ0wsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbkIsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELE1BQU0sSUFBSSxHQUFHLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDL0QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxDQUFDLEdBQUcsR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNqRCxDQUFDO0NBQ0YsQ0FBQTtBQTVCQztJQURDLFdBQVc7eUJBR1g7QUFHRDtJQURDLFVBQVU7d0JBR1Y7QUF6QlUsSUFBSTtJQTVCaEIsYUFBYSxDQUFDO1FBQ2IsYUFBYSxFQUFFO1lBQ2IsRUFBRSxFQUFFLElBQUk7WUFDUixTQUFTLEVBQUUsVUFBVTtZQUNyQixVQUFVLEVBQUUsV0FBVztZQUN2QixXQUFXLEVBQUUsWUFBWTtZQUN6QixLQUFLLEVBQUUsT0FBTztZQUNkLEtBQUssRUFBRSxPQUFPO1lBQ2QsVUFBVSxFQUFFLFdBQVc7WUFDdkIsS0FBSyxFQUFFLE9BQU87WUFDZCxPQUFPLEVBQUUsU0FBUztZQUNsQixrQkFBa0IsRUFBRSxtQkFBbUI7WUFDdkMsa0JBQWtCLEVBQUUsbUJBQW1CO1lBQ3ZDLE9BQU8sRUFBRSxTQUFTO1lBQ2xCLElBQUksRUFBRSxNQUFNO1lBQ1osTUFBTSxFQUFFLFFBQVE7WUFDaEIsU0FBUyxFQUFFLFVBQVU7U0FDdEI7UUFDRCxRQUFRLEVBQUU7WUFDUixTQUFTLEVBQUUsU0FBUztZQUNwQixLQUFLLEVBQUUsSUFBSTtZQUNYLE9BQU8sRUFBRSxXQUFXO1lBQ3BCLGlCQUFpQixFQUFFLGlCQUFpQjtZQUNwQyxpQkFBaUIsRUFBRSxpQkFBaUI7WUFDcEMsSUFBSSxFQUFFLElBQUk7WUFDVixNQUFNLEVBQUUsU0FBUyxDQUFDLFVBQVUsQ0FBQztTQUM5QjtLQUNGLENBQUM7R0FDVyxJQUFJLENBOENoQjtTQTlDWSxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZU1vZGVsLCBEYXRlRmllbGQsIGVudW1GaWVsZCwgTW9kZWxJbnN0YW5jZSwgVG9CYWNrSG9vaywgVG9Gcm9udEhvb2sgfSBmcm9tICcuL3V0aWwnO1xuaW1wb3J0IHsgVXNlclByb2ZpbGUgfSBmcm9tICcuL3VzZXItcHJvZmlsZSc7XG5pbXBvcnQgeyBGaWxlIH0gZnJvbSAnLi9maWxlJztcbmltcG9ydCB7IENpdHkgfSBmcm9tICcuL2NpdHknO1xuaW1wb3J0IHsgQmFza2V0YmFsbFByb2ZpbGUgfSBmcm9tICcuL2Jhc2tldGJhbGwtcHJvZmlsZSc7XG5pbXBvcnQgeyBWb2xsZXliYWxsUHJvZmlsZSB9IGZyb20gJy4vdm9sbGV5YmFsbC1wcm9maWxlJztcblxuZXhwb3J0IGVudW0gVXNlckdlbmRlciB7XG4gIG1hbGUgPSAxLFxuICBmZW1hbGVcbn1cblxuQE1vZGVsSW5zdGFuY2Uoe1xuICBtYXBwaW5nRmllbGRzOiB7XG4gICAgaWQ6ICdpZCcsXG4gICAgbGFzdF9uYW1lOiAnbGFzdE5hbWUnLFxuICAgIGZpcnN0X25hbWU6ICdmaXJzdE5hbWUnLFxuICAgIG1pZGRsZV9uYW1lOiAnbWlkZGxlTmFtZScsXG4gICAgZW1haWw6ICdlbWFpbCcsXG4gICAgcGhvbmU6ICdwaG9uZScsXG4gICAgYmlydGhfZGF0ZTogJ2JpcnRoRGF0ZScsXG4gICAgcGhvdG86ICdwaG90bycsXG4gICAgcHJvZmlsZTogJ3Byb2ZpbGUnLFxuICAgIGJhc2tldGJhbGxfcHJvZmlsZTogJ2Jhc2tldGJhbGxQcm9maWxlJyxcbiAgICB2b2xsZXliYWxsX3Byb2ZpbGU6ICd2b2xsZXliYWxsUHJvZmlsZScsXG4gICAgd2l6YXJkczogJ3dpemFyZHMnLFxuICAgIGNpdHk6ICdjaXR5JyxcbiAgICBnZW5kZXI6ICdnZW5kZXInLFxuICAgIGlzX2FjdGl2ZTogJ2lzQWN0aXZlJyxcbiAgfSxcbiAgcmVsYXRpb246IHtcbiAgICBiaXJ0aERhdGU6IERhdGVGaWVsZCxcbiAgICBwaG90bzogRmlsZSxcbiAgICBwcm9maWxlOiBVc2VyUHJvZmlsZSxcbiAgICBiYXNrZXRiYWxsUHJvZmlsZTogQmFza2V0YmFsbFByb2ZpbGUsXG4gICAgdm9sbGV5YmFsbFByb2ZpbGU6IFZvbGxleWJhbGxQcm9maWxlLFxuICAgIGNpdHk6IENpdHksXG4gICAgZ2VuZGVyOiBlbnVtRmllbGQoVXNlckdlbmRlcilcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBVc2VyIGV4dGVuZHMgQmFzZU1vZGVsIHtcbiAgaWQ6IG51bWJlcjtcbiAgbGFzdE5hbWU6IHN0cmluZztcbiAgZmlyc3ROYW1lOiBzdHJpbmc7XG4gIG1pZGRsZU5hbWU6IHN0cmluZztcbiAgZW1haWw6IHN0cmluZztcbiAgcGhvbmU6IHN0cmluZztcbiAgYmlydGhEYXRlOiBEYXRlO1xuICBwcm9maWxlOiBVc2VyUHJvZmlsZTtcbiAgYmFza2V0YmFsbFByb2ZpbGU6IEJhc2tldGJhbGxQcm9maWxlO1xuICB2b2xsZXliYWxsUHJvZmlsZTogVm9sbGV5YmFsbFByb2ZpbGU7XG4gIHBob3RvOiBGaWxlO1xuICB3aXphcmRzOiBzdHJpbmdbXTtcbiAgY2l0eTogQ2l0eTtcbiAgZ2VuZGVyOiBVc2VyR2VuZGVyO1xuICBpc0FjdGl2ZTogYm9vbGVhbjtcblxuICBAVG9Gcm9udEhvb2tcbiAgc3RhdGljIHRvRnJvbnQoZGF0YTogYW55KTogYW55IHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIEBUb0JhY2tIb29rXG4gIHN0YXRpYyB0b0JhY2sodXNlcjogVXNlcik6IGFueSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBnZXQgZnVsbE5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gW3RoaXMubGFzdE5hbWUsIHRoaXMuZmlyc3ROYW1lXS5maWx0ZXIocyA9PiBzKS5qb2luKCcgJyk7XG4gIH1cblxuICBnZXQgc2hvcnROYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFt0aGlzLmxhc3ROYW1lLCB0aGlzLmZpcnN0TmFtZV0uZmlsdGVyKHMgPT4gcykuam9pbignICcpO1xuICB9XG5cbiAgZ2V0IGluaXRpYWxzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFt0aGlzLmxhc3ROYW1lLCB0aGlzLmZpcnN0TmFtZV0uZmlsdGVyKHMgPT4gcykubWFwKHMgPT4gcy5zdWJzdHIoMCwgMSkpLmpvaW4oJycpO1xuICB9XG5cbiAgZ2V0IGFnZSgpOiBudW1iZXIge1xuICAgIGlmICghdGhpcy5iaXJ0aERhdGUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBjb25zdCBkaWZmID0gKG5ldyBEYXRlKCkpLmdldFRpbWUoKSAtIHRoaXMuYmlydGhEYXRlLmdldFRpbWUoKTtcbiAgICByZXR1cm4gTWF0aC5mbG9vcihkaWZmIC8gKDM2NSAqIDg2NDAwICogMTAwMCkpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
export const MODEL_MAPPING_FIELDS_KEY = '_mapping_fields_';
|
|
2
|
+
export const MODEL_RELATION_KEY = '_relation_';
|
|
3
|
+
export const MODEL_TO_FRONT_KEY = '_to_front_';
|
|
4
|
+
export const MODEL_TO_BACK_KEY = '_to_back_';
|
|
5
|
+
export class BaseModel {
|
|
6
|
+
constructor(data) {
|
|
7
|
+
if (data) {
|
|
8
|
+
for (const key of Object.keys(data)) {
|
|
9
|
+
this[key] = data[key];
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
static toFront(dto) {
|
|
14
|
+
return undefined;
|
|
15
|
+
}
|
|
16
|
+
static toBack(dto) {
|
|
17
|
+
return undefined;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
export function enumField(enumClass) {
|
|
21
|
+
return {
|
|
22
|
+
toFront: (value) => {
|
|
23
|
+
if (isNaN(+value)) {
|
|
24
|
+
return enumClass[value];
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
return value;
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
toBack: (value) => {
|
|
31
|
+
if (isNaN(+value)) {
|
|
32
|
+
return value;
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
return enumClass[value];
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
export function listField(modelClass) {
|
|
41
|
+
return {
|
|
42
|
+
toFront: (value) => {
|
|
43
|
+
if (!Array.isArray(value)) {
|
|
44
|
+
return [];
|
|
45
|
+
}
|
|
46
|
+
return modelClass.toFront(value);
|
|
47
|
+
},
|
|
48
|
+
toBack: (value) => {
|
|
49
|
+
if (!Array.isArray(value)) {
|
|
50
|
+
return [];
|
|
51
|
+
}
|
|
52
|
+
return modelClass.toBack(value);
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
export class DateField extends BaseModel {
|
|
57
|
+
static toFront(date) {
|
|
58
|
+
if (date) {
|
|
59
|
+
return new Date(date);
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
return undefined;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
static toBack(date) {
|
|
66
|
+
if (date) {
|
|
67
|
+
const dateUtc = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds()));
|
|
68
|
+
return dateUtc.toISOString().slice(0, 10);
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
return undefined;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
export class DateTimeField extends BaseModel {
|
|
76
|
+
static toFront(date) {
|
|
77
|
+
if (date) {
|
|
78
|
+
return new Date(date);
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
return undefined;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
static toBack(date) {
|
|
85
|
+
if (date) {
|
|
86
|
+
const dateUtc = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds()));
|
|
87
|
+
return date.toISOString();
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
return undefined;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
export function ModelInstance(config) {
|
|
95
|
+
return (target) => {
|
|
96
|
+
if (config) {
|
|
97
|
+
if (config.mappingFields) {
|
|
98
|
+
target[MODEL_MAPPING_FIELDS_KEY] = config.mappingFields;
|
|
99
|
+
}
|
|
100
|
+
if (config.relation) {
|
|
101
|
+
target[MODEL_RELATION_KEY] = config.relation;
|
|
102
|
+
}
|
|
103
|
+
target[MODEL_TO_FRONT_KEY] = (dto, path) => {
|
|
104
|
+
return toFront(target, dto, path);
|
|
105
|
+
};
|
|
106
|
+
target[MODEL_TO_BACK_KEY] = (dto, path) => {
|
|
107
|
+
return toBack(target, dto, path);
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
export const ToFrontHook = (target, key, descriptor) => {
|
|
113
|
+
return {
|
|
114
|
+
value: (...args) => {
|
|
115
|
+
const parseMethod = target[MODEL_TO_FRONT_KEY];
|
|
116
|
+
if (parseMethod) {
|
|
117
|
+
return parseMethod(args[0], (args.length > 1 ? args[1] : undefined));
|
|
118
|
+
}
|
|
119
|
+
return undefined;
|
|
120
|
+
}
|
|
121
|
+
};
|
|
122
|
+
};
|
|
123
|
+
export const ToBackHook = (target, key, descriptor) => {
|
|
124
|
+
return {
|
|
125
|
+
value: (...args) => {
|
|
126
|
+
const parseMethod = target[MODEL_TO_BACK_KEY];
|
|
127
|
+
if (parseMethod) {
|
|
128
|
+
return parseMethod(args[0]);
|
|
129
|
+
}
|
|
130
|
+
return undefined;
|
|
131
|
+
}
|
|
132
|
+
};
|
|
133
|
+
};
|
|
134
|
+
function extractValue(key, data) {
|
|
135
|
+
if (!data) {
|
|
136
|
+
return undefined;
|
|
137
|
+
}
|
|
138
|
+
const keyParts = key.split('.');
|
|
139
|
+
if (keyParts.length === 1) {
|
|
140
|
+
if (key in data) {
|
|
141
|
+
return data[key];
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
return undefined;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
for (const k of keyParts) {
|
|
148
|
+
if (data && k in data) {
|
|
149
|
+
data = data[k];
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
return undefined;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
return data;
|
|
156
|
+
}
|
|
157
|
+
function toFront(modelType, data, path) {
|
|
158
|
+
// Check if recursion is required
|
|
159
|
+
if (Array.isArray(data)) {
|
|
160
|
+
return data.map(item => {
|
|
161
|
+
return toFront(modelType, item);
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
const instance = new modelType();
|
|
165
|
+
// Mapping fields
|
|
166
|
+
const mappingFields = modelType[MODEL_MAPPING_FIELDS_KEY];
|
|
167
|
+
const relation = modelType[MODEL_RELATION_KEY];
|
|
168
|
+
if (mappingFields) {
|
|
169
|
+
for (const backField of Object.keys(mappingFields)) {
|
|
170
|
+
const frontField = mappingFields[backField];
|
|
171
|
+
const value = extractValue(backField, data);
|
|
172
|
+
if (relation && relation.hasOwnProperty(frontField)) {
|
|
173
|
+
instance[frontField] = relation[frontField].toFront(value);
|
|
174
|
+
}
|
|
175
|
+
else {
|
|
176
|
+
instance[frontField] = value;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
return instance;
|
|
181
|
+
}
|
|
182
|
+
function toBack(modelType, instance, path) {
|
|
183
|
+
if (!instance) {
|
|
184
|
+
return instance;
|
|
185
|
+
}
|
|
186
|
+
// Check if recursion is required
|
|
187
|
+
if (Array.isArray(instance)) {
|
|
188
|
+
return instance.map(item => {
|
|
189
|
+
return toBack(modelType, item);
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
const data = {};
|
|
193
|
+
const mappingFields = modelType[MODEL_MAPPING_FIELDS_KEY];
|
|
194
|
+
const relation = modelType[MODEL_RELATION_KEY];
|
|
195
|
+
if (mappingFields) {
|
|
196
|
+
for (const backField of Object.keys(mappingFields)) {
|
|
197
|
+
const frontField = mappingFields[backField];
|
|
198
|
+
if (relation && relation.hasOwnProperty(frontField) && instance[frontField] !== undefined) {
|
|
199
|
+
data[backField] = relation[frontField].toBack(instance[frontField]);
|
|
200
|
+
}
|
|
201
|
+
else {
|
|
202
|
+
data[backField] = instance[frontField];
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
return data;
|
|
207
|
+
}
|
|
208
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BtdGdhbWUvY29yZS8iLCJzb3VyY2VzIjpbIm1vZGVscy91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLGtCQUFrQixDQUFDO0FBQzNELE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLFlBQVksQ0FBQztBQUMvQyxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxZQUFZLENBQUM7QUFDL0MsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsV0FBVyxDQUFDO0FBYTdDLE1BQU0sT0FBZ0IsU0FBUztJQUM3QixZQUFZLElBQTJCO1FBQ3JDLElBQUksSUFBSSxFQUFFO1lBQ1IsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNuQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3ZCO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFRO1FBQ3JCLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQVE7UUFDcEIsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztDQUNGO0FBTUQsTUFBTSxVQUFVLFNBQVMsQ0FBQyxTQUFTO0lBQ2pDLE9BQU87UUFDTCxPQUFPLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNqQixJQUFJLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNqQixPQUFPLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUN6QjtpQkFBTTtnQkFDTCxPQUFPLEtBQUssQ0FBQzthQUNkO1FBQ0gsQ0FBQztRQUNELE1BQU0sRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ2hCLElBQUksS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ2pC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QUFRLEdBQUcsU0FBUyxDQUFDLGtCQUFrQixDQUFzQyxDQUFDO0lBQ3BGLElBQUksYUFBYSxFQUFFO1FBQ2pCLEtBQUssTUFBTSxTQUFTLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRTtZQUNsRCxNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDNUMsSUFBSSxRQUFRLElBQUksUUFBUSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsSUFBSSxRQUFRLENBQUMsVUFBVSxDQUFDLEtBQUssU0FBUyxFQUFFO2dCQUN6RixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQzthQUNyRTtpQkFBTTtnQkFDTCxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ3hDO1NBQ0Y7S0FDRjtJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBNT0RFTF9NQVBQSU5HX0ZJRUxEU19LRVkgPSAnX21hcHBpbmdfZmllbGRzXyc7XG5leHBvcnQgY29uc3QgTU9ERUxfUkVMQVRJT05fS0VZID0gJ19yZWxhdGlvbl8nO1xuZXhwb3J0IGNvbnN0IE1PREVMX1RPX0ZST05UX0tFWSA9ICdfdG9fZnJvbnRfJztcbmV4cG9ydCBjb25zdCBNT0RFTF9UT19CQUNLX0tFWSA9ICdfdG9fYmFja18nO1xuXG50eXBlIFBhcnNlckludGVyZmFjZSA9IChkdG86IGFueSwgcGF0aD86IEdyYXBoUGF0aEludGVyZmFjZSkgPT4gYW55O1xuXG5pbnRlcmZhY2UgTW9kZWxUeXBlSW50ZXJmYWNlIHtcbiAgbmV3KGRhdGE/OiBhbnkpO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1vZGVsSW50ZXJmYWNlIHtcbiAgdG9Gcm9udChkdG86IGFueSk6IGFueTtcbiAgdG9CYWNrKGR0bzogYW55KTogYW55O1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZU1vZGVsIHtcbiAgY29uc3RydWN0b3IoZGF0YT86IHtba2V5OiBzdHJpbmddOiBhbnl9KSB7XG4gICAgaWYgKGRhdGEpIHtcbiAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGRhdGEpKSB7XG4gICAgICAgIHRoaXNba2V5XSA9IGRhdGFba2V5XTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzdGF0aWMgdG9Gcm9udChkdG86IGFueSk6IGFueSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHN0YXRpYyB0b0JhY2soZHRvOiBhbnkpOiBhbnkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuaW50ZXJmYWNlIEdyYXBoUGF0aEludGVyZmFjZSB7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVudW1GaWVsZChlbnVtQ2xhc3MpIHtcbiAgcmV0dXJuIHtcbiAgICB0b0Zyb250OiAodmFsdWUpID0+IHtcbiAgICAgIGlmIChpc05hTigrdmFsdWUpKSB7XG4gICAgICAgIHJldHVybiBlbnVtQ2xhc3NbdmFsdWVdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfVxuICAgIH0sXG4gICAgdG9CYWNrOiAodmFsdWUpID0+IHtcbiAgICAgIGlmIChpc05hTigrdmFsdWUpKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBlbnVtQ2xhc3NbdmFsdWVdO1xuICAgICAgfVxuICAgIH1cbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxpc3RGaWVsZChtb2RlbENsYXNzKSB7XG4gIHJldHVybiB7XG4gICAgdG9Gcm9udDogKHZhbHVlKSA9PiB7XG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBtb2RlbENsYXNzLnRvRnJvbnQodmFsdWUpO1xuICAgIH0sXG4gICAgdG9CYWNrOiAodmFsdWUpID0+IHtcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG1vZGVsQ2xhc3MudG9CYWNrKHZhbHVlKTtcbiAgICB9XG4gIH07XG59XG5cbmV4cG9ydCBjbGFzcyBEYXRlRmllbGQgZXh0ZW5kcyBCYXNlTW9kZWwge1xuICBzdGF0aWMgdG9Gcm9udChkYXRlOiBhbnkpOiBhbnkge1xuICAgIGlmIChkYXRlKSB7XG4gICAgICByZXR1cm4gbmV3IERhdGUoZGF0ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG4gIHN0YXRpYyB0b0JhY2soZGF0ZTogRGF0ZSk6IGFueSB7XG4gICAgaWYgKGRhdGUpIHtcbiAgICAgIGNvbnN0IGRhdGVVdGMgPSBuZXcgRGF0ZShEYXRlLlVUQyhcbiAgICAgICAgZGF0ZS5nZXRGdWxsWWVhcigpLFxuICAgICAgICBkYXRlLmdldE1vbnRoKCksXG4gICAgICAgIGRhdGUuZ2V0RGF0ZSgpLFxuICAgICAgICBkYXRlLmdldEhvdXJzKCksXG4gICAgICAgIGRhdGUuZ2V0TWludXRlcygpLFxuICAgICAgICBkYXRlLmdldFNlY29uZHMoKSlcbiAgICAgICk7XG4gICAgICByZXR1cm4gZGF0ZVV0Yy50b0lTT1N0cmluZygpLnNsaWNlKDAsIDEwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIERhdGVUaW1lRmllbGQgZXh0ZW5kcyBCYXNlTW9kZWwge1xuICBzdGF0aWMgdG9Gcm9udChkYXRlOiBhbnkpOiBhbnkge1xuICAgIGlmIChkYXRlKSB7XG4gICAgICByZXR1cm4gbmV3IERhdGUoZGF0ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG4gIHN0YXRpYyB0b0JhY2soZGF0ZTogRGF0ZSk6IGFueSB7XG4gICAgaWYgKGRhdGUpIHtcbiAgICAgIGNvbnN0IGRhdGVVdGMgPSBuZXcgRGF0ZShEYXRlLlVUQyhcbiAgICAgICAgZGF0ZS5nZXRGdWxsWWVhcigpLFxuICAgICAgICBkYXRlLmdldE1vbnRoKCksXG4gICAgICAgIGRhdGUuZ2V0RGF0ZSgpLFxuICAgICAgICBkYXRlLmdldEhvdXJzKCksXG4gICAgICAgIGRhdGUuZ2V0TWludXRlcygpLFxuICAgICAgICBkYXRlLmdldFNlY29uZHMoKSlcbiAgICAgICk7XG4gICAgICByZXR1cm4gZGF0ZS50b0lTT1N0cmluZygpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gTW9kZWxJbnN0YW5jZShcbiAgY29uZmlnOiB7XG4gICAgbWFwcGluZ0ZpZWxkcz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0sXG4gICAgcmVsYXRpb24/OiB7IFtrZXk6IHN0cmluZ106IEJhc2VNb2RlbCB9XG4gIH1cbikge1xuICByZXR1cm4gKHRhcmdldDogTW9kZWxUeXBlSW50ZXJmYWNlKSA9PiB7XG4gICAgaWYgKGNvbmZpZykge1xuICAgICAgaWYgKGNvbmZpZy5tYXBwaW5nRmllbGRzKSB7XG4gICAgICAgIHRhcmdldFtNT0RFTF9NQVBQSU5HX0ZJRUxEU19LRVldID0gY29uZmlnLm1hcHBpbmdGaWVsZHM7XG4gICAgICB9XG4gICAgICBpZiAoY29uZmlnLnJlbGF0aW9uKSB7XG4gICAgICAgIHRhcmdldFtNT0RFTF9SRUxBVElPTl9LRVldID0gY29uZmlnLnJlbGF0aW9uO1xuICAgICAgfVxuICAgICAgdGFyZ2V0W01PREVMX1RPX0ZST05UX0tFWV0gPSAoZHRvOiBhbnksIHBhdGg6IEdyYXBoUGF0aEludGVyZmFjZSkgPT4ge1xuICAgICAgICByZXR1cm4gdG9Gcm9udCh0YXJnZXQsIGR0bywgcGF0aCk7XG4gICAgICB9O1xuICAgICAgdGFyZ2V0W01PREVMX1RPX0JBQ0tfS0VZXSA9IChkdG86IGFueSwgcGF0aDogR3JhcGhQYXRoSW50ZXJmYWNlKSA9PiB7XG4gICAgICAgIHJldHVybiB0b0JhY2sodGFyZ2V0LCBkdG8sIHBhdGgpO1xuICAgICAgfTtcbiAgICB9XG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBUb0Zyb250SG9vayA9ICh0YXJnZXQ6IE1vZGVsVHlwZUludGVyZmFjZSwga2V5OiBzdHJpbmcgfCBzeW1ib2wsIGRlc2NyaXB0b3I6IFR5cGVkUHJvcGVydHlEZXNjcmlwdG9yPEZ1bmN0aW9uPikgPT4ge1xuICByZXR1cm4ge1xuICAgIHZhbHVlOiAoLi4uYXJnczogYW55W10pID0+IHtcbiAgICAgIGNvbnN0IHBhcnNlTWV0aG9kID0gdGFyZ2V0W01PREVMX1RPX0ZST05UX0tFWV0gYXMgUGFyc2VySW50ZXJmYWNlO1xuICAgICAgaWYgKHBhcnNlTWV0aG9kKSB7XG4gICAgICAgIHJldHVybiBwYXJzZU1ldGhvZChhcmdzWzBdLCAoYXJncy5sZW5ndGggPiAxID8gYXJnc1sxXSA6IHVuZGVmaW5lZCkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgVG9CYWNrSG9vayA9ICh0YXJnZXQ6IE1vZGVsVHlwZUludGVyZmFjZSwga2V5OiBzdHJpbmcgfCBzeW1ib2wsIGRlc2NyaXB0b3I6IFR5cGVkUHJvcGVydHlEZXNjcmlwdG9yPEZ1bmN0aW9uPikgPT4ge1xuICByZXR1cm4ge1xuICAgIHZhbHVlOiAoLi4uYXJnczogYW55W10pID0+IHtcbiAgICAgIGNvbnN0IHBhcnNlTWV0aG9kID0gdGFyZ2V0W01PREVMX1RPX0JBQ0tfS0VZXSBhcyBQYXJzZXJJbnRlcmZhY2U7XG4gICAgICBpZiAocGFyc2VNZXRob2QpIHtcbiAgICAgICAgcmV0dXJuIHBhcnNlTWV0aG9kKGFyZ3NbMF0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH07XG59O1xuXG5mdW5jdGlvbiBleHRyYWN0VmFsdWUoa2V5LCBkYXRhKSB7XG4gIGlmICghZGF0YSkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdCBrZXlQYXJ0cyA9IGtleS5zcGxpdCgnLicpO1xuICBpZiAoa2V5UGFydHMubGVuZ3RoID09PSAxKSB7XG4gICAgaWYgKGtleSBpbiBkYXRhKSB7XG4gICAgICByZXR1cm4gZGF0YVtrZXldO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIGZvciAoY29uc3QgayBvZiBrZXlQYXJ0cykge1xuICAgIGlmIChkYXRhICYmIGsgaW4gZGF0YSkge1xuICAgICAgZGF0YSA9IGRhdGFba107XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGRhdGE7XG59XG5cbmZ1bmN0aW9uIHRvRnJvbnQobW9kZWxUeXBlOiBNb2RlbFR5cGVJbnRlcmZhY2UsIGRhdGE6IGFueSwgcGF0aD86IEdyYXBoUGF0aEludGVyZmFjZSk6IGFueSB7XG4gIC8vIENoZWNrIGlmIHJlY3Vyc2lvbiBpcyByZXF1aXJlZFxuICBpZiAoQXJyYXkuaXNBcnJheShkYXRhKSkge1xuICAgIHJldHVybiBkYXRhLm1hcChpdGVtID0+IHtcbiAgICAgIHJldHVybiB0b0Zyb250KG1vZGVsVHlwZSwgaXRlbSk7XG4gICAgfSk7XG4gIH1cblxuICBjb25zdCBpbnN0YW5jZSA9IG5ldyBtb2RlbFR5cGUoKTtcblxuICAvLyBNYXBwaW5nIGZpZWxkc1xuICBjb25zdCBtYXBwaW5nRmllbGRzID0gbW9kZWxUeXBlW01PREVMX01BUFBJTkdfRklFTERTX0tFWV0gYXMgc3RyaW5nW107XG4gIGNvbnN0IHJlbGF0aW9uID0gbW9kZWxUeXBlW01PREVMX1JFTEFUSU9OX0tFWV0gYXMgeyBba2V5OiBzdHJpbmddOiBNb2RlbEludGVyZmFjZSB9O1xuICBpZiAobWFwcGluZ0ZpZWxkcykge1xuICAgIGZvciAoY29uc3QgYmFja0ZpZWxkIG9mIE9iamVjdC5rZXlzKG1hcHBpbmdGaWVsZHMpKSB7XG4gICAgICBjb25zdCBmcm9udEZpZWxkID0gbWFwcGluZ0ZpZWxkc1tiYWNrRmllbGRdO1xuICAgICAgY29uc3QgdmFsdWUgPSBleHRyYWN0VmFsdWUoYmFja0ZpZWxkLCBkYXRhKTtcbiAgICAgIGlmIChyZWxhdGlvbiAmJiByZWxhdGlvbi5oYXNPd25Qcm9wZXJ0eShmcm9udEZpZWxkKSkge1xuICAgICAgICBpbnN0YW5jZVtmcm9udEZpZWxkXSA9IHJlbGF0aW9uW2Zyb250RmllbGRdLnRvRnJvbnQodmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaW5zdGFuY2VbZnJvbnRGaWVsZF0gPSB2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gaW5zdGFuY2U7XG59XG5cbmZ1bmN0aW9uIHRvQmFjayhtb2RlbFR5cGU6IE1vZGVsVHlwZUludGVyZmFjZSwgaW5zdGFuY2U6IGFueSwgcGF0aD86IEdyYXBoUGF0aEludGVyZmFjZSk6IGFueSB7XG4gIGlmICghaW5zdGFuY2UpIHtcbiAgICByZXR1cm4gaW5zdGFuY2U7XG4gIH1cblxuICAvLyBDaGVjayBpZiByZWN1cnNpb24gaXMgcmVxdWlyZWRcbiAgaWYgKEFycmF5LmlzQXJyYXkoaW5zdGFuY2UpKSB7XG4gICAgcmV0dXJuIGluc3RhbmNlLm1hcChpdGVtID0+IHtcbiAgICAgIHJldHVybiB0b0JhY2sobW9kZWxUeXBlLCBpdGVtKTtcbiAgICB9KTtcbiAgfVxuXG4gIGNvbnN0IGRhdGEgPSB7fTtcbiAgY29uc3QgbWFwcGluZ0ZpZWxkcyA9IG1vZGVsVHlwZVtNT0RFTF9NQVBQSU5HX0ZJRUxEU19LRVldIGFzIHN0cmluZ1tdO1xuICBjb25zdCByZWxhdGlvbiA9IG1vZGVsVHlwZVtNT0RFTF9SRUxBVElPTl9LRVldIGFzIHsgW2tleTogc3RyaW5nXTogTW9kZWxJbnRlcmZhY2UgfTtcbiAgaWYgKG1hcHBpbmdGaWVsZHMpIHtcbiAgICBmb3IgKGNvbnN0IGJhY2tGaWVsZCBvZiBPYmplY3Qua2V5cyhtYXBwaW5nRmllbGRzKSkge1xuICAgICAgY29uc3QgZnJvbnRGaWVsZCA9IG1hcHBpbmdGaWVsZHNbYmFja0ZpZWxkXTtcbiAgICAgIGlmIChyZWxhdGlvbiAmJiByZWxhdGlvbi5oYXNPd25Qcm9wZXJ0eShmcm9udEZpZWxkKSAmJiBpbnN0YW5jZVtmcm9udEZpZWxkXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGRhdGFbYmFja0ZpZWxkXSA9IHJlbGF0aW9uW2Zyb250RmllbGRdLnRvQmFjayhpbnN0YW5jZVtmcm9udEZpZWxkXSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkYXRhW2JhY2tGaWVsZF0gPSBpbnN0YW5jZVtmcm9udEZpZWxkXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gZGF0YTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField } from './util';
|
|
3
|
+
export var VolleyballGameTypes;
|
|
4
|
+
(function (VolleyballGameTypes) {
|
|
5
|
+
VolleyballGameTypes[VolleyballGameTypes["best_of_five"] = 1] = "best_of_five";
|
|
6
|
+
VolleyballGameTypes[VolleyballGameTypes["best_of_three"] = 2] = "best_of_three";
|
|
7
|
+
})(VolleyballGameTypes || (VolleyballGameTypes = {}));
|
|
8
|
+
let VolleyballGameConfig = class VolleyballGameConfig extends BaseModel {
|
|
9
|
+
get setsCount() {
|
|
10
|
+
return this.gameType === VolleyballGameTypes.best_of_three ? 3 : 5;
|
|
11
|
+
}
|
|
12
|
+
getSetMaxScore(set) {
|
|
13
|
+
return set === this.setsCount ? this.scoreInLastSet : this.scoreInSet;
|
|
14
|
+
}
|
|
15
|
+
static toFront(data) { }
|
|
16
|
+
static toBack(data) { }
|
|
17
|
+
};
|
|
18
|
+
__decorate([
|
|
19
|
+
ToFrontHook
|
|
20
|
+
], VolleyballGameConfig, "toFront", null);
|
|
21
|
+
__decorate([
|
|
22
|
+
ToBackHook
|
|
23
|
+
], VolleyballGameConfig, "toBack", null);
|
|
24
|
+
VolleyballGameConfig = __decorate([
|
|
25
|
+
ModelInstance({
|
|
26
|
+
mappingFields: {
|
|
27
|
+
game_type: 'gameType',
|
|
28
|
+
timeout_count: 'timeoutCount',
|
|
29
|
+
timeout_time: 'timeoutTime',
|
|
30
|
+
substitute_count: 'substituteCount',
|
|
31
|
+
score_in_set: 'scoreInSet',
|
|
32
|
+
score_in_last_set: 'scoreInLastSet'
|
|
33
|
+
},
|
|
34
|
+
relation: {
|
|
35
|
+
gameType: enumField(VolleyballGameTypes)
|
|
36
|
+
}
|
|
37
|
+
})
|
|
38
|
+
], VolleyballGameConfig);
|
|
39
|
+
export { VolleyballGameConfig };
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidm9sbGV5YmFsbC1nYW1lLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BtdGdhbWUvY29yZS8iLCJzb3VyY2VzIjpbIm1vZGVscy92b2xsZXliYWxsLWdhbWUtY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUV0RixNQUFNLENBQU4sSUFBWSxtQkFHWDtBQUhELFdBQVksbUJBQW1CO0lBQzdCLDZFQUFnQixDQUFBO0lBQ2hCLCtFQUFhLENBQUE7QUFDZixDQUFDLEVBSFcsbUJBQW1CLEtBQW5CLG1CQUFtQixRQUc5QjtBQWVELElBQWEsb0JBQW9CLEdBQWpDLE1BQWEsb0JBQXFCLFNBQVEsU0FBUztJQVFqRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxRQUFRLEtBQUssbUJBQW1CLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQsY0FBYyxDQUFDLEdBQVc7UUFDeEIsT0FBTyxHQUFHLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN4RSxDQUFDO0lBR0QsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFTLElBQVEsQ0FBQztJQUdqQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQVMsSUFBUSxDQUFDO0NBQ2pDLENBQUE7QUFKQztJQURDLFdBQVc7eUNBQ3FCO0FBR2pDO0lBREMsVUFBVTt3Q0FDcUI7QUFwQnJCLG9CQUFvQjtJQWJoQyxhQUFhLENBQUM7UUFDYixhQUFhLEVBQUU7WUFDYixTQUFTLEVBQUUsVUFBVTtZQUNyQixhQUFhLEVBQUUsY0FBYztZQUM3QixZQUFZLEVBQUUsYUFBYTtZQUMzQixnQkFBZ0IsRUFBRSxpQkFBaUI7WUFDbkMsWUFBWSxFQUFFLFlBQVk7WUFDMUIsaUJBQWlCLEVBQUUsZ0JBQWdCO1NBQ3BDO1FBQ0QsUUFBUSxFQUFFO1lBQ1IsUUFBUSxFQUFFLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQztTQUN6QztLQUNGLENBQUM7R0FDVyxvQkFBb0IsQ0FxQmhDO1NBckJZLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZGVsSW5zdGFuY2UsIEJhc2VNb2RlbCwgVG9Gcm9udEhvb2ssIFRvQmFja0hvb2ssIGVudW1GaWVsZCB9IGZyb20gJy4vdXRpbCc7XG5cbmV4cG9ydCBlbnVtIFZvbGxleWJhbGxHYW1lVHlwZXMge1xuICBiZXN0X29mX2ZpdmUgPSAxLFxuICBiZXN0X29mX3RocmVlXG59XG5cbkBNb2RlbEluc3RhbmNlKHtcbiAgbWFwcGluZ0ZpZWxkczoge1xuICAgIGdhbWVfdHlwZTogJ2dhbWVUeXBlJyxcbiAgICB0aW1lb3V0X2NvdW50OiAndGltZW91dENvdW50JyxcbiAgICB0aW1lb3V0X3RpbWU6ICd0aW1lb3V0VGltZScsXG4gICAgc3Vic3RpdHV0ZV9jb3VudDogJ3N1YnN0aXR1dGVDb3VudCcsXG4gICAgc2NvcmVfaW5fc2V0OiAnc2NvcmVJblNldCcsXG4gICAgc2NvcmVfaW5fbGFzdF9zZXQ6ICdzY29yZUluTGFzdFNldCdcbiAgfSxcbiAgcmVsYXRpb246IHtcbiAgICBnYW1lVHlwZTogZW51bUZpZWxkKFZvbGxleWJhbGxHYW1lVHlwZXMpXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgVm9sbGV5YmFsbEdhbWVDb25maWcgZXh0ZW5kcyBCYXNlTW9kZWwge1xuICBnYW1lVHlwZTogVm9sbGV5YmFsbEdhbWVUeXBlcztcbiAgdGltZW91dENvdW50OiBudW1iZXI7XG4gIHRpbWVvdXRUaW1lOiBudW1iZXI7XG4gIHN1YnN0aXR1dGVDb3VudDogbnVtYmVyO1xuICBzY29yZUluU2V0OiBudW1iZXI7XG4gIHNjb3JlSW5MYXN0U2V0OiBudW1iZXI7XG5cbiAgZ2V0IHNldHNDb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdhbWVUeXBlID09PSBWb2xsZXliYWxsR2FtZVR5cGVzLmJlc3Rfb2ZfdGhyZWUgPyAzIDogNTtcbiAgfVxuXG4gIGdldFNldE1heFNjb3JlKHNldDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHNldCA9PT0gdGhpcy5zZXRzQ291bnQgPyB0aGlzLnNjb3JlSW5MYXN0U2V0IDogdGhpcy5zY29yZUluU2V0O1xuICB9XG5cbiAgQFRvRnJvbnRIb29rXG4gIHN0YXRpYyB0b0Zyb250KGRhdGE6IGFueSk6IGFueSB7fVxuXG4gIEBUb0JhY2tIb29rXG4gIHN0YXRpYyB0b0JhY2soZGF0YTogYW55KTogYW55IHt9XG59XG4iXX0=
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField, DateTimeField } from './util';
|
|
3
|
+
export var VolleyballGameLogType;
|
|
4
|
+
(function (VolleyballGameLogType) {
|
|
5
|
+
VolleyballGameLogType[VolleyballGameLogType["enter_game"] = 1] = "enter_game";
|
|
6
|
+
VolleyballGameLogType[VolleyballGameLogType["exit_game"] = 2] = "exit_game";
|
|
7
|
+
VolleyballGameLogType[VolleyballGameLogType["remove_game"] = 3] = "remove_game";
|
|
8
|
+
VolleyballGameLogType[VolleyballGameLogType["serve_hit"] = 4] = "serve_hit";
|
|
9
|
+
VolleyballGameLogType[VolleyballGameLogType["serve_fault"] = 5] = "serve_fault";
|
|
10
|
+
VolleyballGameLogType[VolleyballGameLogType["serve_ace"] = 6] = "serve_ace";
|
|
11
|
+
VolleyballGameLogType[VolleyballGameLogType["stuff_block"] = 7] = "stuff_block";
|
|
12
|
+
VolleyballGameLogType[VolleyballGameLogType["block_fault"] = 8] = "block_fault";
|
|
13
|
+
VolleyballGameLogType[VolleyballGameLogType["block_rebound"] = 9] = "block_rebound";
|
|
14
|
+
VolleyballGameLogType[VolleyballGameLogType["attack_spike"] = 10] = "attack_spike";
|
|
15
|
+
VolleyballGameLogType[VolleyballGameLogType["attack_fault"] = 11] = "attack_fault";
|
|
16
|
+
VolleyballGameLogType[VolleyballGameLogType["attack_shot"] = 12] = "attack_shot";
|
|
17
|
+
VolleyballGameLogType[VolleyballGameLogType["receive"] = 13] = "receive";
|
|
18
|
+
VolleyballGameLogType[VolleyballGameLogType["receive_fault"] = 14] = "receive_fault";
|
|
19
|
+
VolleyballGameLogType[VolleyballGameLogType["excellent_receive"] = 15] = "excellent_receive";
|
|
20
|
+
VolleyballGameLogType[VolleyballGameLogType["point"] = 16] = "point";
|
|
21
|
+
VolleyballGameLogType[VolleyballGameLogType["fault"] = 17] = "fault";
|
|
22
|
+
VolleyballGameLogType[VolleyballGameLogType["serve_receive"] = 18] = "serve_receive";
|
|
23
|
+
VolleyballGameLogType[VolleyballGameLogType["serve_receive_fault"] = 19] = "serve_receive_fault";
|
|
24
|
+
VolleyballGameLogType[VolleyballGameLogType["excellent_serve_receive"] = 20] = "excellent_serve_receive";
|
|
25
|
+
VolleyballGameLogType[VolleyballGameLogType["timeout"] = 21] = "timeout";
|
|
26
|
+
})(VolleyballGameLogType || (VolleyballGameLogType = {}));
|
|
27
|
+
export const SCORE_LOG_TYPES = [
|
|
28
|
+
VolleyballGameLogType.serve_ace, VolleyballGameLogType.stuff_block,
|
|
29
|
+
VolleyballGameLogType.attack_spike, VolleyballGameLogType.point
|
|
30
|
+
];
|
|
31
|
+
export const FAULT_LOG_TYPES = [
|
|
32
|
+
VolleyballGameLogType.serve_fault, VolleyballGameLogType.attack_fault,
|
|
33
|
+
VolleyballGameLogType.block_fault, VolleyballGameLogType.receive_fault,
|
|
34
|
+
VolleyballGameLogType.fault, VolleyballGameLogType.serve_receive_fault
|
|
35
|
+
];
|
|
36
|
+
let VolleyballGameLog = class VolleyballGameLog extends BaseModel {
|
|
37
|
+
constructor() {
|
|
38
|
+
super(...arguments);
|
|
39
|
+
this.active = true;
|
|
40
|
+
}
|
|
41
|
+
compare(model) {
|
|
42
|
+
if (this.rally === model.rally && this.set === model.set) {
|
|
43
|
+
if (this.datetime && model.datetime) {
|
|
44
|
+
return this.datetime.getTime() < model.datetime.getTime() ? 1 : -1;
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
return this.id < model.id ? 1 : -1;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
if (this.set === model.set) {
|
|
51
|
+
return this.rally < model.rally ? 1 : -1;
|
|
52
|
+
}
|
|
53
|
+
return this.set < model.set ? 1 : -1;
|
|
54
|
+
}
|
|
55
|
+
isScoreType() {
|
|
56
|
+
return SCORE_LOG_TYPES.includes(this.logType);
|
|
57
|
+
}
|
|
58
|
+
isFaultType() {
|
|
59
|
+
return FAULT_LOG_TYPES.includes(this.logType);
|
|
60
|
+
}
|
|
61
|
+
isServe() {
|
|
62
|
+
return [
|
|
63
|
+
VolleyballGameLogType.serve_hit,
|
|
64
|
+
VolleyballGameLogType.serve_ace,
|
|
65
|
+
VolleyballGameLogType.serve_fault
|
|
66
|
+
].includes(this.logType);
|
|
67
|
+
}
|
|
68
|
+
isAttack() {
|
|
69
|
+
return [
|
|
70
|
+
VolleyballGameLogType.attack_fault,
|
|
71
|
+
VolleyballGameLogType.attack_spike,
|
|
72
|
+
VolleyballGameLogType.attack_shot
|
|
73
|
+
].includes(this.logType);
|
|
74
|
+
}
|
|
75
|
+
isReceive() {
|
|
76
|
+
return [
|
|
77
|
+
VolleyballGameLogType.receive_fault,
|
|
78
|
+
VolleyballGameLogType.receive,
|
|
79
|
+
VolleyballGameLogType.excellent_receive
|
|
80
|
+
].includes(this.logType);
|
|
81
|
+
}
|
|
82
|
+
isServeReceive() {
|
|
83
|
+
return [
|
|
84
|
+
VolleyballGameLogType.serve_receive_fault,
|
|
85
|
+
VolleyballGameLogType.serve_receive,
|
|
86
|
+
VolleyballGameLogType.excellent_serve_receive
|
|
87
|
+
].includes(this.logType);
|
|
88
|
+
}
|
|
89
|
+
isBlock() {
|
|
90
|
+
return [
|
|
91
|
+
VolleyballGameLogType.block_fault,
|
|
92
|
+
VolleyballGameLogType.block_rebound,
|
|
93
|
+
VolleyballGameLogType.stuff_block
|
|
94
|
+
].includes(this.logType);
|
|
95
|
+
}
|
|
96
|
+
isEnterExit() {
|
|
97
|
+
return [
|
|
98
|
+
VolleyballGameLogType.enter_game,
|
|
99
|
+
VolleyballGameLogType.exit_game,
|
|
100
|
+
VolleyballGameLogType.timeout
|
|
101
|
+
].includes(this.logType);
|
|
102
|
+
}
|
|
103
|
+
isComboType() {
|
|
104
|
+
return ![
|
|
105
|
+
VolleyballGameLogType.receive,
|
|
106
|
+
VolleyballGameLogType.serve_receive
|
|
107
|
+
].includes(this.logType);
|
|
108
|
+
}
|
|
109
|
+
static toFront(data) { }
|
|
110
|
+
static toBack(data) { }
|
|
111
|
+
};
|
|
112
|
+
__decorate([
|
|
113
|
+
ToFrontHook
|
|
114
|
+
], VolleyballGameLog, "toFront", null);
|
|
115
|
+
__decorate([
|
|
116
|
+
ToBackHook
|
|
117
|
+
], VolleyballGameLog, "toBack", null);
|
|
118
|
+
VolleyballGameLog = __decorate([
|
|
119
|
+
ModelInstance({
|
|
120
|
+
mappingFields: {
|
|
121
|
+
id: 'id',
|
|
122
|
+
unique_id: 'uniqueId',
|
|
123
|
+
game_id: 'gameId',
|
|
124
|
+
game_user_id: 'gameUserId',
|
|
125
|
+
log_type: 'logType',
|
|
126
|
+
set: 'set',
|
|
127
|
+
rally: 'rally',
|
|
128
|
+
position: 'position',
|
|
129
|
+
team_id: 'teamId',
|
|
130
|
+
datetime: 'datetime',
|
|
131
|
+
},
|
|
132
|
+
relation: {
|
|
133
|
+
logType: enumField(VolleyballGameLogType),
|
|
134
|
+
datetime: DateTimeField
|
|
135
|
+
}
|
|
136
|
+
})
|
|
137
|
+
], VolleyballGameLog);
|
|
138
|
+
export { VolleyballGameLog };
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidm9sbGV5YmFsbC1nYW1lLWxvZy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BtdGdhbWUvY29yZS8iLCJzb3VyY2VzIjpbIm1vZGVscy92b2xsZXliYWxsLWdhbWUtbG9nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFJckcsTUFBTSxDQUFOLElBQVkscUJBc0JYO0FBdEJELFdBQVkscUJBQXFCO0lBQy9CLDZFQUFjLENBQUE7SUFDZCwyRUFBUyxDQUFBO0lBQ1QsK0VBQVcsQ0FBQTtJQUNYLDJFQUFTLENBQUE7SUFDVCwrRUFBVyxDQUFBO0lBQ1gsMkVBQVMsQ0FBQTtJQUNULCtFQUFXLENBQUE7SUFDWCwrRUFBVyxDQUFBO0lBQ1gsbUZBQWEsQ0FBQTtJQUNiLGtGQUFZLENBQUE7SUFDWixrRkFBWSxDQUFBO0lBQ1osZ0ZBQVcsQ0FBQTtJQUNYLHdFQUFPLENBQUE7SUFDUCxvRkFBYSxDQUFBO0lBQ2IsNEZBQWlCLENBQUE7SUFDakIsb0VBQUssQ0FBQTtJQUNMLG9FQUFLLENBQUE7SUFDTCxvRkFBYSxDQUFBO0lBQ2IsZ0dBQW1CLENBQUE7SUFDbkIsd0dBQXVCLENBQUE7SUFDdkIsd0VBQU8sQ0FBQTtBQUNULENBQUMsRUF0QlcscUJBQXFCLEtBQXJCLHFCQUFxQixRQXNCaEM7QUFFRCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUc7SUFDN0IscUJBQXFCLENBQUMsU0FBUyxFQUFFLHFCQUFxQixDQUFDLFdBQVc7SUFDbEUscUJBQXFCLENBQUMsWUFBWSxFQUFFLHFCQUFxQixDQUFDLEtBQUs7Q0FDaEUsQ0FBQztBQUNGLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRztJQUM3QixxQkFBcUIsQ0FBQyxXQUFXLEVBQUUscUJBQXFCLENBQUMsWUFBWTtJQUNyRSxxQkFBcUIsQ0FBQyxXQUFXLEVBQUUscUJBQXFCLENBQUMsYUFBYTtJQUN0RSxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUscUJBQXFCLENBQUMsbUJBQW1CO0NBQ3ZFLENBQUM7QUFvQkYsSUFBYSxpQkFBaUIsR0FBOUIsTUFBYSxpQkFBa0IsU0FBUSxTQUFTO0lBQWhEOztRQUdFLFdBQU0sR0FBRyxJQUFJLENBQUM7SUE2RmhCLENBQUM7SUFsRkMsT0FBTyxDQUFDLEtBQXdCO1FBQzlCLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxHQUFHLEtBQUssS0FBSyxDQUFDLEdBQUcsRUFBRTtZQUN4RCxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRTtnQkFDbkMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDcEU7aUJBQU07Z0JBQ0wsT0FBTyxJQUFJLENBQUMsRUFBRSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDcEM7U0FDRjtRQUNELElBQUksSUFBSSxDQUFDLEdBQUcsS0FBSyxLQUFLLENBQUMsR0FBRyxFQUFFO1lBQzFCLE9BQU8sSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELFdBQVc7UUFDVCxPQUFPLGVBQWUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxlQUFlLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU87WUFDTCxxQkFBcUIsQ0FBQyxTQUFTO1lBQy9CLHFCQUFxQixDQUFDLFNBQVM7WUFDL0IscUJBQXFCLENBQUMsV0FBVztTQUNsQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPO1lBQ0wscUJBQXFCLENBQUMsWUFBWTtZQUNsQyxxQkFBcUIsQ0FBQyxZQUFZO1lBQ2xDLHFCQUFxQixDQUFDLFdBQVc7U0FDbEMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxTQUFTO1FBQ1AsT0FBTztZQUNMLHFCQUFxQixDQUFDLGFBQWE7WUFDbkMscUJBQXFCLENBQUMsT0FBTztZQUM3QixxQkFBcUIsQ0FBQyxpQkFBaUI7U0FDeEMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxjQUFjO1FBQ1osT0FBTztZQUNMLHFCQUFxQixDQUFDLG1CQUFtQjtZQUN6QyxxQkFBcUIsQ0FBQyxhQUFhO1lBQ25DLHFCQUFxQixDQUFDLHVCQUF1QjtTQUM5QyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELE9BQU87UUFDTCxPQUFPO1lBQ0wscUJBQXFCLENBQUMsV0FBVztZQUNqQyxxQkFBcUIsQ0FBQyxhQUFhO1lBQ25DLHFCQUFxQixDQUFDLFdBQVc7U0FDbEMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTztZQUNMLHFCQUFxQixDQUFDLFVBQVU7WUFDaEMscUJBQXFCLENBQUMsU0FBUztZQUMvQixxQkFBcUIsQ0FBQyxPQUFPO1NBQzlCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsV0FBVztRQUNULE9BQU8sQ0FBQztZQUNOLHFCQUFxQixDQUFDLE9BQU87WUFDN0IscUJBQXFCLENBQUMsYUFBYTtTQUNwQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUdELE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBUyxJQUFRLENBQUM7SUFHakMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFTLElBQVEsQ0FBQztDQUNqQyxDQUFBO0FBSkM7SUFEQyxXQUFXO3NDQUNxQjtBQUdqQztJQURDLFVBQVU7cUNBQ3FCO0FBL0ZyQixpQkFBaUI7SUFsQjdCLGFBQWEsQ0FBQztRQUNiLGFBQWEsRUFBRTtZQUNiLEVBQUUsRUFBRSxJQUFJO1lBQ1IsU0FBUyxFQUFFLFVBQVU7WUFDckIsT0FBTyxFQUFFLFFBQVE7WUFDakIsWUFBWSxFQUFFLFlBQVk7WUFDMUIsUUFBUSxFQUFFLFNBQVM7WUFDbkIsR0FBRyxFQUFFLEtBQUs7WUFDVixLQUFLLEVBQUUsT0FBTztZQUNkLFFBQVEsRUFBRSxVQUFVO1lBQ3BCLE9BQU8sRUFBRSxRQUFRO1lBQ2pCLFFBQVEsRUFBRSxVQUFVO1NBQ3JCO1FBQ0QsUUFBUSxFQUFFO1lBQ1IsT0FBTyxFQUFFLFNBQVMsQ0FBQyxxQkFBcUIsQ0FBQztZQUN6QyxRQUFRLEVBQUUsYUFBYTtTQUN4QjtLQUNGLENBQUM7R0FDVyxpQkFBaUIsQ0FnRzdCO1NBaEdZLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZGVsSW5zdGFuY2UsIEJhc2VNb2RlbCwgVG9Gcm9udEhvb2ssIFRvQmFja0hvb2ssIGVudW1GaWVsZCwgRGF0ZVRpbWVGaWVsZCB9IGZyb20gJy4vdXRpbCc7XG5pbXBvcnQgeyBHYW1lTG9nQmFzZSB9IGZyb20gJy4vZ2FtZS1sb2ctYmFzZSc7XG5pbXBvcnQgeyBHYW1lVXNlciB9IGZyb20gJy4vZ2FtZS11c2VyJztcblxuZXhwb3J0IGVudW0gVm9sbGV5YmFsbEdhbWVMb2dUeXBlIHtcbiAgZW50ZXJfZ2FtZSA9IDEsXG4gIGV4aXRfZ2FtZSxcbiAgcmVtb3ZlX2dhbWUsXG4gIHNlcnZlX2hpdCxcbiAgc2VydmVfZmF1bHQsXG4gIHNlcnZlX2FjZSxcbiAgc3R1ZmZfYmxvY2ssXG4gIGJsb2NrX2ZhdWx0LFxuICBibG9ja19yZWJvdW5kLFxuICBhdHRhY2tfc3Bpa2UsXG4gIGF0dGFja19mYXVsdCxcbiAgYXR0YWNrX3Nob3QsXG4gIHJlY2VpdmUsXG4gIHJlY2VpdmVfZmF1bHQsXG4gIGV4Y2VsbGVudF9yZWNlaXZlLFxuICBwb2ludCxcbiAgZmF1bHQsXG4gIHNlcnZlX3JlY2VpdmUsXG4gIHNlcnZlX3JlY2VpdmVfZmF1bHQsXG4gIGV4Y2VsbGVudF9zZXJ2ZV9yZWNlaXZlLFxuICB0aW1lb3V0LFxufVxuXG5leHBvcnQgY29uc3QgU0NPUkVfTE9HX1RZUEVTID0gW1xuICBWb2xsZXliYWxsR2FtZUxvZ1R5cGUuc2VydmVfYWNlLCBWb2xsZXliYWxsR2FtZUxvZ1R5cGUuc3R1ZmZfYmxvY2ssXG4gIFZvbGxleWJhbGxHYW1lTG9nVHlwZS5hdHRhY2tfc3Bpa2UsIFZvbGxleWJhbGxHYW1lTG9nVHlwZS5wb2ludFxuXTtcbmV4cG9ydCBjb25zdCBGQVVMVF9MT0dfVFlQRVMgPSBbXG4gIFZvbGxleWJhbGxHYW1lTG9nVHlwZS5zZXJ2ZV9mYXVsdCwgVm9sbGV5YmFsbEdhbWVMb2dUeXBlLmF0dGFja19mYXVsdCxcbiAgVm9sbGV5YmFsbEdhbWVMb2dUeXBlLmJsb2NrX2ZhdWx0LCBWb2xsZXliYWxsR2FtZUxvZ1R5cGUucmVjZWl2ZV9mYXVsdCxcbiAgVm9sbGV5YmFsbEdhbWVMb2dUeXBlLmZhdWx0LCBWb2xsZXliYWxsR2FtZUxvZ1R5cGUuc2VydmVfcmVjZWl2ZV9mYXVsdFxuXTtcblxuQE1vZGVsSW5zdGFuY2Uoe1xuICBtYXBwaW5nRmllbGRzOiB7XG4gICAgaWQ6ICdpZCcsXG4gICAgdW5pcXVlX2lkOiAndW5pcXVlSWQnLFxuICAgIGdhbWVfaWQ6ICdnYW1lSWQnLFxuICAgIGdhbWVfdXNlcl9pZDogJ2dhbWVVc2VySWQnLFxuICAgIGxvZ190eXBlOiAnbG9nVHlwZScsXG4gICAgc2V0OiAnc2V0JyxcbiAgICByYWxseTogJ3JhbGx5JyxcbiAgICBwb3NpdGlvbjogJ3Bvc2l0aW9uJyxcbiAgICB0ZWFtX2lkOiAndGVhbUlkJyxcbiAgICBkYXRldGltZTogJ2RhdGV0aW1lJyxcbiAgfSxcbiAgcmVsYXRpb246IHtcbiAgICBsb2dUeXBlOiBlbnVtRmllbGQoVm9sbGV5YmFsbEdhbWVMb2dUeXBlKSxcbiAgICBkYXRldGltZTogRGF0ZVRpbWVGaWVsZFxuICB9XG59KVxuZXhwb3J0IGNsYXNzIFZvbGxleWJhbGxHYW1lTG9nIGV4dGVuZHMgQmFzZU1vZGVsIGltcGxlbWVudHMgR2FtZUxvZ0Jhc2Uge1xuICBpZDogbnVtYmVyO1xuICB1bmlxdWVJZDogc3RyaW5nO1xuICBhY3RpdmUgPSB0cnVlO1xuICBnYW1lSWQ6IG51bWJlcjtcbiAgZ2FtZVVzZXJJZDogbnVtYmVyO1xuICBsb2dUeXBlOiBWb2xsZXliYWxsR2FtZUxvZ1R5cGU7XG4gIHNldDogbnVtYmVyO1xuICByYWxseTogbnVtYmVyO1xuICBwb3NpdGlvbjogbnVtYmVyO1xuICB0ZWFtSWQ6IG51bWJlcjtcbiAgZGF0ZXRpbWU6IERhdGU7XG4gIGdhbWVVc2VyOiBHYW1lVXNlcjtcblxuICBjb21wYXJlKG1vZGVsOiBWb2xsZXliYWxsR2FtZUxvZyk6IG51bWJlciB7XG4gICAgaWYgKHRoaXMucmFsbHkgPT09IG1vZGVsLnJhbGx5ICYmIHRoaXMuc2V0ID09PSBtb2RlbC5zZXQpIHtcbiAgICAgIGlmICh0aGlzLmRhdGV0aW1lICYmIG1vZGVsLmRhdGV0aW1lKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGV0aW1lLmdldFRpbWUoKSA8IG1vZGVsLmRhdGV0aW1lLmdldFRpbWUoKSA/IDEgOiAtMTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlkIDwgbW9kZWwuaWQgPyAxIDogLTE7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0aGlzLnNldCA9PT0gbW9kZWwuc2V0KSB7XG4gICAgICByZXR1cm4gdGhpcy5yYWxseSA8IG1vZGVsLnJhbGx5ID8gMSA6IC0xO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5zZXQgPCBtb2RlbC5zZXQgPyAxIDogLTE7XG4gIH1cblxuICBpc1Njb3JlVHlwZSgpIHtcbiAgICByZXR1cm4gU0NPUkVfTE9HX1RZUEVTLmluY2x1ZGVzKHRoaXMubG9nVHlwZSk7XG4gIH1cblxuICBpc0ZhdWx0VHlwZSgpIHtcbiAgICByZXR1cm4gRkFVTFRfTE9HX1RZUEVTLmluY2x1ZGVzKHRoaXMubG9nVHlwZSk7XG4gIH1cblxuICBpc1NlcnZlKCkge1xuICAgIHJldHVybiBbXG4gICAgICBWb2xsZXliYWxsR2FtZUxvZ1R5cGUuc2VydmVfaGl0LFxuICAgICAgVm9sbGV5YmFsbEdhbWVMb2dUeXBlLnNlcnZlX2FjZSxcbiAgICAgIFZvbGxleWJhbGxHYW1lTG9nVHlwZS5zZXJ2ZV9mYXVsdFxuICAgIF0uaW5jbHVkZXModGhpcy5sb2dUeXBlKTtcbiAgfVxuXG4gIGlzQXR0YWNrKCkge1xuICAgIHJldHVybiBbXG4gICAgICBWb2xsZXliYWxsR2FtZUxvZ1R5cGUuYXR0YWNrX2ZhdWx0LFxuICAgICAgVm9sbGV5YmFsbEdhbWVMb2dUeXBlLmF0dGFja19zcGlrZSxcbiAgICAgIFZvbGxleWJhbGxHYW1lTG9nVHlwZS5hdHRhY2tfc2hvdFxuICAgIF0uaW5jbHVkZXModGhpcy5sb2dUeXBlKTtcbiAgfVxuXG4gIGlzUmVjZWl2ZSgpIHtcbiAgICByZXR1cm4gW1xuICAgICAgVm9sbGV5YmFsbEdhbWVMb2dUeXBlLnJlY2VpdmVfZmF1bHQsXG4gICAgICBWb2xsZXliYWxsR2FtZUxvZ1R5cGUucmVjZWl2ZSxcbiAgICAgIFZvbGxleWJhbGxHYW1lTG9nVHlwZS5leGNlbGxlbnRfcmVjZWl2ZVxuICAgIF0uaW5jbHVkZXModGhpcy5sb2dUeXBlKTtcbiAgfVxuXG4gIGlzU2VydmVSZWNlaXZlKCkge1xuICAgIHJldHVybiBbXG4gICAgICBWb2xsZXliYWxsR2FtZUxvZ1R5cGUuc2VydmVfcmVjZWl2ZV9mYXVsdCxcbiAgICAgIFZvbGxleWJhbGxHYW1lTG9nVHlwZS5zZXJ2ZV9yZWNlaXZlLFxuICAgICAgVm9sbGV5YmFsbEdhbWVMb2dUeXBlLmV4Y2VsbGVudF9zZXJ2ZV9yZWNlaXZlXG4gICAgXS5pbmNsdWRlcyh0aGlzLmxvZ1R5cGUpO1xuICB9XG5cbiAgaXNCbG9jaygpIHtcbiAgICByZXR1cm4gW1xuICAgICAgVm9sbGV5YmFsbEdhbWVMb2dUeXBlLmJsb2NrX2ZhdWx0LFxuICAgICAgVm9sbGV5YmFsbEdhbWVMb2dUeXBlLmJsb2NrX3JlYm91bmQsXG4gICAgICBWb2xsZXliYWxsR2FtZUxvZ1R5cGUuc3R1ZmZfYmxvY2tcbiAgICBdLmluY2x1ZGVzKHRoaXMubG9nVHlwZSk7XG4gIH1cblxuICBpc0VudGVyRXhpdCgpIHtcbiAgICByZXR1cm4gW1xuICAgICAgVm9sbGV5YmFsbEdhbWVMb2dUeXBlLmVudGVyX2dhbWUsXG4gICAgICBWb2xsZXliYWxsR2FtZUxvZ1R5cGUuZXhpdF9nYW1lLFxuICAgICAgVm9sbGV5YmFsbEdhbWVMb2dUeXBlLnRpbWVvdXRcbiAgICBdLmluY2x1ZGVzKHRoaXMubG9nVHlwZSk7XG4gIH1cblxuICBpc0NvbWJvVHlwZSgpIHtcbiAgICByZXR1cm4gIVtcbiAgICAgIFZvbGxleWJhbGxHYW1lTG9nVHlwZS5yZWNlaXZlLFxuICAgICAgVm9sbGV5YmFsbEdhbWVMb2dUeXBlLnNlcnZlX3JlY2VpdmVcbiAgICBdLmluY2x1ZGVzKHRoaXMubG9nVHlwZSk7XG4gIH1cblxuICBAVG9Gcm9udEhvb2tcbiAgc3RhdGljIHRvRnJvbnQoZGF0YTogYW55KTogYW55IHt9XG5cbiAgQFRvQmFja0hvb2tcbiAgc3RhdGljIHRvQmFjayhkYXRhOiBhbnkpOiBhbnkge31cbn1cbiJdfQ==
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';
|
|
3
|
+
let VolleyballGameStatistic = class VolleyballGameStatistic extends BaseModel {
|
|
4
|
+
get id() {
|
|
5
|
+
return this.gameUserId;
|
|
6
|
+
}
|
|
7
|
+
get attacks() {
|
|
8
|
+
return this.attackSpikes + this.attackShots;
|
|
9
|
+
}
|
|
10
|
+
get blocks() {
|
|
11
|
+
return this.stuffBlocks + this.blockRebounds;
|
|
12
|
+
}
|
|
13
|
+
get totalReceives() {
|
|
14
|
+
return this.receives + this.excellentReceives;
|
|
15
|
+
}
|
|
16
|
+
static toFront(data) { }
|
|
17
|
+
static toBack(data) { }
|
|
18
|
+
};
|
|
19
|
+
__decorate([
|
|
20
|
+
ToFrontHook
|
|
21
|
+
], VolleyballGameStatistic, "toFront", null);
|
|
22
|
+
__decorate([
|
|
23
|
+
ToBackHook
|
|
24
|
+
], VolleyballGameStatistic, "toBack", null);
|
|
25
|
+
VolleyballGameStatistic = __decorate([
|
|
26
|
+
ModelInstance({
|
|
27
|
+
mappingFields: {
|
|
28
|
+
game_user_id: 'gameUserId',
|
|
29
|
+
serve_hits: 'serveHits',
|
|
30
|
+
serve_faults: 'serveFaults',
|
|
31
|
+
serve_aces: 'serveAces',
|
|
32
|
+
stuff_blocks: 'stuffBlocks',
|
|
33
|
+
block_faults: 'blockFaults',
|
|
34
|
+
block_rebounds: 'blockRebounds',
|
|
35
|
+
attack_spikes: 'attackSpikes',
|
|
36
|
+
attack_faults: 'attackFaults',
|
|
37
|
+
attack_shots: 'attackShots',
|
|
38
|
+
receives: 'receives',
|
|
39
|
+
receive_faults: 'receiveFaults',
|
|
40
|
+
excellent_receives: 'excellentReceives',
|
|
41
|
+
serve_receives: 'serveReceives',
|
|
42
|
+
serve_receive_faults: 'serveReceiveFaults',
|
|
43
|
+
excellent_serve_receives: 'excellentServeReceives',
|
|
44
|
+
points: 'points',
|
|
45
|
+
faults: 'faults',
|
|
46
|
+
}
|
|
47
|
+
})
|
|
48
|
+
], VolleyballGameStatistic);
|
|
49
|
+
export { VolleyballGameStatistic };
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidm9sbGV5YmFsbC1nYW1lLXN0YXRpc3RpYy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BtdGdhbWUvY29yZS8iLCJzb3VyY2VzIjpbIm1vZGVscy92b2xsZXliYWxsLWdhbWUtc3RhdGlzdGljLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBeUIzRSxJQUFhLHVCQUF1QixHQUFwQyxNQUFhLHVCQUF3QixTQUFRLFNBQVM7SUFvQnBELElBQUksRUFBRTtRQUNKLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDOUMsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQy9DLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ2hELENBQUM7SUFHRCxNQUFNLENBQUMsT0FBTyxDQUFDLElBQVMsSUFBUSxDQUFDO0lBR2pDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBUyxJQUFRLENBQUM7Q0FDakMsQ0FBQTtBQUpDO0lBREMsV0FBVzs0Q0FDcUI7QUFHakM7SUFEQyxVQUFVOzJDQUNxQjtBQXhDckIsdUJBQXVCO0lBdEJuQyxhQUFhLENBQUM7UUFDYixhQUFhLEVBQUU7WUFDYixZQUFZLEVBQUUsWUFBWTtZQUMxQixVQUFVLEVBQUUsV0FBVztZQUN2QixZQUFZLEVBQUUsYUFBYTtZQUMzQixVQUFVLEVBQUUsV0FBVztZQUN2QixZQUFZLEVBQUUsYUFBYTtZQUMzQixZQUFZLEVBQUUsYUFBYTtZQUMzQixjQUFjLEVBQUUsZUFBZTtZQUMvQixhQUFhLEVBQUUsY0FBYztZQUM3QixhQUFhLEVBQUUsY0FBYztZQUM3QixZQUFZLEVBQUUsYUFBYTtZQUMzQixRQUFRLEVBQUUsVUFBVTtZQUNwQixjQUFjLEVBQUUsZUFBZTtZQUMvQixrQkFBa0IsRUFBRSxtQkFBbUI7WUFDdkMsY0FBYyxFQUFFLGVBQWU7WUFDL0Isb0JBQW9CLEVBQUUsb0JBQW9CO1lBQzFDLHdCQUF3QixFQUFFLHdCQUF3QjtZQUNsRCxNQUFNLEVBQUUsUUFBUTtZQUNoQixNQUFNLEVBQUUsUUFBUTtTQUNqQjtLQUNGLENBQUM7R0FDVyx1QkFBdUIsQ0F5Q25DO1NBekNZLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZGVsSW5zdGFuY2UsIEJhc2VNb2RlbCwgVG9Gcm9udEhvb2ssIFRvQmFja0hvb2sgfSBmcm9tICcuL3V0aWwnO1xuaW1wb3J0IHsgR2FtZVN0YXRpc3RpY0Jhc2UgfSBmcm9tICcuL2dhbWUtc3RhdGlzdGljLWJhc2UnO1xuXG5ATW9kZWxJbnN0YW5jZSh7XG4gIG1hcHBpbmdGaWVsZHM6IHtcbiAgICBnYW1lX3VzZXJfaWQ6ICdnYW1lVXNlcklkJyxcbiAgICBzZXJ2ZV9oaXRzOiAnc2VydmVIaXRzJyxcbiAgICBzZXJ2ZV9mYXVsdHM6ICdzZXJ2ZUZhdWx0cycsXG4gICAgc2VydmVfYWNlczogJ3NlcnZlQWNlcycsXG4gICAgc3R1ZmZfYmxvY2tzOiAnc3R1ZmZCbG9ja3MnLFxuICAgIGJsb2NrX2ZhdWx0czogJ2Jsb2NrRmF1bHRzJyxcbiAgICBibG9ja19yZWJvdW5kczogJ2Jsb2NrUmVib3VuZHMnLFxuICAgIGF0dGFja19zcGlrZXM6ICdhdHRhY2tTcGlrZXMnLFxuICAgIGF0dGFja19mYXVsdHM6ICdhdHRhY2tGYXVsdHMnLFxuICAgIGF0dGFja19zaG90czogJ2F0dGFja1Nob3RzJyxcbiAgICByZWNlaXZlczogJ3JlY2VpdmVzJyxcbiAgICByZWNlaXZlX2ZhdWx0czogJ3JlY2VpdmVGYXVsdHMnLFxuICAgIGV4Y2VsbGVudF9yZWNlaXZlczogJ2V4Y2VsbGVudFJlY2VpdmVzJyxcbiAgICBzZXJ2ZV9yZWNlaXZlczogJ3NlcnZlUmVjZWl2ZXMnLFxuICAgIHNlcnZlX3JlY2VpdmVfZmF1bHRzOiAnc2VydmVSZWNlaXZlRmF1bHRzJyxcbiAgICBleGNlbGxlbnRfc2VydmVfcmVjZWl2ZXM6ICdleGNlbGxlbnRTZXJ2ZVJlY2VpdmVzJyxcbiAgICBwb2ludHM6ICdwb2ludHMnLFxuICAgIGZhdWx0czogJ2ZhdWx0cycsXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgVm9sbGV5YmFsbEdhbWVTdGF0aXN0aWMgZXh0ZW5kcyBCYXNlTW9kZWwgaW1wbGVtZW50cyBHYW1lU3RhdGlzdGljQmFzZSB7XG4gIGdhbWVVc2VySWQ6IG51bWJlcjtcbiAgc2VydmVIaXRzOiBudW1iZXI7XG4gIHNlcnZlRmF1bHRzOiBudW1iZXI7XG4gIHNlcnZlQWNlczogbnVtYmVyO1xuICBzdHVmZkJsb2NrczogbnVtYmVyO1xuICBibG9ja0ZhdWx0czogbnVtYmVyO1xuICBibG9ja1JlYm91bmRzOiBudW1iZXI7XG4gIGF0dGFja1NwaWtlczogbnVtYmVyO1xuICBhdHRhY2tGYXVsdHM6IG51bWJlcjtcbiAgYXR0YWNrU2hvdHM6IG51bWJlcjtcbiAgcmVjZWl2ZXM6IG51bWJlcjtcbiAgcmVjZWl2ZUZhdWx0czogbnVtYmVyO1xuICBleGNlbGxlbnRSZWNlaXZlczogbnVtYmVyO1xuICBzZXJ2ZVJlY2VpdmVzOiBudW1iZXI7XG4gIHNlcnZlUmVjZWl2ZUZhdWx0czogbnVtYmVyO1xuICBleGNlbGxlbnRTZXJ2ZVJlY2VpdmVzOiBudW1iZXI7XG4gIHBvaW50czogbnVtYmVyO1xuICBmYXVsdHM6IG51bWJlcjtcblxuICBnZXQgaWQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nYW1lVXNlcklkO1xuICB9XG5cbiAgZ2V0IGF0dGFja3MoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5hdHRhY2tTcGlrZXMgKyB0aGlzLmF0dGFja1Nob3RzO1xuICB9XG5cbiAgZ2V0IGJsb2NrcygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnN0dWZmQmxvY2tzICsgdGhpcy5ibG9ja1JlYm91bmRzO1xuICB9XG5cbiAgZ2V0IHRvdGFsUmVjZWl2ZXMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5yZWNlaXZlcyArIHRoaXMuZXhjZWxsZW50UmVjZWl2ZXM7XG4gIH1cblxuICBAVG9Gcm9udEhvb2tcbiAgc3RhdGljIHRvRnJvbnQoZGF0YTogYW55KTogYW55IHt9XG5cbiAgQFRvQmFja0hvb2tcbiAgc3RhdGljIHRvQmFjayhkYXRhOiBhbnkpOiBhbnkge31cbn1cbiJdfQ==
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { ModelInstance, ToBackHook, ToFrontHook, BaseModel } from './util';
|
|
3
|
+
import { VolleyballStatistic } from './volleyball-statistic';
|
|
4
|
+
let VolleyballGameTeamStatistic = class VolleyballGameTeamStatistic extends BaseModel {
|
|
5
|
+
static toFront(data) { }
|
|
6
|
+
static toBack(data) { }
|
|
7
|
+
};
|
|
8
|
+
__decorate([
|
|
9
|
+
ToFrontHook
|
|
10
|
+
], VolleyballGameTeamStatistic, "toFront", null);
|
|
11
|
+
__decorate([
|
|
12
|
+
ToBackHook
|
|
13
|
+
], VolleyballGameTeamStatistic, "toBack", null);
|
|
14
|
+
VolleyballGameTeamStatistic = __decorate([
|
|
15
|
+
ModelInstance({
|
|
16
|
+
mappingFields: {
|
|
17
|
+
team: 'team',
|
|
18
|
+
competitor_team: 'competitorTeam',
|
|
19
|
+
},
|
|
20
|
+
relation: {
|
|
21
|
+
team: VolleyballStatistic,
|
|
22
|
+
competitorTeam: VolleyballStatistic,
|
|
23
|
+
}
|
|
24
|
+
})
|
|
25
|
+
], VolleyballGameTeamStatistic);
|
|
26
|
+
export { VolleyballGameTeamStatistic };
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidm9sbGV5YmFsbC1nYW1lLXRlYW0tc3RhdGlzdGljLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG10Z2FtZS9jb3JlLyIsInNvdXJjZXMiOlsibW9kZWxzL3ZvbGxleWJhbGwtZ2FtZS10ZWFtLXN0YXRpc3RpYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUMzRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQVk3RCxJQUFhLDJCQUEyQixHQUF4QyxNQUFhLDJCQUE0QixTQUFRLFNBQVM7SUFLeEQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFTLElBQVEsQ0FBQztJQUdqQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQVMsSUFBUSxDQUFDO0NBQ2pDLENBQUE7QUFKQztJQURDLFdBQVc7Z0RBQ3FCO0FBR2pDO0lBREMsVUFBVTsrQ0FDcUI7QUFSckIsMkJBQTJCO0lBVnZDLGFBQWEsQ0FBQztRQUNiLGFBQWEsRUFBRTtZQUNiLElBQUksRUFBRSxNQUFNO1lBQ1osZUFBZSxFQUFFLGdCQUFnQjtTQUNsQztRQUNELFFBQVEsRUFBRTtZQUNSLElBQUksRUFBRSxtQkFBbUI7WUFDekIsY0FBYyxFQUFFLG1CQUFtQjtTQUNwQztLQUNGLENBQUM7R0FDVywyQkFBMkIsQ0FTdkM7U0FUWSwyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2RlbEluc3RhbmNlLCBUb0JhY2tIb29rLCBUb0Zyb250SG9vaywgQmFzZU1vZGVsIH0gZnJvbSAnLi91dGlsJztcbmltcG9ydCB7IFZvbGxleWJhbGxTdGF0aXN0aWMgfSBmcm9tICcuL3ZvbGxleWJhbGwtc3RhdGlzdGljJztcblxuQE1vZGVsSW5zdGFuY2Uoe1xuICBtYXBwaW5nRmllbGRzOiB7XG4gICAgdGVhbTogJ3RlYW0nLFxuICAgIGNvbXBldGl0b3JfdGVhbTogJ2NvbXBldGl0b3JUZWFtJyxcbiAgfSxcbiAgcmVsYXRpb246IHtcbiAgICB0ZWFtOiBWb2xsZXliYWxsU3RhdGlzdGljLFxuICAgIGNvbXBldGl0b3JUZWFtOiBWb2xsZXliYWxsU3RhdGlzdGljLFxuICB9XG59KVxuZXhwb3J0IGNsYXNzIFZvbGxleWJhbGxHYW1lVGVhbVN0YXRpc3RpYyBleHRlbmRzIEJhc2VNb2RlbCB7XG4gIHRlYW06IFZvbGxleWJhbGxTdGF0aXN0aWM7XG4gIGNvbXBldGl0b3JUZWFtOiBWb2xsZXliYWxsU3RhdGlzdGljO1xuXG4gIEBUb0Zyb250SG9va1xuICBzdGF0aWMgdG9Gcm9udChkYXRhOiBhbnkpOiBhbnkge31cblxuICBAVG9CYWNrSG9va1xuICBzdGF0aWMgdG9CYWNrKGRhdGE6IGFueSk6IGFueSB7fVxufVxuIl19
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { BaseModel, enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';
|
|
3
|
+
export var GameVolleyballPosition;
|
|
4
|
+
(function (GameVolleyballPosition) {
|
|
5
|
+
GameVolleyballPosition[GameVolleyballPosition["setter"] = 1] = "setter";
|
|
6
|
+
GameVolleyballPosition[GameVolleyballPosition["libero"] = 2] = "libero";
|
|
7
|
+
GameVolleyballPosition[GameVolleyballPosition["middle_player"] = 3] = "middle_player";
|
|
8
|
+
GameVolleyballPosition[GameVolleyballPosition["receiver_attacker"] = 4] = "receiver_attacker";
|
|
9
|
+
GameVolleyballPosition[GameVolleyballPosition["dioganal"] = 5] = "dioganal";
|
|
10
|
+
})(GameVolleyballPosition || (GameVolleyballPosition = {}));
|
|
11
|
+
export var VolleyballWorkHand;
|
|
12
|
+
(function (VolleyballWorkHand) {
|
|
13
|
+
VolleyballWorkHand[VolleyballWorkHand["left"] = 1] = "left";
|
|
14
|
+
VolleyballWorkHand[VolleyballWorkHand["right"] = 2] = "right";
|
|
15
|
+
})(VolleyballWorkHand || (VolleyballWorkHand = {}));
|
|
16
|
+
let VolleyballProfile = class VolleyballProfile extends BaseModel {
|
|
17
|
+
static toFront(value) {
|
|
18
|
+
}
|
|
19
|
+
static toBack(value) {
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
__decorate([
|
|
23
|
+
ToFrontHook
|
|
24
|
+
], VolleyballProfile, "toFront", null);
|
|
25
|
+
__decorate([
|
|
26
|
+
ToBackHook
|
|
27
|
+
], VolleyballProfile, "toBack", null);
|
|
28
|
+
VolleyballProfile = __decorate([
|
|
29
|
+
ModelInstance({
|
|
30
|
+
mappingFields: {
|
|
31
|
+
id: 'id',
|
|
32
|
+
user_id: 'userId',
|
|
33
|
+
position: 'position',
|
|
34
|
+
work_hand: 'workHand'
|
|
35
|
+
},
|
|
36
|
+
relation: {
|
|
37
|
+
position: enumField(GameVolleyballPosition),
|
|
38
|
+
workHand: enumField(VolleyballWorkHand)
|
|
39
|
+
}
|
|
40
|
+
})
|
|
41
|
+
], VolleyballProfile);
|
|
42
|
+
export { VolleyballProfile };
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidm9sbGV5YmFsbC1wcm9maWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG10Z2FtZS9jb3JlLyIsInNvdXJjZXMiOlsibW9kZWxzL3ZvbGxleWJhbGwtcHJvZmlsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFdEYsTUFBTSxDQUFOLElBQVksc0JBTVg7QUFORCxXQUFZLHNCQUFzQjtJQUNoQyx1RUFBVSxDQUFBO0lBQ1YsdUVBQU0sQ0FBQTtJQUNOLHFGQUFhLENBQUE7SUFDYiw2RkFBaUIsQ0FBQTtJQUNqQiwyRUFBUSxDQUFBO0FBQ1YsQ0FBQyxFQU5XLHNCQUFzQixLQUF0QixzQkFBc0IsUUFNakM7QUFFRCxNQUFNLENBQU4sSUFBWSxrQkFHWDtBQUhELFdBQVksa0JBQWtCO0lBQzVCLDJEQUFRLENBQUE7SUFDUiw2REFBSyxDQUFBO0FBQ1AsQ0FBQyxFQUhXLGtCQUFrQixLQUFsQixrQkFBa0IsUUFHN0I7QUFjRCxJQUFhLGlCQUFpQixHQUE5QixNQUFhLGlCQUFrQixTQUFRLFNBQVM7SUFPOUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFVO0lBQ3pCLENBQUM7SUFHRCxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQVU7SUFDeEIsQ0FBQztDQUNGLENBQUE7QUFOQztJQURDLFdBQVc7c0NBRVg7QUFHRDtJQURDLFVBQVU7cUNBRVY7QUFaVSxpQkFBaUI7SUFaN0IsYUFBYSxDQUFDO1FBQ2IsYUFBYSxFQUFFO1lBQ2IsRUFBRSxFQUFFLElBQUk7WUFDUixPQUFPLEVBQUUsUUFBUTtZQUNqQixRQUFRLEVBQUUsVUFBVTtZQUNwQixTQUFTLEVBQUUsVUFBVTtTQUN0QjtRQUNELFFBQVEsRUFBRTtZQUNSLFFBQVEsRUFBRSxTQUFTLENBQUMsc0JBQXNCLENBQUM7WUFDM0MsUUFBUSxFQUFFLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQztTQUN4QztLQUNGLENBQUM7R0FDVyxpQkFBaUIsQ0FhN0I7U0FiWSxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlTW9kZWwsIGVudW1GaWVsZCwgTW9kZWxJbnN0YW5jZSwgVG9CYWNrSG9vaywgVG9Gcm9udEhvb2sgfSBmcm9tICcuL3V0aWwnO1xuXG5leHBvcnQgZW51bSBHYW1lVm9sbGV5YmFsbFBvc2l0aW9uIHtcbiAgc2V0dGVyID0gMSxcbiAgbGliZXJvLFxuICBtaWRkbGVfcGxheWVyLFxuICByZWNlaXZlcl9hdHRhY2tlcixcbiAgZGlvZ2FuYWxcbn1cblxuZXhwb3J0IGVudW0gVm9sbGV5YmFsbFdvcmtIYW5kIHtcbiAgbGVmdCA9IDEsXG4gIHJpZ2h0XG59XG5cbkBNb2RlbEluc3RhbmNlKHtcbiAgbWFwcGluZ0ZpZWxkczoge1xuICAgIGlkOiAnaWQnLFxuICAgIHVzZXJfaWQ6ICd1c2VySWQnLFxuICAgIHBvc2l0aW9uOiAncG9zaXRpb24nLFxuICAgIHdvcmtfaGFuZDogJ3dvcmtIYW5kJ1xuICB9LFxuICByZWxhdGlvbjoge1xuICAgIHBvc2l0aW9uOiBlbnVtRmllbGQoR2FtZVZvbGxleWJhbGxQb3NpdGlvbiksXG4gICAgd29ya0hhbmQ6IGVudW1GaWVsZChWb2xsZXliYWxsV29ya0hhbmQpXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgVm9sbGV5YmFsbFByb2ZpbGUgZXh0ZW5kcyBCYXNlTW9kZWwge1xuICBpZDogbnVtYmVyO1xuICB1c2VySWQ6IG51bWJlcjtcbiAgcG9zaXRpb246IEdhbWVWb2xsZXliYWxsUG9zaXRpb247XG4gIHdvcmtIYW5kOiBWb2xsZXliYWxsV29ya0hhbmQ7XG5cbiAgQFRvRnJvbnRIb29rXG4gIHN0YXRpYyB0b0Zyb250KHZhbHVlOiBhbnkpOiBhbnkge1xuICB9XG5cbiAgQFRvQmFja0hvb2tcbiAgc3RhdGljIHRvQmFjayh2YWx1ZTogYW55KTogYW55IHtcbiAgfVxufVxuIl19
|