@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.
Files changed (220) hide show
  1. package/lib/catalog/addon/addon.entity.d.ts +3 -3
  2. package/lib/catalog/addon/addon.entity.js +7 -7
  3. package/lib/catalog/addon/addon.entity.js.map +1 -1
  4. package/lib/catalog/addon/country.entity.d.ts +4 -4
  5. package/lib/catalog/addon/country.entity.js +5 -6
  6. package/lib/catalog/addon/country.entity.js.map +1 -1
  7. package/lib/catalog/priceplan/priceplan.entity.d.ts +8 -3
  8. package/lib/catalog/priceplan/priceplan.entity.js +14 -7
  9. package/lib/catalog/priceplan/priceplan.entity.js.map +1 -1
  10. package/lib/catalog/product/country.entity.d.ts +6 -6
  11. package/lib/catalog/product/country.entity.js +9 -10
  12. package/lib/catalog/product/country.entity.js.map +1 -1
  13. package/lib/catalog/product/priceplan.entity.d.ts +9 -4
  14. package/lib/catalog/product/priceplan.entity.js +19 -9
  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 +8 -8
  18. package/lib/catalog/product/product.entity.js.map +1 -1
  19. package/lib/catalog/program/program.entity.d.ts +2 -2
  20. package/lib/catalog/program/program.entity.js +7 -7
  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 +6 -6
  24. package/lib/catalog/seed/assets/asset.entity.js.map +1 -1
  25. package/lib/catalog/seed/courses/course.entity.d.ts +4 -4
  26. package/lib/catalog/seed/courses/course.entity.js +9 -9
  27. package/lib/catalog/seed/courses/course.entity.js.map +1 -1
  28. package/lib/catalog/seed/courses/lesson.entity.d.ts +3 -3
  29. package/lib/catalog/seed/courses/lesson.entity.js +7 -7
  30. package/lib/catalog/seed/courses/lesson.entity.js.map +1 -1
  31. package/lib/catalog/seed/courses/topic.entity.d.ts +3 -3
  32. package/lib/catalog/seed/courses/topic.entity.js +8 -8
  33. package/lib/catalog/seed/courses/topic.entity.js.map +1 -1
  34. package/lib/catalog/seed/expense/category.entity.d.ts +2 -2
  35. package/lib/catalog/seed/expense/category.entity.js +6 -6
  36. package/lib/catalog/seed/expense/category.entity.js.map +1 -1
  37. package/lib/index.d.ts +2 -2
  38. package/lib/index.js +2 -2
  39. package/lib/index.js.map +1 -1
  40. package/lib/profile/agent/agent.entity.d.ts +13 -4
  41. package/lib/profile/agent/agent.entity.js +46 -20
  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 +3 -3
  47. package/lib/profile/agent/payout.entity.js +6 -6
  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 +80 -9
  53. package/lib/profile/company/company.entity.js +246 -36
  54. package/lib/profile/company/company.entity.js.map +1 -1
  55. package/lib/profile/company/course/appointment.entity.d.ts +73 -4
  56. package/lib/profile/company/course/appointment.entity.js +247 -0
  57. package/lib/profile/company/course/appointment.entity.js.map +1 -1
  58. package/lib/profile/company/course/course.entity.d.ts +41 -8
  59. package/lib/profile/company/course/course.entity.js +58 -12
  60. package/lib/profile/company/course/course.entity.js.map +1 -1
  61. package/lib/profile/company/course/lesson.entity.d.ts +30 -7
  62. package/lib/profile/company/course/lesson.entity.js +93 -12
  63. package/lib/profile/company/course/lesson.entity.js.map +1 -1
  64. package/lib/profile/company/course/schedule.entity.d.ts +276 -0
  65. package/lib/profile/company/course/schedule.entity.js +744 -0
  66. package/lib/profile/company/course/schedule.entity.js.map +1 -0
  67. package/lib/profile/company/course/topic.entity.d.ts +9 -4
  68. package/lib/profile/company/course/topic.entity.js +14 -7
  69. package/lib/profile/company/course/topic.entity.js.map +1 -1
  70. package/lib/profile/company/finances/billing/bill.entity.d.ts +9 -2
  71. package/lib/profile/company/finances/billing/bill.entity.js +38 -4
  72. package/lib/profile/company/finances/billing/bill.entity.js.map +1 -1
  73. package/lib/profile/company/finances/billing/item.entity.d.ts +8 -3
  74. package/lib/profile/company/finances/billing/item.entity.js +10 -6
  75. package/lib/profile/company/finances/billing/item.entity.js.map +1 -1
  76. package/lib/profile/company/finances/billing/transaction.entity.d.ts +7 -5
  77. package/lib/profile/company/finances/billing/transaction.entity.js +6 -6
  78. package/lib/profile/company/finances/billing/transaction.entity.js.map +1 -1
  79. package/lib/profile/company/finances/expense/category.entity.d.ts +1 -1
  80. package/lib/profile/company/finances/expense/category.entity.js +4 -4
  81. package/lib/profile/company/finances/expense/category.entity.js.map +1 -1
  82. package/lib/profile/company/finances/expense/expense.entity.d.ts +6 -2
  83. package/lib/profile/company/finances/expense/expense.entity.js +32 -4
  84. package/lib/profile/company/finances/expense/expense.entity.js.map +1 -1
  85. package/lib/profile/company/finances/handover/handover.entity.d.ts +3 -3
  86. package/lib/profile/company/finances/handover/handover.entity.js +6 -6
  87. package/lib/profile/company/finances/handover/handover.entity.js.map +1 -1
  88. package/lib/profile/company/finances/invoice/invoice.entity.d.ts +8 -7
  89. package/lib/profile/company/finances/invoice/invoice.entity.js +15 -14
  90. package/lib/profile/company/finances/invoice/invoice.entity.js.map +1 -1
  91. package/lib/profile/company/finances/invoice/item.entity.d.ts +2 -2
  92. package/lib/profile/company/finances/invoice/item.entity.js +4 -4
  93. package/lib/profile/company/finances/invoice/item.entity.js.map +1 -1
  94. package/lib/profile/company/finances/payment/method.entity.d.ts +24 -4
  95. package/lib/profile/company/finances/payment/method.entity.js +40 -5
  96. package/lib/profile/company/finances/payment/method.entity.js.map +1 -1
  97. package/lib/profile/company/instructor/activity.entity.js.map +1 -1
  98. package/lib/profile/company/instructor/calendar-state.entity.js.map +1 -1
  99. package/lib/profile/company/instructor/instructor.entity.d.ts +34 -17
  100. package/lib/profile/company/instructor/instructor.entity.js +143 -25
  101. package/lib/profile/company/instructor/instructor.entity.js.map +1 -1
  102. package/lib/profile/company/instructor/task.entity.d.ts +2 -1
  103. package/lib/profile/company/instructor/task.entity.js +9 -4
  104. package/lib/profile/company/instructor/task.entity.js.map +1 -1
  105. package/lib/profile/company/medical/examination.entity.d.ts +4 -4
  106. package/lib/profile/company/medical/examination.entity.js +6 -6
  107. package/lib/profile/company/medical/examination.entity.js.map +1 -1
  108. package/lib/profile/company/medical/product.entity.d.ts +4 -5
  109. package/lib/profile/company/medical/product.entity.js +13 -14
  110. package/lib/profile/company/medical/product.entity.js.map +1 -1
  111. package/lib/profile/company/product/addon.entity.d.ts +3 -3
  112. package/lib/profile/company/product/addon.entity.js +6 -7
  113. package/lib/profile/company/product/addon.entity.js.map +1 -1
  114. package/lib/profile/company/product/priceplan.entity.d.ts +15 -13
  115. package/lib/profile/company/product/priceplan.entity.js +20 -16
  116. package/lib/profile/company/product/priceplan.entity.js.map +1 -1
  117. package/lib/profile/company/product/product.entity.d.ts +34 -8
  118. package/lib/profile/company/product/product.entity.js +70 -12
  119. package/lib/profile/company/product/product.entity.js.map +1 -1
  120. package/lib/profile/company/product/vehicle.entity.d.ts +2 -2
  121. package/lib/profile/company/product/vehicle.entity.js +4 -4
  122. package/lib/profile/company/product/vehicle.entity.js.map +1 -1
  123. package/lib/profile/instructor/instructor.entity.d.ts +6 -3
  124. package/lib/profile/instructor/instructor.entity.js +31 -9
  125. package/lib/profile/instructor/instructor.entity.js.map +1 -1
  126. package/lib/profile/student/program/licence/licence.entity.d.ts +13 -5
  127. package/lib/profile/student/program/licence/licence.entity.js +19 -8
  128. package/lib/profile/student/program/licence/licence.entity.js.map +1 -1
  129. package/lib/profile/student/program/medical/certificate.entity.d.ts +3 -3
  130. package/lib/profile/student/program/medical/certificate.entity.js +6 -6
  131. package/lib/profile/student/program/medical/certificate.entity.js.map +1 -1
  132. package/lib/profile/student/program/medical/examination.entity.d.ts +4 -4
  133. package/lib/profile/student/program/medical/examination.entity.js +14 -14
  134. package/lib/profile/student/program/medical/examination.entity.js.map +1 -1
  135. package/lib/profile/student/program/program.entity.d.ts +4 -4
  136. package/lib/profile/student/program/program.entity.js +8 -13
  137. package/lib/profile/student/program/program.entity.js.map +1 -1
  138. package/lib/profile/student/program/training/appointment.entity.d.ts +32 -9
  139. package/lib/profile/student/program/training/appointment.entity.js +144 -21
  140. package/lib/profile/student/program/training/appointment.entity.js.map +1 -1
  141. package/lib/profile/student/program/training/exam.entity.d.ts +9 -2
  142. package/lib/profile/student/program/training/exam.entity.js +28 -12
  143. package/lib/profile/student/program/training/exam.entity.js.map +1 -1
  144. package/lib/profile/student/program/training/lesson.entity.d.ts +8 -3
  145. package/lib/profile/student/program/training/lesson.entity.js +28 -6
  146. package/lib/profile/student/program/training/lesson.entity.js.map +1 -1
  147. package/lib/profile/student/program/training/request.entity.d.ts +6 -3
  148. package/lib/profile/student/program/training/request.entity.js +26 -5
  149. package/lib/profile/student/program/training/request.entity.js.map +1 -1
  150. package/lib/profile/student/program/training/topic.entity.d.ts +16 -4
  151. package/lib/profile/student/program/training/topic.entity.js +36 -9
  152. package/lib/profile/student/program/training/topic.entity.js.map +1 -1
  153. package/lib/profile/student/program/training/training.entity.d.ts +50 -6
  154. package/lib/profile/student/program/training/training.entity.js +217 -33
  155. package/lib/profile/student/program/training/training.entity.js.map +1 -1
  156. package/lib/profile/student/program/training/transaction.entity.d.ts +8 -3
  157. package/lib/profile/student/program/training/transaction.entity.js +43 -6
  158. package/lib/profile/student/program/training/transaction.entity.js.map +1 -1
  159. package/lib/profile/student/student.entity.d.ts +11 -6
  160. package/lib/profile/student/student.entity.js +59 -11
  161. package/lib/profile/student/student.entity.js.map +1 -1
  162. package/lib/system/campaign/campaign.entity.d.ts +4 -4
  163. package/lib/system/campaign/campaign.entity.js +10 -10
  164. package/lib/system/campaign/campaign.entity.js.map +1 -1
  165. package/lib/system/campaign/gifcode.entity.d.ts +4 -4
  166. package/lib/system/campaign/gifcode.entity.js +8 -8
  167. package/lib/system/campaign/gifcode.entity.js.map +1 -1
  168. package/lib/system/country/country.entity.d.ts +8 -6
  169. package/lib/system/country/country.entity.js +15 -9
  170. package/lib/system/country/country.entity.js.map +1 -1
  171. package/lib/system/currency/currency.entity.d.ts +1 -1
  172. package/lib/system/currency/currency.entity.js +4 -4
  173. package/lib/system/currency/currency.entity.js.map +1 -1
  174. package/lib/system/driving/category.entity.d.ts +7 -7
  175. package/lib/system/driving/category.entity.js +14 -14
  176. package/lib/system/driving/category.entity.js.map +1 -1
  177. package/lib/system/driving/vehicle.entity.d.ts +2 -2
  178. package/lib/system/driving/vehicle.entity.js +4 -4
  179. package/lib/system/driving/vehicle.entity.js.map +1 -1
  180. package/lib/system/event/event.entity.d.ts +2 -2
  181. package/lib/system/event/event.entity.js +4 -4
  182. package/lib/system/event/event.entity.js.map +1 -1
  183. package/lib/system/event/log.entity.d.ts +2 -2
  184. package/lib/system/event/log.entity.js +3 -3
  185. package/lib/system/event/log.entity.js.map +1 -1
  186. package/lib/system/ical/ical.entity.d.ts +63 -0
  187. package/lib/system/ical/ical.entity.js +70 -0
  188. package/lib/system/ical/ical.entity.js.map +1 -0
  189. package/lib/system/policy/policy.entity.d.ts +2 -2
  190. package/lib/system/policy/policy.entity.js +8 -8
  191. package/lib/system/policy/policy.entity.js.map +1 -1
  192. package/lib/system/staff/staff.entity.d.ts +1 -1
  193. package/lib/system/staff/staff.entity.js +5 -4
  194. package/lib/system/staff/staff.entity.js.map +1 -1
  195. package/lib/tsconfig.tsbuildinfo +1 -1
  196. package/lib/user/alert.entity.d.ts +4 -3
  197. package/lib/user/alert.entity.js +11 -4
  198. package/lib/user/alert.entity.js.map +1 -1
  199. package/lib/user/blocked.entity.js +2 -2
  200. package/lib/user/blocked.entity.js.map +1 -1
  201. package/lib/user/device.entity.d.ts +17 -2
  202. package/lib/user/device.entity.js +29 -3
  203. package/lib/user/device.entity.js.map +1 -1
  204. package/lib/user/notification.entity.d.ts +3 -3
  205. package/lib/user/notification.entity.js +8 -8
  206. package/lib/user/notification.entity.js.map +1 -1
  207. package/lib/user/ticket.entity.d.ts +8 -3
  208. package/lib/user/ticket.entity.js +16 -7
  209. package/lib/user/ticket.entity.js.map +1 -1
  210. package/lib/user/user.entity.d.ts +101 -89
  211. package/lib/user/user.entity.js +272 -270
  212. package/lib/user/user.entity.js.map +1 -1
  213. package/lib/user/verification.entity.js +2 -2
  214. package/lib/user/verification.entity.js.map +1 -1
  215. package/lib/utils/activity.helper.d.ts +2 -2
  216. package/lib/utils/activity.helper.js.map +1 -1
  217. package/lib/utils/trackable.d.ts +13 -2
  218. package/lib/utils/trackable.js +55 -0
  219. package/lib/utils/trackable.js.map +1 -1
  220. package/package.json +3 -3
@@ -1,8 +1,12 @@
1
- import { Activity, Topic, Skill } from '@driveup/common';
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(common_1.Skill.toInstance) || []
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 count = await appointment_entity_1.StudentTrainingAppointmentEntity
111
- .createQueryBuilder('sda')
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":"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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,14 @@
1
- import { StatusType, CarTransmission } from '@driveup/shared';
2
- import { Training, Rating, AddonUsage, Student, Person, Activity, Address } from '@driveup/common';
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 { TrackableEntity } from '../../../../utils/trackable';
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 trackable_1 = require("../../../../utils/trackable");
24
- const activity_helper_1 = require("../../../../utils/activity.helper");
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 ? common_1.Address.toInstance(this.location) : null,
49
- ratings: this.ratings ? this.ratings.map(common_1.Rating.toInstance) : null,
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(common_1.Note.toInstance);
71
+ training.notes = appointtemnts?.map(a => a.note)?.map(shared_1.Note.toInstance);
69
72
  // get ratings
70
- training.ratings = this.ratings?.map(common_1.Rating.toInstance) || null;
73
+ training.ratings = this.ratings?.map(shared_1.Rating.toInstance) || null;
71
74
  // get addons
72
- training.addons = this.addons?.map(common_1.AddonUsage.toInstance) || null;
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: shared_1.TransactionType.Payment,
122
- status: (0, typeorm_1.Not)(shared_1.StatusType.Canceled),
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: shared_1.TransactionType.Payment,
135
- paymentType: shared_1.PaymentType.Cash,
136
- status: (0, typeorm_1.Not)(shared_1.StatusType.Canceled),
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: shared_1.TransactionType.Discount,
149
- status: (0, typeorm_1.Not)(shared_1.StatusType.Canceled),
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: shared_1.TransactionType.Refund,
162
- status: (0, typeorm_1.Not)(shared_1.StatusType.Canceled),
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
- type: shared_1.TransactionType.Cancelation,
175
- status: (0, typeorm_1.Not)(shared_1.StatusType.Canceled),
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, shared_1.ActivityType.created));
191
- activities.push(await (0, activity_helper_1.toActivity)(this.updatedBy, this.updatedOn, shared_1.ActivityType.updated));
192
- activities.push(await (0, activity_helper_1.toActivity)(this.completedBy, this.completedOn, shared_1.ActivityType.completed));
193
- activities.push(await (0, activity_helper_1.toActivity)(this.terminatedBy, this.terminatedOn, shared_1.ActivityType.terminated));
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: shared_1.StatusType,
214
- default: shared_1.StatusType.Progress,
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", common_1.Address)
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: shared_1.CarTransmission,
333
- default: shared_1.CarTransmission.Manual,
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", common_1.Person)
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":"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"}