@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.
Files changed (214) hide show
  1. package/lib/catalog/addon/addon.entity.d.ts +3 -3
  2. package/lib/catalog/addon/addon.entity.js +5 -5
  3. package/lib/catalog/addon/addon.entity.js.map +1 -1
  4. package/lib/catalog/addon/country.entity.d.ts +3 -3
  5. package/lib/catalog/addon/country.entity.js +5 -5
  6. package/lib/catalog/addon/country.entity.js.map +1 -1
  7. package/lib/catalog/priceplan/priceplan.entity.d.ts +2 -2
  8. package/lib/catalog/priceplan/priceplan.entity.js +4 -4
  9. package/lib/catalog/priceplan/priceplan.entity.js.map +1 -1
  10. package/lib/catalog/product/country.entity.d.ts +4 -4
  11. package/lib/catalog/product/country.entity.js +9 -9
  12. package/lib/catalog/product/country.entity.js.map +1 -1
  13. package/lib/catalog/product/priceplan.entity.d.ts +3 -3
  14. package/lib/catalog/product/priceplan.entity.js +8 -8
  15. package/lib/catalog/product/priceplan.entity.js.map +1 -1
  16. package/lib/catalog/product/product.entity.d.ts +3 -3
  17. package/lib/catalog/product/product.entity.js +6 -6
  18. package/lib/catalog/product/product.entity.js.map +1 -1
  19. package/lib/catalog/program/program.entity.d.ts +1 -1
  20. package/lib/catalog/program/program.entity.js +5 -5
  21. package/lib/catalog/program/program.entity.js.map +1 -1
  22. package/lib/catalog/seed/assets/asset.entity.d.ts +2 -2
  23. package/lib/catalog/seed/assets/asset.entity.js +4 -4
  24. package/lib/catalog/seed/assets/asset.entity.js.map +1 -1
  25. package/lib/catalog/seed/courses/course.entity.d.ts +3 -3
  26. package/lib/catalog/seed/courses/course.entity.js +7 -7
  27. package/lib/catalog/seed/courses/course.entity.js.map +1 -1
  28. package/lib/catalog/seed/courses/lesson.entity.d.ts +2 -2
  29. package/lib/catalog/seed/courses/lesson.entity.js +5 -5
  30. package/lib/catalog/seed/courses/lesson.entity.js.map +1 -1
  31. package/lib/catalog/seed/courses/topic.entity.d.ts +2 -2
  32. package/lib/catalog/seed/courses/topic.entity.js +5 -5
  33. package/lib/catalog/seed/courses/topic.entity.js.map +1 -1
  34. package/lib/catalog/seed/expense/category.entity.d.ts +1 -1
  35. package/lib/catalog/seed/expense/category.entity.js +4 -4
  36. package/lib/catalog/seed/expense/category.entity.js.map +1 -1
  37. package/lib/index.d.ts +1 -1
  38. package/lib/index.js +1 -1
  39. package/lib/index.js.map +1 -1
  40. package/lib/profile/agent/agent.entity.d.ts +12 -4
  41. package/lib/profile/agent/agent.entity.js +30 -6
  42. package/lib/profile/agent/agent.entity.js.map +1 -1
  43. package/lib/profile/agent/asset.entity.d.ts +1 -1
  44. package/lib/profile/agent/asset.entity.js +2 -2
  45. package/lib/profile/agent/asset.entity.js.map +1 -1
  46. package/lib/profile/agent/payout.entity.d.ts +2 -2
  47. package/lib/profile/agent/payout.entity.js +4 -4
  48. package/lib/profile/agent/payout.entity.js.map +1 -1
  49. package/lib/profile/agent/promotion.entity.d.ts +3 -3
  50. package/lib/profile/agent/promotion.entity.js +6 -6
  51. package/lib/profile/agent/promotion.entity.js.map +1 -1
  52. package/lib/profile/company/company.entity.d.ts +39 -8
  53. package/lib/profile/company/company.entity.js +147 -10
  54. package/lib/profile/company/company.entity.js.map +1 -1
  55. package/lib/profile/company/course/course.entity.d.ts +35 -8
  56. package/lib/profile/company/course/course.entity.js +48 -9
  57. package/lib/profile/company/course/course.entity.js.map +1 -1
  58. package/lib/profile/company/course/lesson.entity.d.ts +20 -6
  59. package/lib/profile/company/course/lesson.entity.js +77 -10
  60. package/lib/profile/company/course/lesson.entity.js.map +1 -1
  61. package/lib/profile/company/course/{appointment.entity.d.ts → schedule.entity.d.ts} +78 -8
  62. package/lib/profile/company/course/{appointment.entity.js → schedule.entity.js} +257 -7
  63. package/lib/profile/company/course/schedule.entity.js.map +1 -0
  64. package/lib/profile/company/course/topic.entity.d.ts +6 -2
  65. package/lib/profile/company/course/topic.entity.js +12 -5
  66. package/lib/profile/company/course/topic.entity.js.map +1 -1
  67. package/lib/profile/company/finances/billing/bill.entity.d.ts +3 -3
  68. package/lib/profile/company/finances/billing/bill.entity.js +5 -5
  69. package/lib/profile/company/finances/billing/bill.entity.js.map +1 -1
  70. package/lib/profile/company/finances/billing/item.entity.d.ts +2 -2
  71. package/lib/profile/company/finances/billing/item.entity.js +5 -5
  72. package/lib/profile/company/finances/billing/item.entity.js.map +1 -1
  73. package/lib/profile/company/finances/billing/transaction.entity.d.ts +3 -3
  74. package/lib/profile/company/finances/billing/transaction.entity.js +6 -6
  75. package/lib/profile/company/finances/billing/transaction.entity.js.map +1 -1
  76. package/lib/profile/company/finances/expense/category.entity.d.ts +1 -1
  77. package/lib/profile/company/finances/expense/category.entity.js +4 -4
  78. package/lib/profile/company/finances/expense/category.entity.js.map +1 -1
  79. package/lib/profile/company/finances/expense/expense.entity.d.ts +6 -2
  80. package/lib/profile/company/finances/expense/expense.entity.js +32 -4
  81. package/lib/profile/company/finances/expense/expense.entity.js.map +1 -1
  82. package/lib/profile/company/finances/handover/handover.entity.d.ts +3 -3
  83. package/lib/profile/company/finances/handover/handover.entity.js +6 -6
  84. package/lib/profile/company/finances/handover/handover.entity.js.map +1 -1
  85. package/lib/profile/company/finances/invoice/invoice.entity.d.ts +7 -6
  86. package/lib/profile/company/finances/invoice/invoice.entity.js +9 -8
  87. package/lib/profile/company/finances/invoice/invoice.entity.js.map +1 -1
  88. package/lib/profile/company/finances/invoice/item.entity.d.ts +2 -2
  89. package/lib/profile/company/finances/invoice/item.entity.js +4 -4
  90. package/lib/profile/company/finances/invoice/item.entity.js.map +1 -1
  91. package/lib/profile/company/finances/payment/method.entity.d.ts +10 -4
  92. package/lib/profile/company/finances/payment/method.entity.js +24 -5
  93. package/lib/profile/company/finances/payment/method.entity.js.map +1 -1
  94. package/lib/profile/company/instructor/activity.entity.js.map +1 -1
  95. package/lib/profile/company/instructor/calendar-state.entity.js.map +1 -1
  96. package/lib/profile/company/instructor/instructor.entity.d.ts +20 -11
  97. package/lib/profile/company/instructor/instructor.entity.js +111 -16
  98. package/lib/profile/company/instructor/instructor.entity.js.map +1 -1
  99. package/lib/profile/company/instructor/task.entity.d.ts +2 -1
  100. package/lib/profile/company/instructor/task.entity.js +9 -4
  101. package/lib/profile/company/instructor/task.entity.js.map +1 -1
  102. package/lib/profile/company/medical/examination.entity.d.ts +3 -3
  103. package/lib/profile/company/medical/examination.entity.js +5 -5
  104. package/lib/profile/company/medical/examination.entity.js.map +1 -1
  105. package/lib/profile/company/medical/product.entity.d.ts +4 -4
  106. package/lib/profile/company/medical/product.entity.js +5 -5
  107. package/lib/profile/company/medical/product.entity.js.map +1 -1
  108. package/lib/profile/company/product/addon.entity.d.ts +2 -2
  109. package/lib/profile/company/product/addon.entity.js +5 -5
  110. package/lib/profile/company/product/addon.entity.js.map +1 -1
  111. package/lib/profile/company/product/priceplan.entity.d.ts +4 -3
  112. package/lib/profile/company/product/priceplan.entity.js +9 -4
  113. package/lib/profile/company/product/priceplan.entity.js.map +1 -1
  114. package/lib/profile/company/product/product.entity.d.ts +8 -7
  115. package/lib/profile/company/product/product.entity.js +19 -9
  116. package/lib/profile/company/product/product.entity.js.map +1 -1
  117. package/lib/profile/company/product/vehicle.entity.d.ts +2 -2
  118. package/lib/profile/company/product/vehicle.entity.js +4 -4
  119. package/lib/profile/company/product/vehicle.entity.js.map +1 -1
  120. package/lib/profile/instructor/instructor.entity.d.ts +6 -3
  121. package/lib/profile/instructor/instructor.entity.js +28 -7
  122. package/lib/profile/instructor/instructor.entity.js.map +1 -1
  123. package/lib/profile/student/program/licence/licence.entity.d.ts +3 -3
  124. package/lib/profile/student/program/licence/licence.entity.js +5 -5
  125. package/lib/profile/student/program/licence/licence.entity.js.map +1 -1
  126. package/lib/profile/student/program/medical/certificate.entity.d.ts +2 -2
  127. package/lib/profile/student/program/medical/certificate.entity.js +4 -4
  128. package/lib/profile/student/program/medical/certificate.entity.js.map +1 -1
  129. package/lib/profile/student/program/medical/examination.entity.d.ts +3 -3
  130. package/lib/profile/student/program/medical/examination.entity.js +10 -10
  131. package/lib/profile/student/program/medical/examination.entity.js.map +1 -1
  132. package/lib/profile/student/program/program.entity.d.ts +11 -6
  133. package/lib/profile/student/program/program.entity.js +14 -9
  134. package/lib/profile/student/program/program.entity.js.map +1 -1
  135. package/lib/profile/student/program/training/appointment.entity.d.ts +23 -9
  136. package/lib/profile/student/program/training/appointment.entity.js +115 -13
  137. package/lib/profile/student/program/training/appointment.entity.js.map +1 -1
  138. package/lib/profile/student/program/training/exam.entity.d.ts +4 -2
  139. package/lib/profile/student/program/training/exam.entity.js +12 -4
  140. package/lib/profile/student/program/training/exam.entity.js.map +1 -1
  141. package/lib/profile/student/program/training/lesson.entity.d.ts +10 -4
  142. package/lib/profile/student/program/training/lesson.entity.js +32 -7
  143. package/lib/profile/student/program/training/lesson.entity.js.map +1 -1
  144. package/lib/profile/student/program/training/request.entity.d.ts +6 -3
  145. package/lib/profile/student/program/training/request.entity.js +26 -5
  146. package/lib/profile/student/program/training/request.entity.js.map +1 -1
  147. package/lib/profile/student/program/training/topic.entity.d.ts +14 -3
  148. package/lib/profile/student/program/training/topic.entity.js +29 -5
  149. package/lib/profile/student/program/training/topic.entity.js.map +1 -1
  150. package/lib/profile/student/program/training/training.entity.d.ts +76 -8
  151. package/lib/profile/student/program/training/training.entity.js +226 -9
  152. package/lib/profile/student/program/training/training.entity.js.map +1 -1
  153. package/lib/profile/student/program/training/transaction.entity.d.ts +8 -3
  154. package/lib/profile/student/program/training/transaction.entity.js +41 -4
  155. package/lib/profile/student/program/training/transaction.entity.js.map +1 -1
  156. package/lib/profile/student/student.entity.d.ts +11 -6
  157. package/lib/profile/student/student.entity.js +57 -10
  158. package/lib/profile/student/student.entity.js.map +1 -1
  159. package/lib/system/campaign/campaign.entity.d.ts +2 -2
  160. package/lib/system/campaign/campaign.entity.js +6 -6
  161. package/lib/system/campaign/campaign.entity.js.map +1 -1
  162. package/lib/system/campaign/gifcode.entity.d.ts +2 -2
  163. package/lib/system/campaign/gifcode.entity.js +6 -6
  164. package/lib/system/campaign/gifcode.entity.js.map +1 -1
  165. package/lib/system/country/country.entity.d.ts +7 -5
  166. package/lib/system/country/country.entity.js +15 -9
  167. package/lib/system/country/country.entity.js.map +1 -1
  168. package/lib/system/currency/currency.entity.d.ts +1 -1
  169. package/lib/system/currency/currency.entity.js +4 -4
  170. package/lib/system/currency/currency.entity.js.map +1 -1
  171. package/lib/system/driving/category.entity.d.ts +7 -7
  172. package/lib/system/driving/category.entity.js +12 -12
  173. package/lib/system/driving/category.entity.js.map +1 -1
  174. package/lib/system/driving/vehicle.entity.d.ts +2 -2
  175. package/lib/system/driving/vehicle.entity.js +4 -4
  176. package/lib/system/driving/vehicle.entity.js.map +1 -1
  177. package/lib/system/event/event.entity.d.ts +2 -2
  178. package/lib/system/event/event.entity.js +4 -4
  179. package/lib/system/event/event.entity.js.map +1 -1
  180. package/lib/system/event/log.entity.d.ts +2 -2
  181. package/lib/system/event/log.entity.js +3 -3
  182. package/lib/system/event/log.entity.js.map +1 -1
  183. package/lib/system/policy/policy.entity.d.ts +1 -1
  184. package/lib/system/policy/policy.entity.js +5 -5
  185. package/lib/system/policy/policy.entity.js.map +1 -1
  186. package/lib/system/staff/staff.entity.d.ts +1 -1
  187. package/lib/system/staff/staff.entity.js +3 -3
  188. package/lib/system/staff/staff.entity.js.map +1 -1
  189. package/lib/tsconfig.tsbuildinfo +1 -1
  190. package/lib/user/alert.entity.d.ts +3 -2
  191. package/lib/user/alert.entity.js +11 -4
  192. package/lib/user/alert.entity.js.map +1 -1
  193. package/lib/user/blocked.entity.js +2 -2
  194. package/lib/user/blocked.entity.js.map +1 -1
  195. package/lib/user/device.entity.d.ts +15 -0
  196. package/lib/user/device.entity.js +26 -0
  197. package/lib/user/device.entity.js.map +1 -1
  198. package/lib/user/notification.entity.d.ts +2 -2
  199. package/lib/user/notification.entity.js +4 -4
  200. package/lib/user/notification.entity.js.map +1 -1
  201. package/lib/user/ticket.entity.d.ts +8 -3
  202. package/lib/user/ticket.entity.js +11 -4
  203. package/lib/user/ticket.entity.js.map +1 -1
  204. package/lib/user/user.entity.d.ts +91 -82
  205. package/lib/user/user.entity.js +257 -259
  206. package/lib/user/user.entity.js.map +1 -1
  207. package/lib/user/verification.entity.js +2 -2
  208. package/lib/user/verification.entity.js.map +1 -1
  209. package/lib/utils/activity.helper.d.ts +2 -2
  210. package/lib/utils/activity.helper.js.map +1 -1
  211. package/lib/utils/trackable.d.ts +2 -2
  212. package/lib/utils/trackable.js.map +1 -1
  213. package/package.json +2 -2
  214. 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 lesson_entity_1 = require("./lesson.entity");
19
+ const student_entity_1 = require("../../student.entity");
18
20
  const appointment_entity_1 = require("./appointment.entity");
19
- const trackable_1 = require("../../../../utils/trackable");
20
- const activity_helper_1 = require("../../../../utils/activity.helper");
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":"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"}
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 { StatusType, CarTransmission } from '@driveup/shared';
2
- import { Training, Rating, AddonUsage, Student, Person, Activity, Address } from '@driveup/common';
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 { TrackableEntity } from '../../../../utils/trackable';
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 Trainin
165
- * Loads the student program even if the program is soft-removed from db (withDeleted: true)
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 trackable_1 = require("../../../../utils/trackable");
24
- const activity_helper_1 = require("../../../../utils/activity.helper");
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 Trainin
89
- * Loads the student program even if the program is soft-removed from db (withDeleted: true)
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 { StatusType, PaymentType, TransactionType } from '@driveup/shared';
2
- import { Transaction, BankAccount, Activity } from '@driveup/common';
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