@driveup/schema 0.2.6 → 0.2.9
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/lib/catalog/addon/addon.entity.d.ts +3 -3
- package/lib/catalog/addon/addon.entity.js +7 -7
- package/lib/catalog/addon/addon.entity.js.map +1 -1
- package/lib/catalog/addon/country.entity.d.ts +4 -4
- package/lib/catalog/addon/country.entity.js +5 -6
- package/lib/catalog/addon/country.entity.js.map +1 -1
- package/lib/catalog/priceplan/priceplan.entity.d.ts +8 -3
- package/lib/catalog/priceplan/priceplan.entity.js +14 -7
- package/lib/catalog/priceplan/priceplan.entity.js.map +1 -1
- package/lib/catalog/product/country.entity.d.ts +6 -6
- package/lib/catalog/product/country.entity.js +9 -10
- package/lib/catalog/product/country.entity.js.map +1 -1
- package/lib/catalog/product/priceplan.entity.d.ts +9 -4
- package/lib/catalog/product/priceplan.entity.js +19 -9
- package/lib/catalog/product/priceplan.entity.js.map +1 -1
- package/lib/catalog/product/product.entity.d.ts +3 -3
- package/lib/catalog/product/product.entity.js +8 -8
- package/lib/catalog/product/product.entity.js.map +1 -1
- package/lib/catalog/program/program.entity.d.ts +2 -2
- package/lib/catalog/program/program.entity.js +7 -7
- package/lib/catalog/program/program.entity.js.map +1 -1
- package/lib/catalog/seed/assets/asset.entity.d.ts +2 -2
- package/lib/catalog/seed/assets/asset.entity.js +6 -6
- package/lib/catalog/seed/assets/asset.entity.js.map +1 -1
- package/lib/catalog/seed/courses/course.entity.d.ts +4 -4
- package/lib/catalog/seed/courses/course.entity.js +9 -9
- package/lib/catalog/seed/courses/course.entity.js.map +1 -1
- package/lib/catalog/seed/courses/lesson.entity.d.ts +3 -3
- package/lib/catalog/seed/courses/lesson.entity.js +7 -7
- package/lib/catalog/seed/courses/lesson.entity.js.map +1 -1
- package/lib/catalog/seed/courses/topic.entity.d.ts +3 -3
- package/lib/catalog/seed/courses/topic.entity.js +8 -8
- package/lib/catalog/seed/courses/topic.entity.js.map +1 -1
- package/lib/catalog/seed/expense/category.entity.d.ts +2 -2
- package/lib/catalog/seed/expense/category.entity.js +6 -6
- package/lib/catalog/seed/expense/category.entity.js.map +1 -1
- package/lib/index.d.ts +2 -2
- package/lib/index.js +2 -2
- package/lib/index.js.map +1 -1
- package/lib/profile/agent/agent.entity.d.ts +13 -4
- package/lib/profile/agent/agent.entity.js +46 -20
- package/lib/profile/agent/agent.entity.js.map +1 -1
- package/lib/profile/agent/asset.entity.d.ts +1 -1
- package/lib/profile/agent/asset.entity.js +2 -2
- package/lib/profile/agent/asset.entity.js.map +1 -1
- package/lib/profile/agent/payout.entity.d.ts +3 -3
- package/lib/profile/agent/payout.entity.js +6 -6
- package/lib/profile/agent/payout.entity.js.map +1 -1
- package/lib/profile/agent/promotion.entity.d.ts +3 -3
- package/lib/profile/agent/promotion.entity.js +6 -6
- package/lib/profile/agent/promotion.entity.js.map +1 -1
- package/lib/profile/company/company.entity.d.ts +80 -9
- package/lib/profile/company/company.entity.js +246 -36
- package/lib/profile/company/company.entity.js.map +1 -1
- package/lib/profile/company/course/appointment.entity.d.ts +73 -4
- package/lib/profile/company/course/appointment.entity.js +247 -0
- package/lib/profile/company/course/appointment.entity.js.map +1 -1
- package/lib/profile/company/course/course.entity.d.ts +41 -8
- package/lib/profile/company/course/course.entity.js +58 -12
- package/lib/profile/company/course/course.entity.js.map +1 -1
- package/lib/profile/company/course/lesson.entity.d.ts +30 -7
- package/lib/profile/company/course/lesson.entity.js +93 -12
- package/lib/profile/company/course/lesson.entity.js.map +1 -1
- package/lib/profile/company/course/schedule.entity.d.ts +276 -0
- package/lib/profile/company/course/schedule.entity.js +744 -0
- package/lib/profile/company/course/schedule.entity.js.map +1 -0
- package/lib/profile/company/course/topic.entity.d.ts +9 -4
- package/lib/profile/company/course/topic.entity.js +14 -7
- package/lib/profile/company/course/topic.entity.js.map +1 -1
- package/lib/profile/company/finances/billing/bill.entity.d.ts +9 -2
- package/lib/profile/company/finances/billing/bill.entity.js +38 -4
- package/lib/profile/company/finances/billing/bill.entity.js.map +1 -1
- package/lib/profile/company/finances/billing/item.entity.d.ts +8 -3
- package/lib/profile/company/finances/billing/item.entity.js +10 -6
- package/lib/profile/company/finances/billing/item.entity.js.map +1 -1
- package/lib/profile/company/finances/billing/transaction.entity.d.ts +7 -5
- package/lib/profile/company/finances/billing/transaction.entity.js +6 -6
- package/lib/profile/company/finances/billing/transaction.entity.js.map +1 -1
- package/lib/profile/company/finances/expense/category.entity.d.ts +1 -1
- package/lib/profile/company/finances/expense/category.entity.js +4 -4
- package/lib/profile/company/finances/expense/category.entity.js.map +1 -1
- package/lib/profile/company/finances/expense/expense.entity.d.ts +6 -2
- package/lib/profile/company/finances/expense/expense.entity.js +32 -4
- package/lib/profile/company/finances/expense/expense.entity.js.map +1 -1
- package/lib/profile/company/finances/handover/handover.entity.d.ts +3 -3
- package/lib/profile/company/finances/handover/handover.entity.js +6 -6
- package/lib/profile/company/finances/handover/handover.entity.js.map +1 -1
- package/lib/profile/company/finances/invoice/invoice.entity.d.ts +8 -7
- package/lib/profile/company/finances/invoice/invoice.entity.js +15 -14
- package/lib/profile/company/finances/invoice/invoice.entity.js.map +1 -1
- package/lib/profile/company/finances/invoice/item.entity.d.ts +2 -2
- package/lib/profile/company/finances/invoice/item.entity.js +4 -4
- package/lib/profile/company/finances/invoice/item.entity.js.map +1 -1
- package/lib/profile/company/finances/payment/method.entity.d.ts +24 -4
- package/lib/profile/company/finances/payment/method.entity.js +40 -5
- package/lib/profile/company/finances/payment/method.entity.js.map +1 -1
- package/lib/profile/company/instructor/activity.entity.js.map +1 -1
- package/lib/profile/company/instructor/calendar-state.entity.js.map +1 -1
- package/lib/profile/company/instructor/instructor.entity.d.ts +34 -17
- package/lib/profile/company/instructor/instructor.entity.js +143 -25
- package/lib/profile/company/instructor/instructor.entity.js.map +1 -1
- package/lib/profile/company/instructor/task.entity.d.ts +2 -1
- package/lib/profile/company/instructor/task.entity.js +9 -4
- package/lib/profile/company/instructor/task.entity.js.map +1 -1
- package/lib/profile/company/medical/examination.entity.d.ts +4 -4
- package/lib/profile/company/medical/examination.entity.js +6 -6
- package/lib/profile/company/medical/examination.entity.js.map +1 -1
- package/lib/profile/company/medical/product.entity.d.ts +4 -5
- package/lib/profile/company/medical/product.entity.js +13 -14
- package/lib/profile/company/medical/product.entity.js.map +1 -1
- package/lib/profile/company/product/addon.entity.d.ts +3 -3
- package/lib/profile/company/product/addon.entity.js +6 -7
- package/lib/profile/company/product/addon.entity.js.map +1 -1
- package/lib/profile/company/product/priceplan.entity.d.ts +15 -13
- package/lib/profile/company/product/priceplan.entity.js +20 -16
- package/lib/profile/company/product/priceplan.entity.js.map +1 -1
- package/lib/profile/company/product/product.entity.d.ts +34 -8
- package/lib/profile/company/product/product.entity.js +70 -12
- package/lib/profile/company/product/product.entity.js.map +1 -1
- package/lib/profile/company/product/vehicle.entity.d.ts +2 -2
- package/lib/profile/company/product/vehicle.entity.js +4 -4
- package/lib/profile/company/product/vehicle.entity.js.map +1 -1
- package/lib/profile/instructor/instructor.entity.d.ts +6 -3
- package/lib/profile/instructor/instructor.entity.js +31 -9
- package/lib/profile/instructor/instructor.entity.js.map +1 -1
- package/lib/profile/student/program/licence/licence.entity.d.ts +13 -5
- package/lib/profile/student/program/licence/licence.entity.js +19 -8
- package/lib/profile/student/program/licence/licence.entity.js.map +1 -1
- package/lib/profile/student/program/medical/certificate.entity.d.ts +3 -3
- package/lib/profile/student/program/medical/certificate.entity.js +6 -6
- package/lib/profile/student/program/medical/certificate.entity.js.map +1 -1
- package/lib/profile/student/program/medical/examination.entity.d.ts +4 -4
- package/lib/profile/student/program/medical/examination.entity.js +14 -14
- package/lib/profile/student/program/medical/examination.entity.js.map +1 -1
- package/lib/profile/student/program/program.entity.d.ts +4 -4
- package/lib/profile/student/program/program.entity.js +8 -13
- package/lib/profile/student/program/program.entity.js.map +1 -1
- package/lib/profile/student/program/training/appointment.entity.d.ts +32 -9
- package/lib/profile/student/program/training/appointment.entity.js +144 -21
- package/lib/profile/student/program/training/appointment.entity.js.map +1 -1
- package/lib/profile/student/program/training/exam.entity.d.ts +9 -2
- package/lib/profile/student/program/training/exam.entity.js +28 -12
- package/lib/profile/student/program/training/exam.entity.js.map +1 -1
- package/lib/profile/student/program/training/lesson.entity.d.ts +8 -3
- package/lib/profile/student/program/training/lesson.entity.js +28 -6
- package/lib/profile/student/program/training/lesson.entity.js.map +1 -1
- package/lib/profile/student/program/training/request.entity.d.ts +6 -3
- package/lib/profile/student/program/training/request.entity.js +26 -5
- package/lib/profile/student/program/training/request.entity.js.map +1 -1
- package/lib/profile/student/program/training/topic.entity.d.ts +16 -4
- package/lib/profile/student/program/training/topic.entity.js +36 -9
- package/lib/profile/student/program/training/topic.entity.js.map +1 -1
- package/lib/profile/student/program/training/training.entity.d.ts +50 -6
- package/lib/profile/student/program/training/training.entity.js +217 -33
- package/lib/profile/student/program/training/training.entity.js.map +1 -1
- package/lib/profile/student/program/training/transaction.entity.d.ts +8 -3
- package/lib/profile/student/program/training/transaction.entity.js +43 -6
- package/lib/profile/student/program/training/transaction.entity.js.map +1 -1
- package/lib/profile/student/student.entity.d.ts +11 -6
- package/lib/profile/student/student.entity.js +59 -11
- package/lib/profile/student/student.entity.js.map +1 -1
- package/lib/system/campaign/campaign.entity.d.ts +4 -4
- package/lib/system/campaign/campaign.entity.js +10 -10
- package/lib/system/campaign/campaign.entity.js.map +1 -1
- package/lib/system/campaign/gifcode.entity.d.ts +4 -4
- package/lib/system/campaign/gifcode.entity.js +8 -8
- package/lib/system/campaign/gifcode.entity.js.map +1 -1
- package/lib/system/country/country.entity.d.ts +8 -6
- package/lib/system/country/country.entity.js +15 -9
- package/lib/system/country/country.entity.js.map +1 -1
- package/lib/system/currency/currency.entity.d.ts +1 -1
- package/lib/system/currency/currency.entity.js +4 -4
- package/lib/system/currency/currency.entity.js.map +1 -1
- package/lib/system/driving/category.entity.d.ts +7 -7
- package/lib/system/driving/category.entity.js +14 -14
- package/lib/system/driving/category.entity.js.map +1 -1
- package/lib/system/driving/vehicle.entity.d.ts +2 -2
- package/lib/system/driving/vehicle.entity.js +4 -4
- package/lib/system/driving/vehicle.entity.js.map +1 -1
- package/lib/system/event/event.entity.d.ts +2 -2
- package/lib/system/event/event.entity.js +4 -4
- package/lib/system/event/event.entity.js.map +1 -1
- package/lib/system/event/log.entity.d.ts +2 -2
- package/lib/system/event/log.entity.js +3 -3
- package/lib/system/event/log.entity.js.map +1 -1
- package/lib/system/ical/ical.entity.d.ts +63 -0
- package/lib/system/ical/ical.entity.js +70 -0
- package/lib/system/ical/ical.entity.js.map +1 -0
- package/lib/system/policy/policy.entity.d.ts +2 -2
- package/lib/system/policy/policy.entity.js +8 -8
- package/lib/system/policy/policy.entity.js.map +1 -1
- package/lib/system/staff/staff.entity.d.ts +1 -1
- package/lib/system/staff/staff.entity.js +5 -4
- package/lib/system/staff/staff.entity.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/user/alert.entity.d.ts +4 -3
- package/lib/user/alert.entity.js +11 -4
- package/lib/user/alert.entity.js.map +1 -1
- package/lib/user/blocked.entity.js +2 -2
- package/lib/user/blocked.entity.js.map +1 -1
- package/lib/user/device.entity.d.ts +17 -2
- package/lib/user/device.entity.js +29 -3
- package/lib/user/device.entity.js.map +1 -1
- package/lib/user/notification.entity.d.ts +3 -3
- package/lib/user/notification.entity.js +8 -8
- package/lib/user/notification.entity.js.map +1 -1
- package/lib/user/ticket.entity.d.ts +8 -3
- package/lib/user/ticket.entity.js +16 -7
- package/lib/user/ticket.entity.js.map +1 -1
- package/lib/user/user.entity.d.ts +101 -89
- package/lib/user/user.entity.js +272 -270
- package/lib/user/user.entity.js.map +1 -1
- package/lib/user/verification.entity.js +2 -2
- package/lib/user/verification.entity.js.map +1 -1
- package/lib/utils/activity.helper.d.ts +2 -2
- package/lib/utils/activity.helper.js.map +1 -1
- package/lib/utils/trackable.d.ts +13 -2
- package/lib/utils/trackable.js +55 -0
- package/lib/utils/trackable.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,8 +1,12 @@
|
|
|
1
|
-
import { Activity, Topic
|
|
1
|
+
import { Activity, Topic } from '@driveup/common';
|
|
2
|
+
import { Skill, StatusType } from '@driveup/shared';
|
|
3
|
+
import { EntityManager } from 'typeorm';
|
|
2
4
|
import { CompanyCourseTopicEntity } from '../../../company/course/topic.entity';
|
|
3
|
-
import { StudentTrainingLessonEntity } from './lesson.entity';
|
|
4
|
-
import { StudentTrainingAppointmentEntity } from './appointment.entity';
|
|
5
5
|
import { TrackableEntity } from '../../../../utils/trackable';
|
|
6
|
+
import { StudentEntity } from '../../student.entity';
|
|
7
|
+
import { StudentTrainingAppointmentEntity } from './appointment.entity';
|
|
8
|
+
import { StudentTrainingEntity } from './training.entity';
|
|
9
|
+
import { StudentTrainingLessonEntity } from './lesson.entity';
|
|
6
10
|
/**
|
|
7
11
|
* Student training topic entity representing topics within a training lesson.
|
|
8
12
|
* Topics are copied from company course topics and tracked individually per student.
|
|
@@ -43,8 +47,14 @@ export declare class StudentTrainingTopicEntity extends TrackableEntity<Topic> {
|
|
|
43
47
|
* Indicate if the topic has been completed by the student
|
|
44
48
|
*/
|
|
45
49
|
done: boolean;
|
|
50
|
+
/**
|
|
51
|
+
* Training Topic status.
|
|
52
|
+
* Can be a value from [StatusType.Planned, StatusType.Progress, StatusType.Completed, StatusType.Skipped, StatusType.Failed]
|
|
53
|
+
*/
|
|
54
|
+
status: StatusType;
|
|
46
55
|
/**
|
|
47
56
|
* Skills associated with this topic and their assessment scores
|
|
57
|
+
* - field "skillId" points to "CompanyCourseTopicEntity->skills->id"
|
|
48
58
|
*/
|
|
49
59
|
skills: Skill[];
|
|
50
60
|
/**
|
|
@@ -79,6 +89,8 @@ export declare class StudentTrainingTopicEntity extends TrackableEntity<Topic> {
|
|
|
79
89
|
* @returns Topic model instance (same as toModel())
|
|
80
90
|
*/
|
|
81
91
|
toSummary(): Topic;
|
|
92
|
+
getStudent(): Promise<StudentEntity>;
|
|
93
|
+
getTraining(): Promise<StudentTrainingEntity>;
|
|
82
94
|
/**
|
|
83
95
|
* Calculates the average score for this topic across all appointments
|
|
84
96
|
* @returns The average score or 0 if no scores are available
|
|
@@ -99,7 +111,7 @@ export declare class StudentTrainingTopicEntity extends TrackableEntity<Topic> {
|
|
|
99
111
|
* Counts how many times this topic has been assessed across all appointments
|
|
100
112
|
* @returns The number of appointments where this topic received an assessment
|
|
101
113
|
*/
|
|
102
|
-
getRepetition(): Promise<number>;
|
|
114
|
+
getRepetition(manager?: EntityManager): Promise<number>;
|
|
103
115
|
/**
|
|
104
116
|
* Retrieves all tracked activities for this topic
|
|
105
117
|
* Includes creation, update, and completion timestamps and associated users
|
|
@@ -10,14 +10,16 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.StudentTrainingTopicEntity = void 0;
|
|
13
|
-
const typeorm_1 = require("typeorm");
|
|
14
|
-
const shared_1 = require("@driveup/shared");
|
|
15
13
|
const common_1 = require("@driveup/common");
|
|
14
|
+
const shared_1 = require("@driveup/shared");
|
|
15
|
+
const typeorm_1 = require("typeorm");
|
|
16
16
|
const topic_entity_1 = require("../../../company/course/topic.entity");
|
|
17
|
-
const lesson_entity_1 = require("./lesson.entity");
|
|
18
|
-
const appointment_entity_1 = require("./appointment.entity");
|
|
19
|
-
const trackable_1 = require("../../../../utils/trackable");
|
|
20
17
|
const activity_helper_1 = require("../../../../utils/activity.helper");
|
|
18
|
+
const trackable_1 = require("../../../../utils/trackable");
|
|
19
|
+
const student_entity_1 = require("../../student.entity");
|
|
20
|
+
const appointment_entity_1 = require("./appointment.entity");
|
|
21
|
+
const training_entity_1 = require("./training.entity");
|
|
22
|
+
const lesson_entity_1 = require("./lesson.entity");
|
|
21
23
|
/**
|
|
22
24
|
* Student training topic entity representing topics within a training lesson.
|
|
23
25
|
* Topics are copied from company course topics and tracked individually per student.
|
|
@@ -45,7 +47,7 @@ let StudentTrainingTopicEntity = class StudentTrainingTopicEntity extends tracka
|
|
|
45
47
|
imageUrl: this.imageUrl,
|
|
46
48
|
sort: this.sort,
|
|
47
49
|
done: this.done,
|
|
48
|
-
skills: this.skills?.map(
|
|
50
|
+
skills: this.skills?.map(shared_1.Skill.toInstance) || []
|
|
49
51
|
});
|
|
50
52
|
}
|
|
51
53
|
/**
|
|
@@ -55,6 +57,19 @@ let StudentTrainingTopicEntity = class StudentTrainingTopicEntity extends tracka
|
|
|
55
57
|
toSummary() {
|
|
56
58
|
return this.toModel();
|
|
57
59
|
}
|
|
60
|
+
async getStudent() {
|
|
61
|
+
return await student_entity_1.StudentEntity.createQueryBuilder('student')
|
|
62
|
+
.innerJoin('student.trainings', 'training')
|
|
63
|
+
.innerJoin('training.appointments', 'appointment')
|
|
64
|
+
.where('appointment.id = :appointmentId', { appointmentId: this.id })
|
|
65
|
+
.getOne();
|
|
66
|
+
}
|
|
67
|
+
async getTraining() {
|
|
68
|
+
return await training_entity_1.StudentTrainingEntity.createQueryBuilder('training')
|
|
69
|
+
.innerJoin('training.appointments', 'appointment')
|
|
70
|
+
.where('appointment.id = :appointmentId', { appointmentId: this.id })
|
|
71
|
+
.getOne();
|
|
72
|
+
}
|
|
58
73
|
/**
|
|
59
74
|
* Calculates the average score for this topic across all appointments
|
|
60
75
|
* @returns The average score or 0 if no scores are available
|
|
@@ -98,6 +113,7 @@ let StudentTrainingTopicEntity = class StudentTrainingTopicEntity extends tracka
|
|
|
98
113
|
.createQueryBuilder('sda')
|
|
99
114
|
.where('sda.id = :id', { id: session.id })
|
|
100
115
|
.andWhere('JSON_CONTAINS(sda.topics, JSON_OBJECT("id", :topicId))', { topicId: this.id })
|
|
116
|
+
// TODO: ask admir, the assessment doesn't mean "score", maybe the topic was marked as "done" in that session
|
|
101
117
|
.andWhere('EXISTS (SELECT 1 FROM JSON_TABLE(sda.skills, "$[*]" COLUMNS(score INT PATH "$.score")) AS skill WHERE skill.score != :noScore)', { noScore: shared_1.Score.NoScoreSubmitted })
|
|
102
118
|
.getCount();
|
|
103
119
|
return count > 0;
|
|
@@ -106,9 +122,11 @@ let StudentTrainingTopicEntity = class StudentTrainingTopicEntity extends tracka
|
|
|
106
122
|
* Counts how many times this topic has been assessed across all appointments
|
|
107
123
|
* @returns The number of appointments where this topic received an assessment
|
|
108
124
|
*/
|
|
109
|
-
async getRepetition() {
|
|
110
|
-
const
|
|
111
|
-
|
|
125
|
+
async getRepetition(manager) {
|
|
126
|
+
const entityManager = manager ?? appointment_entity_1.StudentTrainingAppointmentEntity.getRepository().manager;
|
|
127
|
+
// TODO: ask admir, the repetition doesn't mean "score", maybe the topic was marked as "done" in that session
|
|
128
|
+
const count = await entityManager
|
|
129
|
+
.createQueryBuilder(appointment_entity_1.StudentTrainingAppointmentEntity, 'sda')
|
|
112
130
|
.where('JSON_CONTAINS(sda.topics, JSON_OBJECT("id", :topicId))', { topicId: this.id })
|
|
113
131
|
.andWhere('EXISTS (SELECT 1 FROM JSON_TABLE(sda.skills, "$[*]" COLUMNS(score INT PATH "$.score")) AS skill WHERE skill.score != :noScore)', { noScore: shared_1.Score.NoScoreSubmitted })
|
|
114
132
|
.getCount();
|
|
@@ -168,6 +186,15 @@ __decorate([
|
|
|
168
186
|
}),
|
|
169
187
|
__metadata("design:type", Boolean)
|
|
170
188
|
], StudentTrainingTopicEntity.prototype, "done", void 0);
|
|
189
|
+
__decorate([
|
|
190
|
+
(0, typeorm_1.Column)({
|
|
191
|
+
type: 'enum',
|
|
192
|
+
enum: [shared_1.StatusType.Planned, shared_1.StatusType.Progress, shared_1.StatusType.Completed, shared_1.StatusType.Skipped, shared_1.StatusType.Failed],
|
|
193
|
+
default: shared_1.StatusType.Planned,
|
|
194
|
+
nullable: false
|
|
195
|
+
}),
|
|
196
|
+
__metadata("design:type", String)
|
|
197
|
+
], StudentTrainingTopicEntity.prototype, "status", void 0);
|
|
171
198
|
__decorate([
|
|
172
199
|
(0, typeorm_1.Column)({
|
|
173
200
|
type: 'json',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"topic.entity.js","sourceRoot":"","sources":["../../../../../src/profile/student/program/training/topic.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"topic.entity.js","sourceRoot":"","sources":["../../../../../src/profile/student/program/training/topic.entity.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { Activity, Student, Training } from '@driveup/common';
|
|
2
|
+
import { AddonUsage, Address, Note, Period, Person, Rating } from '@driveup/shared';
|
|
3
|
+
import { CarTransmission, StatusType, TrainingType } from '@driveup/shared';
|
|
4
|
+
import { TrackableEntity } from '../../../../utils/trackable';
|
|
5
|
+
import { CompanyCourseEntity } from '../../../company/course/course.entity';
|
|
3
6
|
import { CompanyInvoiceEntity } from '../../../company/finances/invoice/invoice.entity';
|
|
4
|
-
import { StudentTrainingTransactionEntity } from './transaction.entity';
|
|
5
7
|
import { CompanyInstructorEntity } from '../../../company/instructor/instructor.entity';
|
|
6
|
-
import { CompanyCourseEntity } from '../../../company/course/course.entity';
|
|
7
8
|
import { StudentProgramEntity } from '../program.entity';
|
|
8
|
-
import { StudentTrainingLessonEntity } from './lesson.entity';
|
|
9
9
|
import { StudentTrainingAppointmentEntity } from './appointment.entity';
|
|
10
|
-
import {
|
|
10
|
+
import { StudentTrainingLessonEntity } from './lesson.entity';
|
|
11
|
+
import { StudentTrainingTransactionEntity } from './transaction.entity';
|
|
11
12
|
export declare class StudentTrainingEntity extends TrackableEntity<Training> {
|
|
12
13
|
/**
|
|
13
14
|
* Student program
|
|
@@ -100,6 +101,14 @@ export declare class StudentTrainingEntity extends TrackableEntity<Training> {
|
|
|
100
101
|
* Ratings and reviews given by the student for this training
|
|
101
102
|
*/
|
|
102
103
|
ratings: Rating[];
|
|
104
|
+
/**
|
|
105
|
+
* When student terminates a training they can submit a description
|
|
106
|
+
*/
|
|
107
|
+
terminationNote: Note;
|
|
108
|
+
/**
|
|
109
|
+
* Wether or not the student can manage appointments in the calendar
|
|
110
|
+
*/
|
|
111
|
+
calendarEnabled: boolean;
|
|
103
112
|
/**
|
|
104
113
|
* List of addons used in the training
|
|
105
114
|
*/
|
|
@@ -199,5 +208,40 @@ export declare class StudentTrainingEntity extends TrackableEntity<Training> {
|
|
|
199
208
|
* @returns The sum of prices of all the appointments in this training, or 0 by default if no sum is found
|
|
200
209
|
*/
|
|
201
210
|
getTotalSessionFee(): Promise<number>;
|
|
211
|
+
/**
|
|
212
|
+
* @returns TrainingType - type of the training
|
|
213
|
+
*/
|
|
214
|
+
getTrainingType(): Promise<TrainingType>;
|
|
215
|
+
getTotalTopics(): Promise<number>;
|
|
216
|
+
getTotalCompletedTopics(): Promise<number>;
|
|
217
|
+
/**
|
|
218
|
+
* @returns StudentTrainingAppointmentEntity - The next upcoming appointment which is not canceled, or null if nothing is found
|
|
219
|
+
*/
|
|
220
|
+
getNextAppointment(): Promise<StudentTrainingAppointmentEntity>;
|
|
221
|
+
/**
|
|
222
|
+
* @returns The number of remaining (not yet occurred), not canceled appointments in this training, or 0 if there are no remaining appointments
|
|
223
|
+
*/
|
|
224
|
+
getRemainingAppointments(): Promise<number>;
|
|
225
|
+
/**
|
|
226
|
+
* Gets total number of appointments related to this training (canceled and not canceled)
|
|
227
|
+
*/
|
|
228
|
+
getTotalAppointments(): Promise<number>;
|
|
229
|
+
/**
|
|
230
|
+
* Check if a not canceled appointment exists that overlaps with the given period
|
|
231
|
+
* @param period Period - period to check for overlapping appointments
|
|
232
|
+
* @param appointment StudentTrainingAppointmentEntity - an optional appointment to exclude from the check (useful when updating an appointment)
|
|
233
|
+
* @returns boolean - true if an overlapping appointment exists, false otherwise
|
|
234
|
+
*/
|
|
235
|
+
appointmentExistsInPeriod(period: Period, appointment?: StudentTrainingAppointmentEntity): Promise<boolean>;
|
|
236
|
+
/**
|
|
237
|
+
* If the training is not in-progress, estimation isn't calculated
|
|
238
|
+
* If the number of previous appointments is less than 10, estimation isn't calculated
|
|
239
|
+
* If there are no completed topics, estimation isn't calculated
|
|
240
|
+
* @returns An estimated date for the exam based on the student's progress so far, or null if estimation can't be calculated
|
|
241
|
+
*/
|
|
242
|
+
getEstimatedExamDate(): Promise<Date>;
|
|
243
|
+
getTotalParts(): Promise<number>;
|
|
202
244
|
getActivities(): Promise<Activity[]>;
|
|
245
|
+
getCreatedBy(): Promise<CompanyInstructorEntity>;
|
|
246
|
+
getArchivedBy(): Promise<CompanyInstructorEntity>;
|
|
203
247
|
}
|
|
@@ -10,18 +10,21 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.StudentTrainingEntity = void 0;
|
|
13
|
-
const typeorm_1 = require("typeorm");
|
|
14
|
-
const shared_1 = require("@driveup/shared");
|
|
15
13
|
const common_1 = require("@driveup/common");
|
|
14
|
+
const shared_1 = require("@driveup/shared");
|
|
15
|
+
const shared_2 = require("@driveup/shared");
|
|
16
|
+
const luxon_1 = require("luxon");
|
|
17
|
+
const typeorm_1 = require("typeorm");
|
|
18
|
+
const activity_helper_1 = require("../../../../utils/activity.helper");
|
|
19
|
+
const trackable_1 = require("../../../../utils/trackable");
|
|
20
|
+
const course_entity_1 = require("../../../company/course/course.entity");
|
|
16
21
|
const invoice_entity_1 = require("../../../company/finances/invoice/invoice.entity");
|
|
17
|
-
const transaction_entity_1 = require("./transaction.entity");
|
|
18
22
|
const instructor_entity_1 = require("../../../company/instructor/instructor.entity");
|
|
19
|
-
const course_entity_1 = require("../../../company/course/course.entity");
|
|
20
23
|
const program_entity_1 = require("../program.entity");
|
|
21
|
-
const lesson_entity_1 = require("./lesson.entity");
|
|
22
24
|
const appointment_entity_1 = require("./appointment.entity");
|
|
23
|
-
const
|
|
24
|
-
const
|
|
25
|
+
const lesson_entity_1 = require("./lesson.entity");
|
|
26
|
+
const topic_entity_1 = require("./topic.entity");
|
|
27
|
+
const transaction_entity_1 = require("./transaction.entity");
|
|
25
28
|
let StudentTrainingEntity = class StudentTrainingEntity extends trackable_1.TrackableEntity {
|
|
26
29
|
constructor(props) {
|
|
27
30
|
super();
|
|
@@ -45,8 +48,8 @@ let StudentTrainingEntity = class StudentTrainingEntity extends trackable_1.Trac
|
|
|
45
48
|
paid: this.paid,
|
|
46
49
|
discount: this.discount,
|
|
47
50
|
refund: this.refund,
|
|
48
|
-
location: this.location ?
|
|
49
|
-
ratings: this.ratings ? this.ratings.map(
|
|
51
|
+
location: this.location ? shared_1.Address.toInstance(this.location) : null,
|
|
52
|
+
ratings: this.ratings ? this.ratings.map(shared_1.Rating.toInstance) : null,
|
|
50
53
|
transmission: this.transmission
|
|
51
54
|
});
|
|
52
55
|
}
|
|
@@ -65,11 +68,11 @@ let StudentTrainingEntity = class StudentTrainingEntity extends trackable_1.Trac
|
|
|
65
68
|
const training = await this.toModel();
|
|
66
69
|
// get all apointments notes
|
|
67
70
|
const appointtemnts = await this.appointments;
|
|
68
|
-
training.notes = appointtemnts?.map(a => a.note)?.map(
|
|
71
|
+
training.notes = appointtemnts?.map(a => a.note)?.map(shared_1.Note.toInstance);
|
|
69
72
|
// get ratings
|
|
70
|
-
training.ratings = this.ratings?.map(
|
|
73
|
+
training.ratings = this.ratings?.map(shared_1.Rating.toInstance) || null;
|
|
71
74
|
// get addons
|
|
72
|
-
training.addons = this.addons?.map(
|
|
75
|
+
training.addons = this.addons?.map(shared_1.AddonUsage.toInstance) || null;
|
|
73
76
|
return training;
|
|
74
77
|
}
|
|
75
78
|
/**
|
|
@@ -118,8 +121,8 @@ let StudentTrainingEntity = class StudentTrainingEntity extends trackable_1.Trac
|
|
|
118
121
|
async getPaymentTransactions() {
|
|
119
122
|
const total = await transaction_entity_1.StudentTrainingTransactionEntity.sum('amount', {
|
|
120
123
|
trainingId: this.id,
|
|
121
|
-
type:
|
|
122
|
-
status: (0, typeorm_1.Not)(
|
|
124
|
+
type: shared_2.TransactionType.Payment,
|
|
125
|
+
status: (0, typeorm_1.Not)(shared_2.StatusType.Canceled),
|
|
123
126
|
refTransactionId: (0, typeorm_1.IsNull)()
|
|
124
127
|
});
|
|
125
128
|
return total || 0;
|
|
@@ -131,9 +134,9 @@ let StudentTrainingEntity = class StudentTrainingEntity extends trackable_1.Trac
|
|
|
131
134
|
async getCashTransactions() {
|
|
132
135
|
const total = await transaction_entity_1.StudentTrainingTransactionEntity.sum('amount', {
|
|
133
136
|
trainingId: this.id,
|
|
134
|
-
type:
|
|
135
|
-
paymentType:
|
|
136
|
-
status: (0, typeorm_1.Not)(
|
|
137
|
+
type: shared_2.TransactionType.Payment,
|
|
138
|
+
paymentType: shared_2.PaymentType.Cash,
|
|
139
|
+
status: (0, typeorm_1.Not)(shared_2.StatusType.Canceled),
|
|
137
140
|
refTransactionId: (0, typeorm_1.IsNull)()
|
|
138
141
|
});
|
|
139
142
|
return total || 0;
|
|
@@ -145,8 +148,8 @@ let StudentTrainingEntity = class StudentTrainingEntity extends trackable_1.Trac
|
|
|
145
148
|
async getDiscountTransactions() {
|
|
146
149
|
const total = await transaction_entity_1.StudentTrainingTransactionEntity.sum('amount', {
|
|
147
150
|
trainingId: this.id,
|
|
148
|
-
type:
|
|
149
|
-
status: (0, typeorm_1.Not)(
|
|
151
|
+
type: shared_2.TransactionType.Discount,
|
|
152
|
+
status: (0, typeorm_1.Not)(shared_2.StatusType.Canceled),
|
|
150
153
|
refTransactionId: (0, typeorm_1.IsNull)()
|
|
151
154
|
});
|
|
152
155
|
return total || 0;
|
|
@@ -158,8 +161,8 @@ let StudentTrainingEntity = class StudentTrainingEntity extends trackable_1.Trac
|
|
|
158
161
|
async getRefundTransactions() {
|
|
159
162
|
const total = await transaction_entity_1.StudentTrainingTransactionEntity.sum('amount', {
|
|
160
163
|
trainingId: this.id,
|
|
161
|
-
type:
|
|
162
|
-
status: (0, typeorm_1.Not)(
|
|
164
|
+
type: shared_2.TransactionType.Refund,
|
|
165
|
+
status: (0, typeorm_1.Not)(shared_2.StatusType.Canceled),
|
|
163
166
|
refTransactionId: (0, typeorm_1.IsNull)()
|
|
164
167
|
});
|
|
165
168
|
return total || 0;
|
|
@@ -171,8 +174,11 @@ let StudentTrainingEntity = class StudentTrainingEntity extends trackable_1.Trac
|
|
|
171
174
|
async getCanceledTransactions() {
|
|
172
175
|
const total = await transaction_entity_1.StudentTrainingTransactionEntity.sum('amount', {
|
|
173
176
|
trainingId: this.id,
|
|
174
|
-
|
|
175
|
-
|
|
177
|
+
// TODO: ask admir about this. a cancelation item has type = TransactionType.Cancelation AND status = StatusType.Canceled
|
|
178
|
+
// therefore the bellow condition is never met
|
|
179
|
+
// or perhaps I'm wrong about my point
|
|
180
|
+
type: shared_2.TransactionType.Cancelation,
|
|
181
|
+
status: (0, typeorm_1.Not)(shared_2.StatusType.Canceled),
|
|
176
182
|
});
|
|
177
183
|
return total || 0;
|
|
178
184
|
}
|
|
@@ -185,14 +191,177 @@ let StudentTrainingEntity = class StudentTrainingEntity extends trackable_1.Trac
|
|
|
185
191
|
});
|
|
186
192
|
return total || 0;
|
|
187
193
|
}
|
|
194
|
+
/**
|
|
195
|
+
* @returns TrainingType - type of the training
|
|
196
|
+
*/
|
|
197
|
+
async getTrainingType() {
|
|
198
|
+
const product = await this.getProduct();
|
|
199
|
+
const trainingType = product.catalogType === shared_2.CatalogType.Driving ? shared_2.TrainingType.Driving : shared_2.TrainingType.Course;
|
|
200
|
+
return trainingType;
|
|
201
|
+
}
|
|
202
|
+
async getTotalTopics() {
|
|
203
|
+
const total = await topic_entity_1.StudentTrainingTopicEntity.createQueryBuilder('t')
|
|
204
|
+
.innerJoin('t.lesson', 'l')
|
|
205
|
+
.where('l.trainingId = :trainingId', { trainingId: this.id })
|
|
206
|
+
.getCount();
|
|
207
|
+
return total || 0;
|
|
208
|
+
}
|
|
209
|
+
async getTotalCompletedTopics() {
|
|
210
|
+
const total = await topic_entity_1.StudentTrainingTopicEntity.createQueryBuilder('t')
|
|
211
|
+
.innerJoin('t.lesson', 'l')
|
|
212
|
+
.where('l.trainingId = :trainingId', { trainingId: this.id })
|
|
213
|
+
.andWhere('t.done = :true', { true: true })
|
|
214
|
+
.getCount();
|
|
215
|
+
return total || 0;
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* @returns StudentTrainingAppointmentEntity - The next upcoming appointment which is not canceled, or null if nothing is found
|
|
219
|
+
*/
|
|
220
|
+
async getNextAppointment() {
|
|
221
|
+
const appointment = await appointment_entity_1.StudentTrainingAppointmentEntity.findOne({
|
|
222
|
+
where: {
|
|
223
|
+
trainingId: this.id,
|
|
224
|
+
startDate: (0, typeorm_1.MoreThanOrEqual)(luxon_1.DateTime.now().toJSDate()),
|
|
225
|
+
status: (0, typeorm_1.Not)(shared_2.StatusType.Canceled)
|
|
226
|
+
},
|
|
227
|
+
order: { startDate: 'ASC' }
|
|
228
|
+
});
|
|
229
|
+
return appointment || null;
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* @returns The number of remaining (not yet occurred), not canceled appointments in this training, or 0 if there are no remaining appointments
|
|
233
|
+
*/
|
|
234
|
+
async getRemainingAppointments() {
|
|
235
|
+
const total = await appointment_entity_1.StudentTrainingAppointmentEntity.countBy({
|
|
236
|
+
trainingId: this.id,
|
|
237
|
+
startDate: (0, typeorm_1.MoreThanOrEqual)(luxon_1.DateTime.now().toJSDate()),
|
|
238
|
+
status: (0, typeorm_1.Not)(shared_2.StatusType.Canceled)
|
|
239
|
+
});
|
|
240
|
+
return total || 0;
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Gets total number of appointments related to this training (canceled and not canceled)
|
|
244
|
+
*/
|
|
245
|
+
async getTotalAppointments() {
|
|
246
|
+
const total = await appointment_entity_1.StudentTrainingAppointmentEntity.countBy({
|
|
247
|
+
trainingId: this.id
|
|
248
|
+
});
|
|
249
|
+
return total || 0;
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Check if a not canceled appointment exists that overlaps with the given period
|
|
253
|
+
* @param period Period - period to check for overlapping appointments
|
|
254
|
+
* @param appointment StudentTrainingAppointmentEntity - an optional appointment to exclude from the check (useful when updating an appointment)
|
|
255
|
+
* @returns boolean - true if an overlapping appointment exists, false otherwise
|
|
256
|
+
*/
|
|
257
|
+
async appointmentExistsInPeriod(period, appointment) {
|
|
258
|
+
const query = appointment_entity_1.StudentTrainingAppointmentEntity
|
|
259
|
+
.createQueryBuilder('a')
|
|
260
|
+
.where('a.trainingId = :trainingId', { trainingId: this.id })
|
|
261
|
+
.andWhere('a.status != :canceledStatus', { canceledStatus: shared_2.StatusType.Canceled })
|
|
262
|
+
.andWhere(`
|
|
263
|
+
a.startDate < :endDate
|
|
264
|
+
AND
|
|
265
|
+
(
|
|
266
|
+
(a.endDate IS NULL AND DATE_ADD(a.startDate, INTERVAL a.duration MINUTE) > :startDate) OR
|
|
267
|
+
(a.endDate IS NOT NULL AND a.endDate > :startDate)
|
|
268
|
+
)
|
|
269
|
+
`, { endDate: period.endDate, startDate: period.startDate });
|
|
270
|
+
if (appointment) {
|
|
271
|
+
query.andWhere('a.id != :appointmentId', { appointmentId: appointment.id });
|
|
272
|
+
}
|
|
273
|
+
return await query.getExists();
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* If the training is not in-progress, estimation isn't calculated
|
|
277
|
+
* If the number of previous appointments is less than 10, estimation isn't calculated
|
|
278
|
+
* If there are no completed topics, estimation isn't calculated
|
|
279
|
+
* @returns An estimated date for the exam based on the student's progress so far, or null if estimation can't be calculated
|
|
280
|
+
*/
|
|
281
|
+
async getEstimatedExamDate() {
|
|
282
|
+
// If the training is not in-progress, estimation isn't calculated
|
|
283
|
+
if (this.status !== shared_2.StatusType.Progress)
|
|
284
|
+
return null;
|
|
285
|
+
// If the training has had less than 10 appointments, estimation isn't calculated
|
|
286
|
+
const totalPreviousAppointments = await appointment_entity_1.StudentTrainingAppointmentEntity.countBy({
|
|
287
|
+
trainingId: this.id,
|
|
288
|
+
startDate: (0, typeorm_1.LessThanOrEqual)(luxon_1.DateTime.now().toJSDate()),
|
|
289
|
+
status: (0, typeorm_1.Not)(shared_2.StatusType.Canceled),
|
|
290
|
+
isExam: false
|
|
291
|
+
});
|
|
292
|
+
if (totalPreviousAppointments < 10)
|
|
293
|
+
return null;
|
|
294
|
+
const firstAppointment = await appointment_entity_1.StudentTrainingAppointmentEntity.findOne({
|
|
295
|
+
order: { startDate: 'ASC' },
|
|
296
|
+
where: { trainingId: this.id, status: (0, typeorm_1.Not)(shared_2.StatusType.Canceled), isExam: false }
|
|
297
|
+
});
|
|
298
|
+
const latestAppointment = await appointment_entity_1.StudentTrainingAppointmentEntity.findOne({
|
|
299
|
+
order: { startDate: 'DESC' },
|
|
300
|
+
where: {
|
|
301
|
+
trainingId: this.id,
|
|
302
|
+
startDate: (0, typeorm_1.LessThanOrEqual)(luxon_1.DateTime.now().toJSDate()),
|
|
303
|
+
status: (0, typeorm_1.Not)(shared_2.StatusType.Canceled),
|
|
304
|
+
isExam: false
|
|
305
|
+
}
|
|
306
|
+
});
|
|
307
|
+
if (!latestAppointment)
|
|
308
|
+
return null;
|
|
309
|
+
const daysBetween = luxon_1.DateTime.fromJSDate(latestAppointment.startDate).diff(luxon_1.DateTime.fromJSDate(firstAppointment.startDate), 'days').days;
|
|
310
|
+
if (daysBetween <= 0)
|
|
311
|
+
return null;
|
|
312
|
+
const now = luxon_1.DateTime.now();
|
|
313
|
+
const totalTopics = await this.getTotalTopics();
|
|
314
|
+
const completedTopics = await this.getTotalCompletedTopics();
|
|
315
|
+
const remainingTopics = totalTopics - completedTopics;
|
|
316
|
+
if (!completedTopics)
|
|
317
|
+
return null;
|
|
318
|
+
if (!remainingTopics) {
|
|
319
|
+
return now.toJSDate();
|
|
320
|
+
}
|
|
321
|
+
// (number of days between first and latest appointment / number of completed topics) * number of remaining topics
|
|
322
|
+
const remainingDays = (daysBetween / completedTopics) * remainingTopics;
|
|
323
|
+
return now.plus({ days: remainingDays }).toJSDate();
|
|
324
|
+
// TODO: in the future consider the appointments created for the future as well
|
|
325
|
+
}
|
|
326
|
+
async getTotalParts() {
|
|
327
|
+
const trainingType = await this.getTrainingType();
|
|
328
|
+
if (trainingType !== shared_2.TrainingType.Course) {
|
|
329
|
+
return null;
|
|
330
|
+
}
|
|
331
|
+
return await lesson_entity_1.StudentTrainingLessonEntity.countBy({
|
|
332
|
+
trainingId: this.id,
|
|
333
|
+
canceledOn: (0, typeorm_1.IsNull)()
|
|
334
|
+
});
|
|
335
|
+
}
|
|
188
336
|
async getActivities() {
|
|
189
337
|
const activities = [];
|
|
190
|
-
activities.push(await (0, activity_helper_1.toActivity)(this.createdBy, this.createdOn,
|
|
191
|
-
activities.push(await (0, activity_helper_1.toActivity)(this.updatedBy, this.updatedOn,
|
|
192
|
-
activities.push(await (0, activity_helper_1.toActivity)(this.completedBy, this.completedOn,
|
|
193
|
-
activities.push(await (0, activity_helper_1.toActivity)(this.terminatedBy, this.terminatedOn,
|
|
338
|
+
activities.push(await (0, activity_helper_1.toActivity)(this.createdBy, this.createdOn, shared_2.ActivityType.created));
|
|
339
|
+
activities.push(await (0, activity_helper_1.toActivity)(this.updatedBy, this.updatedOn, shared_2.ActivityType.updated));
|
|
340
|
+
activities.push(await (0, activity_helper_1.toActivity)(this.completedBy, this.completedOn, shared_2.ActivityType.completed));
|
|
341
|
+
activities.push(await (0, activity_helper_1.toActivity)(this.terminatedBy, this.terminatedOn, shared_2.ActivityType.terminated));
|
|
194
342
|
return activities.filter(a => a);
|
|
195
343
|
}
|
|
344
|
+
async getCreatedBy() {
|
|
345
|
+
if (!this.createdBy)
|
|
346
|
+
return null;
|
|
347
|
+
const company = await this.getCompany();
|
|
348
|
+
return await instructor_entity_1.CompanyInstructorEntity.createQueryBuilder('ci')
|
|
349
|
+
.innerJoin('ci.instructor', 'i') // instructor profile
|
|
350
|
+
.where('i.userId = :userId', { userId: this.createdBy })
|
|
351
|
+
.andWhere('ci.companyId = :companyId', { companyId: company.id })
|
|
352
|
+
.getOne();
|
|
353
|
+
}
|
|
354
|
+
async getArchivedBy() {
|
|
355
|
+
const archivedById = this.completedBy || this.terminatedBy;
|
|
356
|
+
if (!archivedById)
|
|
357
|
+
return null;
|
|
358
|
+
const company = await this.getCompany();
|
|
359
|
+
return await instructor_entity_1.CompanyInstructorEntity.createQueryBuilder('ci')
|
|
360
|
+
.innerJoin('ci.instructor', 'i') // instructor profile
|
|
361
|
+
.where('i.userId = :userId', { userId: archivedById })
|
|
362
|
+
.andWhere('ci.companyId = :companyId', { companyId: company.id })
|
|
363
|
+
.getOne();
|
|
364
|
+
}
|
|
196
365
|
};
|
|
197
366
|
exports.StudentTrainingEntity = StudentTrainingEntity;
|
|
198
367
|
__decorate([
|
|
@@ -210,8 +379,8 @@ __decorate([
|
|
|
210
379
|
__decorate([
|
|
211
380
|
(0, typeorm_1.Column)({
|
|
212
381
|
type: 'enum',
|
|
213
|
-
enum:
|
|
214
|
-
default:
|
|
382
|
+
enum: shared_2.StatusType,
|
|
383
|
+
default: shared_2.StatusType.Progress,
|
|
215
384
|
nullable: false
|
|
216
385
|
}),
|
|
217
386
|
__metadata("design:type", String)
|
|
@@ -310,7 +479,7 @@ __decorate([
|
|
|
310
479
|
nullable: true,
|
|
311
480
|
default: null
|
|
312
481
|
}),
|
|
313
|
-
__metadata("design:type",
|
|
482
|
+
__metadata("design:type", shared_1.Address)
|
|
314
483
|
], StudentTrainingEntity.prototype, "location", void 0);
|
|
315
484
|
__decorate([
|
|
316
485
|
(0, typeorm_1.Column)({
|
|
@@ -329,8 +498,8 @@ __decorate([
|
|
|
329
498
|
__decorate([
|
|
330
499
|
(0, typeorm_1.Column)({
|
|
331
500
|
type: 'enum',
|
|
332
|
-
enum:
|
|
333
|
-
default:
|
|
501
|
+
enum: shared_2.CarTransmission,
|
|
502
|
+
default: shared_2.CarTransmission.Manual,
|
|
334
503
|
nullable: false
|
|
335
504
|
}),
|
|
336
505
|
__metadata("design:type", String)
|
|
@@ -340,7 +509,7 @@ __decorate([
|
|
|
340
509
|
type: 'json',
|
|
341
510
|
nullable: false
|
|
342
511
|
}),
|
|
343
|
-
__metadata("design:type",
|
|
512
|
+
__metadata("design:type", shared_1.Person)
|
|
344
513
|
], StudentTrainingEntity.prototype, "studentSnapshot", void 0);
|
|
345
514
|
__decorate([
|
|
346
515
|
(0, typeorm_1.Column)({
|
|
@@ -350,6 +519,21 @@ __decorate([
|
|
|
350
519
|
}),
|
|
351
520
|
__metadata("design:type", Array)
|
|
352
521
|
], StudentTrainingEntity.prototype, "ratings", void 0);
|
|
522
|
+
__decorate([
|
|
523
|
+
(0, typeorm_1.Column)({
|
|
524
|
+
type: 'simple-json',
|
|
525
|
+
nullable: true,
|
|
526
|
+
default: null
|
|
527
|
+
}),
|
|
528
|
+
__metadata("design:type", shared_1.Note)
|
|
529
|
+
], StudentTrainingEntity.prototype, "terminationNote", void 0);
|
|
530
|
+
__decorate([
|
|
531
|
+
(0, typeorm_1.Column)({
|
|
532
|
+
nullable: false,
|
|
533
|
+
default: true
|
|
534
|
+
}),
|
|
535
|
+
__metadata("design:type", Boolean)
|
|
536
|
+
], StudentTrainingEntity.prototype, "calendarEnabled", void 0);
|
|
353
537
|
__decorate([
|
|
354
538
|
(0, typeorm_1.Column)({
|
|
355
539
|
type: 'simple-json',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"training.entity.js","sourceRoot":"","sources":["../../../../../src/profile/student/program/training/training.entity.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"training.entity.js","sourceRoot":"","sources":["../../../../../src/profile/student/program/training/training.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4CAA8D;AAC9D,4CAAoF;AACpF,4CAAqI;AACrI,iCAAiC;AACjC,qCAAwH;AAExH,uEAA+D;AAC/D,2DAA8D;AAC9D,yEAA4E;AAC5E,qFAAwF;AACxF,qFAAwF;AACxF,sDAAyD;AACzD,6DAAwE;AACxE,mDAA8D;AAC9D,iDAA4D;AAC5D,6DAAwE;AAGjE,IAAM,qBAAqB,GAA3B,MAAM,qBAAsB,SAAQ,2BAAyB;IAgTnE,YAAY,KAAsC;QACjD,KAAK,EAAE,CAAC;QACR,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,OAAO;QACZ,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC;QAC5D,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1F,OAAO,IAAI,iBAAQ,CAAC;YACnB,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,OAAO,EAAE,OAAO;YAChB,UAAU,EAAE,UAAU;YACtB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,gBAAO,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI;YAClE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,eAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI;YAClE,YAAY,EAAE,IAAI,CAAC,YAAY;SAC/B,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,SAAS;QACd,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC;QAC5D,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1F,OAAO,IAAI,iBAAQ,CAAC;YACnB,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,OAAO,EAAE,OAAO;YAChB,UAAU,EAAE,UAAU;YACtB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,YAAY,EAAE,IAAI,CAAC,YAAY;SAC/B,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,kBAAkB;QAEvB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QAEtC,4BAA4B;QAC5B,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC;QAC9C,QAAQ,CAAC,KAAK,GAAG,aAAa,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,aAAI,CAAC,UAAU,CAAC,CAAA;QAEtE,cAAc;QACd,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,eAAM,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC;QAEhE,aAAa;QACb,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,mBAAU,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC;QAElE,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,UAAU;QACf,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxC,OAAO,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;IACnC,CAAC;IAED,kBAAkB;QACjB,OAAO,IAAI,gBAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC1C,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,UAAU;QACf,OAAO,MAAM,qCAAoB,CAAC,OAAO,CAAC;YACzC,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,SAAS,EAAE;YAC7B,WAAW,EAAE,IAAI;SACjB,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,SAAS;QACd,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,UAAU;QACf,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACtC,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,UAAU;QACf,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QAC7C,OAAO,CAAC,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,kBAAkB;QACvB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACtC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC;QACvC,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,sBAAsB;QAC3B,MAAM,KAAK,GAAG,MAAM,qDAAgC,CAAC,GAAG,CAAC,QAAQ,EAAE;YAClE,UAAU,EAAE,IAAI,CAAC,EAAE;YACnB,IAAI,EAAE,wBAAe,CAAC,OAAO;YAC7B,MAAM,EAAE,IAAA,aAAG,EAAC,mBAAU,CAAC,QAAQ,CAAC;YAChC,gBAAgB,EAAE,IAAA,gBAAM,GAAE;SAC1B,CAAC,CAAC;QACH,OAAO,KAAK,IAAI,CAAC,CAAC;IACnB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,mBAAmB;QACxB,MAAM,KAAK,GAAG,MAAM,qDAAgC,CAAC,GAAG,CAAC,QAAQ,EAAE;YAClE,UAAU,EAAE,IAAI,CAAC,EAAE;YACnB,IAAI,EAAE,wBAAe,CAAC,OAAO;YAC7B,WAAW,EAAE,oBAAW,CAAC,IAAI;YAC7B,MAAM,EAAE,IAAA,aAAG,EAAC,mBAAU,CAAC,QAAQ,CAAC;YAChC,gBAAgB,EAAE,IAAA,gBAAM,GAAE;SAC1B,CAAC,CAAC;QACH,OAAO,KAAK,IAAI,CAAC,CAAC;IACnB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,uBAAuB;QAC5B,MAAM,KAAK,GAAG,MAAM,qDAAgC,CAAC,GAAG,CAAC,QAAQ,EAAE;YAClE,UAAU,EAAE,IAAI,CAAC,EAAE;YACnB,IAAI,EAAE,wBAAe,CAAC,QAAQ;YAC9B,MAAM,EAAE,IAAA,aAAG,EAAC,mBAAU,CAAC,QAAQ,CAAC;YAChC,gBAAgB,EAAE,IAAA,gBAAM,GAAE;SAC1B,CAAC,CAAC;QACH,OAAO,KAAK,IAAI,CAAC,CAAC;IACnB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,qBAAqB;QAC1B,MAAM,KAAK,GAAG,MAAM,qDAAgC,CAAC,GAAG,CAAC,QAAQ,EAAE;YAClE,UAAU,EAAE,IAAI,CAAC,EAAE;YACnB,IAAI,EAAE,wBAAe,CAAC,MAAM;YAC5B,MAAM,EAAE,IAAA,aAAG,EAAC,mBAAU,CAAC,QAAQ,CAAC;YAChC,gBAAgB,EAAE,IAAA,gBAAM,GAAE;SAC1B,CAAC,CAAC;QACH,OAAO,KAAK,IAAI,CAAC,CAAC;IACnB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,uBAAuB;QAC5B,MAAM,KAAK,GAAG,MAAM,qDAAgC,CAAC,GAAG,CAAC,QAAQ,EAAE;YAClE,UAAU,EAAE,IAAI,CAAC,EAAE;YACnB,yHAAyH;YACzH,8CAA8C;YAC9C,sCAAsC;YACtC,IAAI,EAAE,wBAAe,CAAC,WAAW;YACjC,MAAM,EAAE,IAAA,aAAG,EAAC,mBAAU,CAAC,QAAQ,CAAC;SAChC,CAAC,CAAC;QACH,OAAO,KAAK,IAAI,CAAC,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB;QACvB,MAAM,KAAK,GAAG,MAAM,qDAAgC,CAAC,GAAG,CAAC,OAAO,EAAE;YACjE,UAAU,EAAE,IAAI,CAAC,EAAE;SACnB,CAAC,CAAC;QACH,OAAO,KAAK,IAAI,CAAC,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe;QACpB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxC,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,KAAK,oBAAW,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAY,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAY,CAAC,MAAM,CAAC;QAC9G,OAAO,YAAY,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,cAAc;QACnB,MAAM,KAAK,GAAG,MAAM,yCAA0B,CAAC,kBAAkB,CAAC,GAAG,CAAC;aACpE,SAAS,CAAC,UAAU,EAAE,GAAG,CAAC;aAC1B,KAAK,CAAC,4BAA4B,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;aAC5D,QAAQ,EAAE,CAAC;QACb,OAAO,KAAK,IAAI,CAAC,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,uBAAuB;QAC5B,MAAM,KAAK,GAAG,MAAM,yCAA0B,CAAC,kBAAkB,CAAC,GAAG,CAAC;aACpE,SAAS,CAAC,UAAU,EAAE,GAAG,CAAC;aAC1B,KAAK,CAAC,4BAA4B,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;aAC5D,QAAQ,CAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;aAC1C,QAAQ,EAAE,CAAC;QACb,OAAO,KAAK,IAAI,CAAC,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB;QACvB,MAAM,WAAW,GAAG,MAAM,qDAAgC,CAAC,OAAO,CAAC;YAClE,KAAK,EAAE;gBACN,UAAU,EAAE,IAAI,CAAC,EAAE;gBACnB,SAAS,EAAE,IAAA,yBAAe,EAAC,gBAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;gBACrD,MAAM,EAAE,IAAA,aAAG,EAAC,mBAAU,CAAC,QAAQ,CAAC;aAChC;YACD,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;SAC3B,CAAC,CAAC;QACH,OAAO,WAAW,IAAI,IAAI,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,wBAAwB;QAC7B,MAAM,KAAK,GAAG,MAAM,qDAAgC,CAAC,OAAO,CAAC;YAC5D,UAAU,EAAE,IAAI,CAAC,EAAE;YACnB,SAAS,EAAE,IAAA,yBAAe,EAAC,gBAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;YACrD,MAAM,EAAE,IAAA,aAAG,EAAC,mBAAU,CAAC,QAAQ,CAAC;SAChC,CAAC,CAAC;QACH,OAAO,KAAK,IAAI,CAAC,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,oBAAoB;QACzB,MAAM,KAAK,GAAG,MAAM,qDAAgC,CAAC,OAAO,CAAC;YAC5D,UAAU,EAAE,IAAI,CAAC,EAAE;SACnB,CAAC,CAAC;QACH,OAAO,KAAK,IAAI,CAAC,CAAC;IACnB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,yBAAyB,CAC9B,MAAc,EACd,WAA8C;QAE9C,MAAM,KAAK,GAAG,qDAAgC;aAC5C,kBAAkB,CAAC,GAAG,CAAC;aACvB,KAAK,CAAC,4BAA4B,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;aAC5D,QAAQ,CAAC,6BAA6B,EAAE,EAAE,cAAc,EAAE,mBAAU,CAAC,QAAQ,EAAE,CAAC;aAChF,QAAQ,CACR;;;;;;;IAOA,EACA,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CACxD,CAAC;QAEH,IAAI,WAAW,EAAE,CAAC;YACjB,KAAK,CAAC,QAAQ,CAAC,wBAAwB,EAAE,EAAE,aAAa,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7E,CAAC;QAED,OAAO,MAAM,KAAK,CAAC,SAAS,EAAE,CAAC;IAChC,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,oBAAoB;QACzB,kEAAkE;QAClE,IAAI,IAAI,CAAC,MAAM,KAAK,mBAAU,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QACrD,iFAAiF;QACjF,MAAM,yBAAyB,GAAG,MAAM,qDAAgC,CAAC,OAAO,CAAC;YAChF,UAAU,EAAE,IAAI,CAAC,EAAE;YACnB,SAAS,EAAE,IAAA,yBAAe,EAAC,gBAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;YACrD,MAAM,EAAE,IAAA,aAAG,EAAC,mBAAU,CAAC,QAAQ,CAAC;YAChC,MAAM,EAAE,KAAK;SACb,CAAC,CAAC;QACH,IAAI,yBAAyB,GAAG,EAAE;YAAE,OAAO,IAAI,CAAC;QAEhD,MAAM,gBAAgB,GAAG,MAAM,qDAAgC,CAAC,OAAO,CAAC;YACvE,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;YAC3B,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,IAAA,aAAG,EAAC,mBAAU,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE;SAC/E,CAAC,CAAC;QACH,MAAM,iBAAiB,GAAG,MAAM,qDAAgC,CAAC,OAAO,CAAC;YACxE,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE;YAC5B,KAAK,EAAE;gBACN,UAAU,EAAE,IAAI,CAAC,EAAE;gBACnB,SAAS,EAAE,IAAA,yBAAe,EAAC,gBAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;gBACrD,MAAM,EAAE,IAAA,aAAG,EAAC,mBAAU,CAAC,QAAQ,CAAC;gBAChC,MAAM,EAAE,KAAK;aACb;SACD,CAAC,CAAC;QACH,IAAI,CAAC,iBAAiB;YAAE,OAAO,IAAI,CAAC;QAEpC,MAAM,WAAW,GAAG,gBAAQ,CAAC,UAAU,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,IAAI,CACxE,gBAAQ,CAAC,UAAU,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAC/C,MAAM,CACN,CAAC,IAAI,CAAC;QACP,IAAI,WAAW,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QAElC,MAAM,GAAG,GAAG,gBAAQ,CAAC,GAAG,EAAE,CAAC;QAC3B,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAChD,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC7D,MAAM,eAAe,GAAG,WAAW,GAAG,eAAe,CAAC;QACtD,IAAI,CAAC,eAAe;YAAE,OAAO,IAAI,CAAC;QAClC,IAAI,CAAC,eAAe,EAAE,CAAC;YACtB,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;QACvB,CAAC;QAED,kHAAkH;QAClH,MAAM,aAAa,GAAG,CAAC,WAAW,GAAG,eAAe,CAAC,GAAG,eAAe,CAAC;QACxE,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;QAEpD,+EAA+E;IAChF,CAAC;IAED,KAAK,CAAC,aAAa;QAClB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAClD,IAAI,YAAY,KAAK,qBAAY,CAAC,MAAM,EAAE,CAAC;YAC1C,OAAO,IAAI,CAAA;QACZ,CAAC;QACD,OAAO,MAAM,2CAA2B,CAAC,OAAO,CAAC;YAChD,UAAU,EAAE,IAAI,CAAC,EAAE;YACnB,UAAU,EAAE,IAAA,gBAAM,GAAE;SACpB,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,aAAa;QAClB,MAAM,UAAU,GAAe,EAAE,CAAC;QAClC,UAAU,CAAC,IAAI,CAAC,MAAM,IAAA,4BAAU,EAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,qBAAY,CAAC,OAAO,CAAC,CAAC,CAAC;QACxF,UAAU,CAAC,IAAI,CAAC,MAAM,IAAA,4BAAU,EAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,qBAAY,CAAC,OAAO,CAAC,CAAC,CAAC;QACxF,UAAU,CAAC,IAAI,CAAC,MAAM,IAAA,4BAAU,EAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,qBAAY,CAAC,SAAS,CAAC,CAAC,CAAC;QAC9F,UAAU,CAAC,IAAI,CAAC,MAAM,IAAA,4BAAU,EAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,qBAAY,CAAC,UAAU,CAAC,CAAC,CAAC;QACjG,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,YAAY;QACjB,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QACjC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxC,OAAO,MAAM,2CAAuB,CAAC,kBAAkB,CAAC,IAAI,CAAC;aAC3D,SAAS,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC,qBAAqB;aACrD,KAAK,CAAC,oBAAoB,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;aACvD,QAAQ,CAAC,2BAA2B,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC;aAChE,MAAM,EAAE,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,aAAa;QAClB,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,YAAY,CAAC;QAC3D,IAAI,CAAC,YAAY;YAAE,OAAO,IAAI,CAAC;QAC/B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxC,OAAO,MAAM,2CAAuB,CAAC,kBAAkB,CAAC,IAAI,CAAC;aAC3D,SAAS,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC,qBAAqB;aACrD,KAAK,CAAC,oBAAoB,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;aACrD,QAAQ,CAAC,2BAA2B,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC;aAChE,MAAM,EAAE,CAAC;IACZ,CAAC;CACD,CAAA;AA1qBY,sDAAqB;AAMjC;IADC,IAAA,gBAAM,GAAE;;wDACS;AAMlB;IADC,IAAA,gBAAM,GAAE;;uDACQ;AAMjB;IADC,IAAA,gBAAM,GAAE;;2DACY;AAWrB;IANC,IAAA,gBAAM,EAAC;QACP,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,mBAAU;QAChB,OAAO,EAAE,mBAAU,CAAC,QAAQ;QAC5B,QAAQ,EAAE,KAAK;KACf,CAAC;;qDACiB;AAMnB;IADC,IAAA,gBAAM,GAAE;;oDACK;AASd;IAJC,IAAA,gBAAM,EAAC;QACP,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,IAAI;KACb,CAAC;;0DACkB;AAcpB;IAPC,IAAA,gBAAM,EAAC;QACP,IAAI,EAAE,SAAS;QACf,SAAS,EAAE,CAAC;QACZ,KAAK,EAAE,CAAC;QACR,QAAQ,EAAE,KAAK;QACf,OAAO,EAAE,CAAC;KACV,CAAC;;oDACY;AAWd;IAJC,IAAA,gBAAM,EAAC;QACP,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,IAAI;KACb,CAAC;;8DACsB;AAYxB;IAPC,IAAA,gBAAM,EAAC;QACP,IAAI,EAAE,SAAS;QACf,SAAS,EAAE,CAAC;QACZ,KAAK,EAAE,CAAC;QACR,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,IAAI;KACb,CAAC;;gEACwB;AAa1B;IAPC,IAAA,gBAAM,EAAC;QACP,IAAI,EAAE,SAAS;QACf,SAAS,EAAE,CAAC;QACZ,KAAK,EAAE,CAAC;QACR,QAAQ,EAAE,KAAK;QACf,OAAO,EAAE,CAAC;KACV,CAAC;;mDACW;AAYb;IAPC,IAAA,gBAAM,EAAC;QACP,IAAI,EAAE,SAAS;QACf,SAAS,EAAE,CAAC;QACZ,KAAK,EAAE,CAAC;QACR,QAAQ,EAAE,KAAK;QACf,OAAO,EAAE,CAAC;KACV,CAAC;;sDACc;AAYhB;IAPC,IAAA,gBAAM,EAAC;QACP,IAAI,EAAE,SAAS;QACf,SAAS,EAAE,CAAC;QACZ,KAAK,EAAE,CAAC;QACR,QAAQ,EAAE,KAAK;QACf,OAAO,EAAE,CAAC;KACV,CAAC;;mDACW;AAYb;IAPC,IAAA,gBAAM,EAAC;QACP,IAAI,EAAE,SAAS;QACf,SAAS,EAAE,CAAC;QACZ,KAAK,EAAE,CAAC;QACR,QAAQ,EAAE,KAAK;QACf,OAAO,EAAE,CAAC;KACV,CAAC;;uDACe;AAYjB;IAPC,IAAA,gBAAM,EAAC;QACP,IAAI,EAAE,SAAS;QACf,SAAS,EAAE,CAAC;QACZ,KAAK,EAAE,CAAC;QACR,QAAQ,EAAE,KAAK;QACf,OAAO,EAAE,CAAC;KACV,CAAC;;qDACa;AAYf;IALC,IAAA,gBAAM,EAAC;QACP,IAAI,EAAE,aAAa;QACnB,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,IAAI;KACb,CAAC;8BACQ,gBAAO;uDAAC;AAUlB;IAJC,IAAA,gBAAM,EAAC;QACP,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,IAAI;KACb,CAAC;;6DACqB;AAUvB;IAJC,IAAA,gBAAM,EAAC;QACP,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,IAAI;KACb,CAAC;;4DACoB;AAWtB;IANC,IAAA,gBAAM,EAAC;QACP,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,wBAAe;QACrB,OAAO,EAAE,wBAAe,CAAC,MAAM;QAC/B,QAAQ,EAAE,KAAK;KACf,CAAC;;2DAC4B;AAW9B;IAJC,IAAA,gBAAM,EAAC;QACP,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,KAAK;KACf,CAAC;8BACe,eAAM;8DAAC;AAUxB;IALC,IAAA,gBAAM,EAAC;QACP,IAAI,EAAE,aAAa;QACnB,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,IAAI;KACb,CAAC;;sDACgB;AAUlB;IALC,IAAA,gBAAM,EAAC;QACP,IAAI,EAAE,aAAa;QACnB,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,IAAI;KACb,CAAC;8BACe,aAAI;8DAAC;AAStB;IAJC,IAAA,gBAAM,EAAC;QACP,QAAQ,EAAE,KAAK;QACf,OAAO,EAAE,IAAI;KACb,CAAC;;8DACuB;AAUzB;IALC,IAAA,gBAAM,EAAC;QACP,IAAI,EAAE,aAAa;QACnB,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,IAAI;KACb,CAAC;;qDACmB;AAMrB;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;0DACtB;AAMpB;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;8BAC7B,IAAI;0DAAC;AAMlB;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;2DACrB;AAMrB;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;8BAC5B,IAAI;2DAAC;AAMnB;IADC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,qCAAoB,EAAE,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC;;sDAC7B;AAOvC;IADC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,mCAAmB,EAAE,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;;qDAC/B;AAMrC;IADC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,2CAAuB,EAAE,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;;yDACnC;AAM7C;IADC,IAAA,kBAAQ,EAAC,GAAG,EAAE,CAAC,2CAA2B,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;;sDACvB;AAMhD;IADC,IAAA,kBAAQ,EAAC,GAAG,EAAE,CAAC,qDAAgC,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;;2DAClB;AAM1D;IADC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,qDAAgC,EAAE,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;;2DACrB;AAM1D;IADC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,qCAAoB,EAAE,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;;uDACzB;gCA9S9B,qBAAqB;IADjC,IAAA,gBAAM,EAAC,kBAAkB,CAAC;;GACd,qBAAqB,CA0qBjC"}
|