@driveup/schema 0.2.5 → 0.2.7
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 +5 -5
- package/lib/catalog/addon/addon.entity.js.map +1 -1
- package/lib/catalog/addon/country.entity.d.ts +3 -3
- package/lib/catalog/addon/country.entity.js +5 -5
- package/lib/catalog/addon/country.entity.js.map +1 -1
- package/lib/catalog/priceplan/priceplan.entity.d.ts +2 -2
- package/lib/catalog/priceplan/priceplan.entity.js +4 -4
- package/lib/catalog/priceplan/priceplan.entity.js.map +1 -1
- package/lib/catalog/product/country.entity.d.ts +4 -4
- package/lib/catalog/product/country.entity.js +9 -9
- package/lib/catalog/product/country.entity.js.map +1 -1
- package/lib/catalog/product/priceplan.entity.d.ts +3 -3
- package/lib/catalog/product/priceplan.entity.js +8 -8
- 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 +6 -6
- package/lib/catalog/product/product.entity.js.map +1 -1
- package/lib/catalog/program/program.entity.d.ts +1 -1
- package/lib/catalog/program/program.entity.js +5 -5
- 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 +4 -4
- package/lib/catalog/seed/assets/asset.entity.js.map +1 -1
- package/lib/catalog/seed/courses/course.entity.d.ts +3 -3
- package/lib/catalog/seed/courses/course.entity.js +7 -7
- package/lib/catalog/seed/courses/course.entity.js.map +1 -1
- package/lib/catalog/seed/courses/lesson.entity.d.ts +2 -2
- package/lib/catalog/seed/courses/lesson.entity.js +5 -5
- package/lib/catalog/seed/courses/lesson.entity.js.map +1 -1
- package/lib/catalog/seed/courses/topic.entity.d.ts +2 -2
- package/lib/catalog/seed/courses/topic.entity.js +5 -5
- package/lib/catalog/seed/courses/topic.entity.js.map +1 -1
- package/lib/catalog/seed/expense/category.entity.d.ts +1 -1
- package/lib/catalog/seed/expense/category.entity.js +4 -4
- package/lib/catalog/seed/expense/category.entity.js.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/profile/agent/agent.entity.d.ts +12 -4
- package/lib/profile/agent/agent.entity.js +30 -6
- 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 +2 -2
- package/lib/profile/agent/payout.entity.js +4 -4
- 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 +39 -8
- package/lib/profile/company/company.entity.js +147 -10
- package/lib/profile/company/company.entity.js.map +1 -1
- package/lib/profile/company/course/course.entity.d.ts +35 -8
- package/lib/profile/company/course/course.entity.js +48 -9
- package/lib/profile/company/course/course.entity.js.map +1 -1
- package/lib/profile/company/course/lesson.entity.d.ts +20 -6
- package/lib/profile/company/course/lesson.entity.js +77 -10
- package/lib/profile/company/course/lesson.entity.js.map +1 -1
- package/lib/profile/company/course/{appointment.entity.d.ts → schedule.entity.d.ts} +78 -8
- package/lib/profile/company/course/{appointment.entity.js → schedule.entity.js} +257 -7
- package/lib/profile/company/course/schedule.entity.js.map +1 -0
- package/lib/profile/company/course/topic.entity.d.ts +6 -2
- package/lib/profile/company/course/topic.entity.js +12 -5
- package/lib/profile/company/course/topic.entity.js.map +1 -1
- package/lib/profile/company/finances/billing/bill.entity.d.ts +3 -3
- package/lib/profile/company/finances/billing/bill.entity.js +5 -5
- package/lib/profile/company/finances/billing/bill.entity.js.map +1 -1
- package/lib/profile/company/finances/billing/item.entity.d.ts +2 -2
- package/lib/profile/company/finances/billing/item.entity.js +5 -5
- package/lib/profile/company/finances/billing/item.entity.js.map +1 -1
- package/lib/profile/company/finances/billing/transaction.entity.d.ts +3 -3
- 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 +7 -6
- package/lib/profile/company/finances/invoice/invoice.entity.js +9 -8
- 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 +10 -4
- package/lib/profile/company/finances/payment/method.entity.js +24 -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 +20 -11
- package/lib/profile/company/instructor/instructor.entity.js +111 -16
- 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 +3 -3
- package/lib/profile/company/medical/examination.entity.js +5 -5
- package/lib/profile/company/medical/examination.entity.js.map +1 -1
- package/lib/profile/company/medical/product.entity.d.ts +4 -4
- package/lib/profile/company/medical/product.entity.js +5 -5
- package/lib/profile/company/medical/product.entity.js.map +1 -1
- package/lib/profile/company/product/addon.entity.d.ts +2 -2
- package/lib/profile/company/product/addon.entity.js +5 -5
- package/lib/profile/company/product/addon.entity.js.map +1 -1
- package/lib/profile/company/product/priceplan.entity.d.ts +4 -3
- package/lib/profile/company/product/priceplan.entity.js +9 -4
- package/lib/profile/company/product/priceplan.entity.js.map +1 -1
- package/lib/profile/company/product/product.entity.d.ts +8 -7
- package/lib/profile/company/product/product.entity.js +19 -9
- 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 +28 -7
- package/lib/profile/instructor/instructor.entity.js.map +1 -1
- package/lib/profile/student/program/licence/licence.entity.d.ts +3 -3
- package/lib/profile/student/program/licence/licence.entity.js +5 -5
- package/lib/profile/student/program/licence/licence.entity.js.map +1 -1
- package/lib/profile/student/program/medical/certificate.entity.d.ts +2 -2
- package/lib/profile/student/program/medical/certificate.entity.js +4 -4
- package/lib/profile/student/program/medical/certificate.entity.js.map +1 -1
- package/lib/profile/student/program/medical/examination.entity.d.ts +3 -3
- package/lib/profile/student/program/medical/examination.entity.js +10 -10
- package/lib/profile/student/program/medical/examination.entity.js.map +1 -1
- package/lib/profile/student/program/program.entity.d.ts +11 -6
- package/lib/profile/student/program/program.entity.js +14 -9
- package/lib/profile/student/program/program.entity.js.map +1 -1
- package/lib/profile/student/program/training/appointment.entity.d.ts +23 -9
- package/lib/profile/student/program/training/appointment.entity.js +115 -13
- package/lib/profile/student/program/training/appointment.entity.js.map +1 -1
- package/lib/profile/student/program/training/exam.entity.d.ts +4 -2
- package/lib/profile/student/program/training/exam.entity.js +12 -4
- package/lib/profile/student/program/training/exam.entity.js.map +1 -1
- package/lib/profile/student/program/training/lesson.entity.d.ts +10 -4
- package/lib/profile/student/program/training/lesson.entity.js +32 -7
- 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 +14 -3
- package/lib/profile/student/program/training/topic.entity.js +29 -5
- package/lib/profile/student/program/training/topic.entity.js.map +1 -1
- package/lib/profile/student/program/training/training.entity.d.ts +76 -8
- package/lib/profile/student/program/training/training.entity.js +226 -9
- 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 +41 -4
- 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 +57 -10
- package/lib/profile/student/student.entity.js.map +1 -1
- package/lib/system/campaign/campaign.entity.d.ts +2 -2
- package/lib/system/campaign/campaign.entity.js +6 -6
- package/lib/system/campaign/campaign.entity.js.map +1 -1
- package/lib/system/campaign/gifcode.entity.d.ts +2 -2
- package/lib/system/campaign/gifcode.entity.js +6 -6
- package/lib/system/campaign/gifcode.entity.js.map +1 -1
- package/lib/system/country/country.entity.d.ts +7 -5
- 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 +12 -12
- 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/policy/policy.entity.d.ts +1 -1
- package/lib/system/policy/policy.entity.js +5 -5
- 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 +3 -3
- package/lib/system/staff/staff.entity.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/user/alert.entity.d.ts +3 -2
- 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 +15 -0
- package/lib/user/device.entity.js +26 -0
- package/lib/user/device.entity.js.map +1 -1
- package/lib/user/notification.entity.d.ts +2 -2
- package/lib/user/notification.entity.js +4 -4
- package/lib/user/notification.entity.js.map +1 -1
- package/lib/user/ticket.entity.d.ts +8 -3
- package/lib/user/ticket.entity.js +11 -4
- package/lib/user/ticket.entity.js.map +1 -1
- package/lib/user/user.entity.d.ts +91 -82
- package/lib/user/user.entity.js +257 -259
- 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 +2 -2
- package/lib/utils/trackable.js.map +1 -1
- package/package.json +2 -2
- package/lib/profile/company/course/appointment.entity.js.map +0 -1
|
@@ -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
|
+
const activity_helper_1 = require("../../../../utils/activity.helper");
|
|
17
|
+
const trackable_1 = require("../../../../utils/trackable");
|
|
16
18
|
const topic_entity_1 = require("../../../company/course/topic.entity");
|
|
17
|
-
const
|
|
19
|
+
const student_entity_1 = require("../../student.entity");
|
|
18
20
|
const appointment_entity_1 = require("./appointment.entity");
|
|
19
|
-
const
|
|
20
|
-
const
|
|
21
|
+
const lesson_entity_1 = require("./lesson.entity");
|
|
22
|
+
const training_entity_1 = require("./training.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.
|
|
@@ -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
|
|
@@ -168,6 +183,15 @@ __decorate([
|
|
|
168
183
|
}),
|
|
169
184
|
__metadata("design:type", Boolean)
|
|
170
185
|
], StudentTrainingTopicEntity.prototype, "done", void 0);
|
|
186
|
+
__decorate([
|
|
187
|
+
(0, typeorm_1.Column)({
|
|
188
|
+
type: 'enum',
|
|
189
|
+
enum: [shared_1.StatusType.Planned, shared_1.StatusType.Progress, shared_1.StatusType.Completed, shared_1.StatusType.Skipped, shared_1.StatusType.Failed],
|
|
190
|
+
default: shared_1.StatusType.Planned,
|
|
191
|
+
nullable: false
|
|
192
|
+
}),
|
|
193
|
+
__metadata("design:type", String)
|
|
194
|
+
], StudentTrainingTopicEntity.prototype, "status", void 0);
|
|
171
195
|
__decorate([
|
|
172
196
|
(0, typeorm_1.Column)({
|
|
173
197
|
type: 'json',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"topic.entity.js","sourceRoot":"","sources":["../../../../../src/profile/student/program/training/topic.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAAoD;
|
|
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,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { Activity, AddonUsage, Address, Note, Period, Person, Rating, Student, Training } from '@driveup/common';
|
|
2
|
+
import { CarTransmission, StatusType, TrainingType } from '@driveup/shared';
|
|
3
|
+
import { TrackableEntity } from '../../../../utils/trackable';
|
|
4
|
+
import { CompanyCourseEntity } from '../../../company/course/course.entity';
|
|
3
5
|
import { CompanyInvoiceEntity } from '../../../company/finances/invoice/invoice.entity';
|
|
4
|
-
import { StudentTrainingTransactionEntity } from './transaction.entity';
|
|
5
6
|
import { CompanyInstructorEntity } from '../../../company/instructor/instructor.entity';
|
|
6
|
-
import { CompanyCourseEntity } from '../../../company/course/course.entity';
|
|
7
7
|
import { StudentProgramEntity } from '../program.entity';
|
|
8
|
-
import { StudentTrainingLessonEntity } from './lesson.entity';
|
|
9
8
|
import { StudentTrainingAppointmentEntity } from './appointment.entity';
|
|
10
|
-
import {
|
|
9
|
+
import { StudentTrainingLessonEntity } from './lesson.entity';
|
|
10
|
+
import { StudentTrainingTransactionEntity } from './transaction.entity';
|
|
11
11
|
export declare class StudentTrainingEntity extends TrackableEntity<Training> {
|
|
12
12
|
/**
|
|
13
13
|
* Student program
|
|
@@ -100,6 +100,14 @@ export declare class StudentTrainingEntity extends TrackableEntity<Training> {
|
|
|
100
100
|
* Ratings and reviews given by the student for this training
|
|
101
101
|
*/
|
|
102
102
|
ratings: Rating[];
|
|
103
|
+
/**
|
|
104
|
+
* When student terminates a training they can submit a description
|
|
105
|
+
*/
|
|
106
|
+
terminationNote: Note;
|
|
107
|
+
/**
|
|
108
|
+
* Wether or not the student can manage appointments in the calendar
|
|
109
|
+
*/
|
|
110
|
+
calendarEnabled: boolean;
|
|
103
111
|
/**
|
|
104
112
|
* List of addons used in the training
|
|
105
113
|
*/
|
|
@@ -161,18 +169,78 @@ export declare class StudentTrainingEntity extends TrackableEntity<Training> {
|
|
|
161
169
|
getStudent(): Promise<import("../../student.entity").StudentEntity>;
|
|
162
170
|
getStudentSnapshot(): Student;
|
|
163
171
|
/**
|
|
164
|
-
* Gets the student program related to this
|
|
165
|
-
*
|
|
172
|
+
* Gets the student program related to this trainin
|
|
173
|
+
* @description Retrieves the StudentProgramEntity linked to this training, including those that may have been soft-deleted.
|
|
166
174
|
* @returns StudentProgramEntity - related student program
|
|
167
175
|
*/
|
|
168
176
|
getProgram(): Promise<StudentProgramEntity>;
|
|
169
177
|
getCourse(): Promise<CompanyCourseEntity>;
|
|
170
178
|
getProduct(): Promise<import("../../../..").CompanyProductEntity>;
|
|
171
179
|
getCompany(): Promise<import("../../../..").CompanyEntity>;
|
|
180
|
+
getDrivingCategory(): Promise<import("../../../..").DrivingCategoryEntity>;
|
|
181
|
+
/**
|
|
182
|
+
* Calculates the total amount of payments made for this training
|
|
183
|
+
* @returns number - The total payment amount
|
|
184
|
+
*/
|
|
172
185
|
getPaymentTransactions(): Promise<number>;
|
|
186
|
+
/**
|
|
187
|
+
* Calculates the total amount of cash payments made for this training
|
|
188
|
+
* @returns number - The total cash payment amount
|
|
189
|
+
*/
|
|
173
190
|
getCashTransactions(): Promise<number>;
|
|
191
|
+
/**
|
|
192
|
+
* Calculates the total amount of discount transactions made for this training
|
|
193
|
+
* @returns number - The total discount transaction
|
|
194
|
+
*/
|
|
174
195
|
getDiscountTransactions(): Promise<number>;
|
|
196
|
+
/**
|
|
197
|
+
* Calculates the total amount of refund transactions made for this training
|
|
198
|
+
* @returns number - The total refund transaction
|
|
199
|
+
*/
|
|
175
200
|
getRefundTransactions(): Promise<number>;
|
|
201
|
+
/**
|
|
202
|
+
* Calculates the total amount of cancelation items registered for this training
|
|
203
|
+
* @returns number - The total canceled transactions
|
|
204
|
+
*/
|
|
176
205
|
getCanceledTransactions(): Promise<number>;
|
|
206
|
+
/**
|
|
207
|
+
* @returns The sum of prices of all the appointments in this training, or 0 by default if no sum is found
|
|
208
|
+
*/
|
|
209
|
+
getTotalSessionFee(): Promise<number>;
|
|
210
|
+
/**
|
|
211
|
+
* @returns TrainingType - type of the training
|
|
212
|
+
*/
|
|
213
|
+
getTrainingType(): Promise<TrainingType>;
|
|
214
|
+
getTotalTopics(): Promise<number>;
|
|
215
|
+
getTotalCompletedTopics(): Promise<number>;
|
|
216
|
+
/**
|
|
217
|
+
* @returns StudentTrainingAppointmentEntity - The next upcoming appointment which is not canceled, or null if nothing is found
|
|
218
|
+
*/
|
|
219
|
+
getNextAppointment(): Promise<StudentTrainingAppointmentEntity>;
|
|
220
|
+
/**
|
|
221
|
+
* @returns The number of remaining (not yet occurred), not canceled appointments in this training, or 0 if there are no remaining appointments
|
|
222
|
+
*/
|
|
223
|
+
getRemainingAppointments(): Promise<number>;
|
|
224
|
+
/**
|
|
225
|
+
* Gets total number of appointments related to this training (canceled and not canceled)
|
|
226
|
+
*/
|
|
227
|
+
getTotalAppointments(): Promise<number>;
|
|
228
|
+
/**
|
|
229
|
+
* Check if a not canceled appointment exists that overlaps with the given period
|
|
230
|
+
* @param period Period - period to check for overlapping appointments
|
|
231
|
+
* @param appointment StudentTrainingAppointmentEntity - an optional appointment to exclude from the check (useful when updating an appointment)
|
|
232
|
+
* @returns boolean - true if an overlapping appointment exists, false otherwise
|
|
233
|
+
*/
|
|
234
|
+
appointmentExistsInPeriod(period: Period, appointment?: StudentTrainingAppointmentEntity): Promise<boolean>;
|
|
235
|
+
/**
|
|
236
|
+
* If the training is not in-progress, estimation isn't calculated
|
|
237
|
+
* If the number of previous appointments is less than 10, estimation isn't calculated
|
|
238
|
+
* If there are no completed topics, estimation isn't calculated
|
|
239
|
+
* @returns An estimated date for the exam based on the student's progress so far, or null if estimation can't be calculated
|
|
240
|
+
*/
|
|
241
|
+
getEstimatedExamDate(): Promise<Date>;
|
|
242
|
+
getTotalParts(): Promise<number>;
|
|
177
243
|
getActivities(): Promise<Activity[]>;
|
|
244
|
+
getCreatedBy(): Promise<CompanyInstructorEntity>;
|
|
245
|
+
getArchivedBy(): Promise<CompanyInstructorEntity>;
|
|
178
246
|
}
|
|
@@ -10,18 +10,20 @@ 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 luxon_1 = require("luxon");
|
|
16
|
+
const typeorm_1 = require("typeorm");
|
|
17
|
+
const activity_helper_1 = require("../../../../utils/activity.helper");
|
|
18
|
+
const trackable_1 = require("../../../../utils/trackable");
|
|
19
|
+
const course_entity_1 = require("../../../company/course/course.entity");
|
|
16
20
|
const invoice_entity_1 = require("../../../company/finances/invoice/invoice.entity");
|
|
17
|
-
const transaction_entity_1 = require("./transaction.entity");
|
|
18
21
|
const instructor_entity_1 = require("../../../company/instructor/instructor.entity");
|
|
19
|
-
const course_entity_1 = require("../../../company/course/course.entity");
|
|
20
22
|
const program_entity_1 = require("../program.entity");
|
|
21
|
-
const lesson_entity_1 = require("./lesson.entity");
|
|
22
23
|
const appointment_entity_1 = require("./appointment.entity");
|
|
23
|
-
const
|
|
24
|
-
const
|
|
24
|
+
const lesson_entity_1 = require("./lesson.entity");
|
|
25
|
+
const topic_entity_1 = require("./topic.entity");
|
|
26
|
+
const transaction_entity_1 = require("./transaction.entity");
|
|
25
27
|
let StudentTrainingEntity = class StudentTrainingEntity extends trackable_1.TrackableEntity {
|
|
26
28
|
constructor(props) {
|
|
27
29
|
super();
|
|
@@ -85,8 +87,8 @@ let StudentTrainingEntity = class StudentTrainingEntity extends trackable_1.Trac
|
|
|
85
87
|
return new common_1.Student(this.studentSnapshot);
|
|
86
88
|
}
|
|
87
89
|
/**
|
|
88
|
-
* Gets the student program related to this
|
|
89
|
-
*
|
|
90
|
+
* Gets the student program related to this trainin
|
|
91
|
+
* @description Retrieves the StudentProgramEntity linked to this training, including those that may have been soft-deleted.
|
|
90
92
|
* @returns StudentProgramEntity - related student program
|
|
91
93
|
*/
|
|
92
94
|
async getProgram() {
|
|
@@ -106,6 +108,15 @@ let StudentTrainingEntity = class StudentTrainingEntity extends trackable_1.Trac
|
|
|
106
108
|
const companyCourse = await this.getCourse();
|
|
107
109
|
return (await companyCourse.product).company;
|
|
108
110
|
}
|
|
111
|
+
async getDrivingCategory() {
|
|
112
|
+
const course = await this.getCourse();
|
|
113
|
+
const category = await course.category;
|
|
114
|
+
return category;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Calculates the total amount of payments made for this training
|
|
118
|
+
* @returns number - The total payment amount
|
|
119
|
+
*/
|
|
109
120
|
async getPaymentTransactions() {
|
|
110
121
|
const total = await transaction_entity_1.StudentTrainingTransactionEntity.sum('amount', {
|
|
111
122
|
trainingId: this.id,
|
|
@@ -115,6 +126,10 @@ let StudentTrainingEntity = class StudentTrainingEntity extends trackable_1.Trac
|
|
|
115
126
|
});
|
|
116
127
|
return total || 0;
|
|
117
128
|
}
|
|
129
|
+
/**
|
|
130
|
+
* Calculates the total amount of cash payments made for this training
|
|
131
|
+
* @returns number - The total cash payment amount
|
|
132
|
+
*/
|
|
118
133
|
async getCashTransactions() {
|
|
119
134
|
const total = await transaction_entity_1.StudentTrainingTransactionEntity.sum('amount', {
|
|
120
135
|
trainingId: this.id,
|
|
@@ -125,6 +140,10 @@ let StudentTrainingEntity = class StudentTrainingEntity extends trackable_1.Trac
|
|
|
125
140
|
});
|
|
126
141
|
return total || 0;
|
|
127
142
|
}
|
|
143
|
+
/**
|
|
144
|
+
* Calculates the total amount of discount transactions made for this training
|
|
145
|
+
* @returns number - The total discount transaction
|
|
146
|
+
*/
|
|
128
147
|
async getDiscountTransactions() {
|
|
129
148
|
const total = await transaction_entity_1.StudentTrainingTransactionEntity.sum('amount', {
|
|
130
149
|
trainingId: this.id,
|
|
@@ -134,6 +153,10 @@ let StudentTrainingEntity = class StudentTrainingEntity extends trackable_1.Trac
|
|
|
134
153
|
});
|
|
135
154
|
return total || 0;
|
|
136
155
|
}
|
|
156
|
+
/**
|
|
157
|
+
* Calculates the total amount of refund transactions made for this training
|
|
158
|
+
* @returns number - The total refund transaction
|
|
159
|
+
*/
|
|
137
160
|
async getRefundTransactions() {
|
|
138
161
|
const total = await transaction_entity_1.StudentTrainingTransactionEntity.sum('amount', {
|
|
139
162
|
trainingId: this.id,
|
|
@@ -143,14 +166,172 @@ let StudentTrainingEntity = class StudentTrainingEntity extends trackable_1.Trac
|
|
|
143
166
|
});
|
|
144
167
|
return total || 0;
|
|
145
168
|
}
|
|
169
|
+
/**
|
|
170
|
+
* Calculates the total amount of cancelation items registered for this training
|
|
171
|
+
* @returns number - The total canceled transactions
|
|
172
|
+
*/
|
|
146
173
|
async getCanceledTransactions() {
|
|
147
174
|
const total = await transaction_entity_1.StudentTrainingTransactionEntity.sum('amount', {
|
|
148
175
|
trainingId: this.id,
|
|
176
|
+
// TODO: ask admir about this. a cancelation item has type = TransactionType.Cancelation AND status = StatusType.Canceled
|
|
177
|
+
// therefore the bellow condition is never met
|
|
178
|
+
// or perhaps I'm wrong about my point
|
|
149
179
|
type: shared_1.TransactionType.Cancelation,
|
|
150
180
|
status: (0, typeorm_1.Not)(shared_1.StatusType.Canceled),
|
|
151
181
|
});
|
|
152
182
|
return total || 0;
|
|
153
183
|
}
|
|
184
|
+
/**
|
|
185
|
+
* @returns The sum of prices of all the appointments in this training, or 0 by default if no sum is found
|
|
186
|
+
*/
|
|
187
|
+
async getTotalSessionFee() {
|
|
188
|
+
const total = await appointment_entity_1.StudentTrainingAppointmentEntity.sum('price', {
|
|
189
|
+
trainingId: this.id
|
|
190
|
+
});
|
|
191
|
+
return total || 0;
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* @returns TrainingType - type of the training
|
|
195
|
+
*/
|
|
196
|
+
async getTrainingType() {
|
|
197
|
+
const product = await this.getProduct();
|
|
198
|
+
const trainingType = product.catalogType === shared_1.CatalogType.Driving ? shared_1.TrainingType.Driving : shared_1.TrainingType.Course;
|
|
199
|
+
return trainingType;
|
|
200
|
+
}
|
|
201
|
+
async getTotalTopics() {
|
|
202
|
+
const total = await topic_entity_1.StudentTrainingTopicEntity.createQueryBuilder('t')
|
|
203
|
+
.innerJoin('t.lesson', 'l')
|
|
204
|
+
.where('l.trainingId = :trainingId', { trainingId: this.id })
|
|
205
|
+
.getCount();
|
|
206
|
+
return total || 0;
|
|
207
|
+
}
|
|
208
|
+
async getTotalCompletedTopics() {
|
|
209
|
+
const total = await topic_entity_1.StudentTrainingTopicEntity.createQueryBuilder('t')
|
|
210
|
+
.innerJoin('t.lesson', 'l')
|
|
211
|
+
.where('l.trainingId = :trainingId', { trainingId: this.id })
|
|
212
|
+
.andWhere('t.done = :true', { true: true })
|
|
213
|
+
.getCount();
|
|
214
|
+
return total || 0;
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* @returns StudentTrainingAppointmentEntity - The next upcoming appointment which is not canceled, or null if nothing is found
|
|
218
|
+
*/
|
|
219
|
+
async getNextAppointment() {
|
|
220
|
+
const appointment = await appointment_entity_1.StudentTrainingAppointmentEntity.findOne({
|
|
221
|
+
where: {
|
|
222
|
+
trainingId: this.id,
|
|
223
|
+
startDate: (0, typeorm_1.MoreThanOrEqual)(luxon_1.DateTime.now().toJSDate()),
|
|
224
|
+
status: (0, typeorm_1.Not)(shared_1.StatusType.Canceled)
|
|
225
|
+
},
|
|
226
|
+
order: { startDate: 'ASC' }
|
|
227
|
+
});
|
|
228
|
+
return appointment || null;
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* @returns The number of remaining (not yet occurred), not canceled appointments in this training, or 0 if there are no remaining appointments
|
|
232
|
+
*/
|
|
233
|
+
async getRemainingAppointments() {
|
|
234
|
+
const total = await appointment_entity_1.StudentTrainingAppointmentEntity.countBy({
|
|
235
|
+
trainingId: this.id,
|
|
236
|
+
startDate: (0, typeorm_1.MoreThanOrEqual)(luxon_1.DateTime.now().toJSDate()),
|
|
237
|
+
status: (0, typeorm_1.Not)(shared_1.StatusType.Canceled)
|
|
238
|
+
});
|
|
239
|
+
return total || 0;
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Gets total number of appointments related to this training (canceled and not canceled)
|
|
243
|
+
*/
|
|
244
|
+
async getTotalAppointments() {
|
|
245
|
+
const total = await appointment_entity_1.StudentTrainingAppointmentEntity.countBy({
|
|
246
|
+
trainingId: this.id
|
|
247
|
+
});
|
|
248
|
+
return total || 0;
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* Check if a not canceled appointment exists that overlaps with the given period
|
|
252
|
+
* @param period Period - period to check for overlapping appointments
|
|
253
|
+
* @param appointment StudentTrainingAppointmentEntity - an optional appointment to exclude from the check (useful when updating an appointment)
|
|
254
|
+
* @returns boolean - true if an overlapping appointment exists, false otherwise
|
|
255
|
+
*/
|
|
256
|
+
async appointmentExistsInPeriod(period, appointment) {
|
|
257
|
+
const query = appointment_entity_1.StudentTrainingAppointmentEntity
|
|
258
|
+
.createQueryBuilder('a')
|
|
259
|
+
.where('a.trainingId = :trainingId', { trainingId: this.id })
|
|
260
|
+
.andWhere('a.status != :canceledStatus', { canceledStatus: shared_1.StatusType.Canceled })
|
|
261
|
+
.andWhere(`
|
|
262
|
+
a.startDate < :endDate
|
|
263
|
+
AND
|
|
264
|
+
(
|
|
265
|
+
(a.endDate IS NULL AND DATE_ADD(a.startDate, INTERVAL a.duration MINUTE) > :startDate) OR
|
|
266
|
+
(a.endDate IS NOT NULL AND a.endDate > :startDate)
|
|
267
|
+
)
|
|
268
|
+
`, { endDate: period.endDate, startDate: period.startDate });
|
|
269
|
+
if (appointment) {
|
|
270
|
+
query.andWhere('a.id != :appointmentId', { appointmentId: appointment.id });
|
|
271
|
+
}
|
|
272
|
+
return await query.getExists();
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* If the training is not in-progress, estimation isn't calculated
|
|
276
|
+
* If the number of previous appointments is less than 10, estimation isn't calculated
|
|
277
|
+
* If there are no completed topics, estimation isn't calculated
|
|
278
|
+
* @returns An estimated date for the exam based on the student's progress so far, or null if estimation can't be calculated
|
|
279
|
+
*/
|
|
280
|
+
async getEstimatedExamDate() {
|
|
281
|
+
// If the training is not in-progress, estimation isn't calculated
|
|
282
|
+
if (this.status !== shared_1.StatusType.Progress)
|
|
283
|
+
return null;
|
|
284
|
+
// If the training has had less than 10 appointments, estimation isn't calculated
|
|
285
|
+
const totalPreviousAppointments = await appointment_entity_1.StudentTrainingAppointmentEntity.countBy({
|
|
286
|
+
trainingId: this.id,
|
|
287
|
+
startDate: (0, typeorm_1.LessThanOrEqual)(luxon_1.DateTime.now().toJSDate()),
|
|
288
|
+
status: (0, typeorm_1.Not)(shared_1.StatusType.Canceled),
|
|
289
|
+
isExam: false
|
|
290
|
+
});
|
|
291
|
+
if (totalPreviousAppointments < 10)
|
|
292
|
+
return null;
|
|
293
|
+
const firstAppointment = await appointment_entity_1.StudentTrainingAppointmentEntity.findOne({
|
|
294
|
+
order: { startDate: 'ASC' },
|
|
295
|
+
where: { trainingId: this.id, status: (0, typeorm_1.Not)(shared_1.StatusType.Canceled), isExam: false }
|
|
296
|
+
});
|
|
297
|
+
const latestAppointment = await appointment_entity_1.StudentTrainingAppointmentEntity.findOne({
|
|
298
|
+
order: { startDate: 'DESC' },
|
|
299
|
+
where: {
|
|
300
|
+
trainingId: this.id,
|
|
301
|
+
startDate: (0, typeorm_1.LessThanOrEqual)(luxon_1.DateTime.now().toJSDate()),
|
|
302
|
+
status: (0, typeorm_1.Not)(shared_1.StatusType.Canceled),
|
|
303
|
+
isExam: false
|
|
304
|
+
}
|
|
305
|
+
});
|
|
306
|
+
if (!latestAppointment)
|
|
307
|
+
return null;
|
|
308
|
+
const daysBetween = luxon_1.DateTime.fromJSDate(latestAppointment.startDate).diff(luxon_1.DateTime.fromJSDate(firstAppointment.startDate), 'days').days;
|
|
309
|
+
if (daysBetween <= 0)
|
|
310
|
+
return null;
|
|
311
|
+
const now = luxon_1.DateTime.now();
|
|
312
|
+
const totalTopics = await this.getTotalTopics();
|
|
313
|
+
const completedTopics = await this.getTotalCompletedTopics();
|
|
314
|
+
const remainingTopics = totalTopics - completedTopics;
|
|
315
|
+
if (!completedTopics)
|
|
316
|
+
return null;
|
|
317
|
+
if (!remainingTopics) {
|
|
318
|
+
return now.toJSDate();
|
|
319
|
+
}
|
|
320
|
+
// (number of days between first and latest appointment / number of completed topics) * number of remaining topics
|
|
321
|
+
const remainingDays = (daysBetween / completedTopics) * remainingTopics;
|
|
322
|
+
return now.plus({ days: remainingDays }).toJSDate();
|
|
323
|
+
// TODO: in the future consider the appointments created for the future as well
|
|
324
|
+
}
|
|
325
|
+
async getTotalParts() {
|
|
326
|
+
const trainingType = await this.getTrainingType();
|
|
327
|
+
if (trainingType !== shared_1.TrainingType.Course) {
|
|
328
|
+
return null;
|
|
329
|
+
}
|
|
330
|
+
return await lesson_entity_1.StudentTrainingLessonEntity.countBy({
|
|
331
|
+
trainingId: this.id,
|
|
332
|
+
canceledOn: (0, typeorm_1.IsNull)()
|
|
333
|
+
});
|
|
334
|
+
}
|
|
154
335
|
async getActivities() {
|
|
155
336
|
const activities = [];
|
|
156
337
|
activities.push(await (0, activity_helper_1.toActivity)(this.createdBy, this.createdOn, shared_1.ActivityType.created));
|
|
@@ -159,6 +340,27 @@ let StudentTrainingEntity = class StudentTrainingEntity extends trackable_1.Trac
|
|
|
159
340
|
activities.push(await (0, activity_helper_1.toActivity)(this.terminatedBy, this.terminatedOn, shared_1.ActivityType.terminated));
|
|
160
341
|
return activities.filter(a => a);
|
|
161
342
|
}
|
|
343
|
+
async getCreatedBy() {
|
|
344
|
+
if (!this.createdBy)
|
|
345
|
+
return null;
|
|
346
|
+
const company = await this.getCompany();
|
|
347
|
+
return await instructor_entity_1.CompanyInstructorEntity.createQueryBuilder('ci')
|
|
348
|
+
.innerJoin('ci.instructor', 'i') // instructor profile
|
|
349
|
+
.where('i.userId = :userId', { userId: this.createdBy })
|
|
350
|
+
.andWhere('ci.companyId = :companyId', { companyId: company.id })
|
|
351
|
+
.getOne();
|
|
352
|
+
}
|
|
353
|
+
async getArchivedBy() {
|
|
354
|
+
const archivedById = this.completedBy || this.terminatedBy;
|
|
355
|
+
if (!archivedById)
|
|
356
|
+
return null;
|
|
357
|
+
const company = await this.getCompany();
|
|
358
|
+
return await instructor_entity_1.CompanyInstructorEntity.createQueryBuilder('ci')
|
|
359
|
+
.innerJoin('ci.instructor', 'i') // instructor profile
|
|
360
|
+
.where('i.userId = :userId', { userId: archivedById })
|
|
361
|
+
.andWhere('ci.companyId = :companyId', { companyId: company.id })
|
|
362
|
+
.getOne();
|
|
363
|
+
}
|
|
162
364
|
};
|
|
163
365
|
exports.StudentTrainingEntity = StudentTrainingEntity;
|
|
164
366
|
__decorate([
|
|
@@ -316,6 +518,21 @@ __decorate([
|
|
|
316
518
|
}),
|
|
317
519
|
__metadata("design:type", Array)
|
|
318
520
|
], StudentTrainingEntity.prototype, "ratings", void 0);
|
|
521
|
+
__decorate([
|
|
522
|
+
(0, typeorm_1.Column)({
|
|
523
|
+
type: 'simple-json',
|
|
524
|
+
nullable: true,
|
|
525
|
+
default: null
|
|
526
|
+
}),
|
|
527
|
+
__metadata("design:type", common_1.Note)
|
|
528
|
+
], StudentTrainingEntity.prototype, "terminationNote", void 0);
|
|
529
|
+
__decorate([
|
|
530
|
+
(0, typeorm_1.Column)({
|
|
531
|
+
nullable: false,
|
|
532
|
+
default: true
|
|
533
|
+
}),
|
|
534
|
+
__metadata("design:type", Boolean)
|
|
535
|
+
], StudentTrainingEntity.prototype, "calendarEnabled", void 0);
|
|
319
536
|
__decorate([
|
|
320
537
|
(0, typeorm_1.Column)({
|
|
321
538
|
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":"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"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { Activity, BankAccount, Transaction } from '@driveup/common';
|
|
2
|
+
import { PaymentType, StatusType, TransactionType } from '@driveup/shared';
|
|
3
|
+
import { TrackableEntity } from '../../../../utils/trackable';
|
|
3
4
|
import { CompanyInvoiceEntity } from '../../../company/finances/invoice/invoice.entity';
|
|
5
|
+
import { CompanyInstructorEntity } from '../../../company/instructor/instructor.entity';
|
|
4
6
|
import { StudentTrainingEntity } from './training.entity';
|
|
5
|
-
import { TrackableEntity } from '../../../../utils/trackable';
|
|
6
7
|
/**
|
|
7
8
|
* Student training transaction entity representing financial transactions for training sessions.
|
|
8
9
|
* Handles payments, cancellations, and refunds related to student training programs.
|
|
@@ -91,6 +92,7 @@ export declare class StudentTrainingTransactionEntity extends TrackableEntity<Tr
|
|
|
91
92
|
* @returns Transaction model instance (same as toModel())
|
|
92
93
|
*/
|
|
93
94
|
toSummary(): Transaction;
|
|
95
|
+
getTraining(): Promise<StudentTrainingEntity>;
|
|
94
96
|
/**
|
|
95
97
|
* Retrieves the referenced transaction (typically a cancellation transaction)
|
|
96
98
|
* @returns The related transaction entity or undefined if no reference exists
|
|
@@ -102,6 +104,9 @@ export declare class StudentTrainingTransactionEntity extends TrackableEntity<Tr
|
|
|
102
104
|
* @returns The original transaction entity that was canceled
|
|
103
105
|
*/
|
|
104
106
|
getByRefTransaction(): Promise<StudentTrainingTransactionEntity>;
|
|
107
|
+
getRegisteredBy(): Promise<CompanyInstructorEntity>;
|
|
108
|
+
getApprovedBy(): Promise<CompanyInstructorEntity>;
|
|
109
|
+
getCanceledBy(): Promise<CompanyInstructorEntity>;
|
|
105
110
|
/**
|
|
106
111
|
* Retrieves all tracked activities for this transaction
|
|
107
112
|
* Includes creation and update timestamps and associated users
|