@tomei/rental 0.17.4-dev.9 → 0.17.5

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 (298) hide show
  1. package/.commitlintrc.json +23 -23
  2. package/.gitlab-ci.yml +16 -16
  3. package/.husky/commit-msg +9 -9
  4. package/.husky/pre-commit +7 -7
  5. package/.prettierrc +4 -4
  6. package/Jenkinsfile +51 -51
  7. package/README.md +8 -8
  8. package/dist/ClassMappings/ItemClassMap.d.ts +4 -0
  9. package/dist/ClassMappings/ItemClassMap.js +8 -0
  10. package/dist/ClassMappings/ItemClassMap.js.map +1 -0
  11. package/dist/ClassMappings/index.d.ts +2 -0
  12. package/dist/ClassMappings/index.js +6 -0
  13. package/dist/ClassMappings/index.js.map +1 -0
  14. package/dist/components/agreement/agreement.d.ts +27 -0
  15. package/dist/components/agreement/agreement.js +120 -0
  16. package/dist/components/agreement/agreement.js.map +1 -0
  17. package/dist/components/agreement/agreement.repository.d.ts +8 -0
  18. package/dist/components/agreement/agreement.repository.js +52 -0
  19. package/dist/components/agreement/agreement.repository.js.map +1 -0
  20. package/dist/components/agreement-history/agreement-history.d.ts +17 -0
  21. package/dist/components/agreement-history/agreement-history.js +40 -0
  22. package/dist/components/agreement-history/agreement-history.js.map +1 -0
  23. package/dist/components/agreement-history/agreement-history.repository.d.ts +8 -0
  24. package/dist/components/agreement-history/agreement-history.repository.js +52 -0
  25. package/dist/components/agreement-history/agreement-history.repository.js.map +1 -0
  26. package/dist/components/agreement-signature/agreement-signature.d.ts +27 -0
  27. package/dist/components/agreement-signature/agreement-signature.js +99 -0
  28. package/dist/components/agreement-signature/agreement-signature.js.map +1 -0
  29. package/dist/components/agreement-signature/agreement-signature.repository.d.ts +8 -0
  30. package/dist/components/agreement-signature/agreement-signature.repository.js +53 -0
  31. package/dist/components/agreement-signature/agreement-signature.repository.js.map +1 -0
  32. package/dist/components/booking/booking.d.ts +46 -0
  33. package/dist/components/booking/booking.js +289 -0
  34. package/dist/components/booking/booking.js.map +1 -0
  35. package/dist/components/booking/booking.repository.d.ts +8 -0
  36. package/dist/components/booking/booking.repository.js +52 -0
  37. package/dist/components/booking/booking.repository.js.map +1 -0
  38. package/dist/components/hirer-change-request-new-hirer/hirer-change-request-new-hirer.d.ts +32 -0
  39. package/dist/components/hirer-change-request-new-hirer/hirer-change-request-new-hirer.js +106 -0
  40. package/dist/components/hirer-change-request-new-hirer/hirer-change-request-new-hirer.js.map +1 -0
  41. package/dist/components/hirer-change-request-new-hirer/hirer-change-request-new-hirer.repository.d.ts +9 -0
  42. package/dist/components/hirer-change-request-new-hirer/hirer-change-request-new-hirer.repository.js +62 -0
  43. package/dist/components/hirer-change-request-new-hirer/hirer-change-request-new-hirer.repository.js.map +1 -0
  44. package/dist/components/hirer-change-request-remove-hirer/hirer-change-request-remove-hirer.d.ts +22 -0
  45. package/dist/components/hirer-change-request-remove-hirer/hirer-change-request-remove-hirer.js +89 -0
  46. package/dist/components/hirer-change-request-remove-hirer/hirer-change-request-remove-hirer.js.map +1 -0
  47. package/dist/components/hirer-change-request-remove-hirer/hirer-change-request-remove-hirer.repository.d.ts +9 -0
  48. package/dist/components/hirer-change-request-remove-hirer/hirer-change-request-remove-hirer.repository.js +63 -0
  49. package/dist/components/hirer-change-request-remove-hirer/hirer-change-request-remove-hirer.repository.js.map +1 -0
  50. package/dist/components/hirer-change-request-signature/hirer-change-request-signature.d.ts +30 -0
  51. package/dist/components/hirer-change-request-signature/hirer-change-request-signature.js +208 -0
  52. package/dist/components/hirer-change-request-signature/hirer-change-request-signature.js.map +1 -0
  53. package/dist/components/hirer-change-request-signature/hirer-change-request-signature.repository.d.ts +9 -0
  54. package/dist/components/hirer-change-request-signature/hirer-change-request-signature.repository.js +63 -0
  55. package/dist/components/hirer-change-request-signature/hirer-change-request-signature.repository.js.map +1 -0
  56. package/dist/components/joint-hirer/joint-hirer.d.ts +26 -0
  57. package/dist/components/joint-hirer/joint-hirer.js +137 -0
  58. package/dist/components/joint-hirer/joint-hirer.js.map +1 -0
  59. package/dist/components/joint-hirer/joint-hirer.repository.d.ts +8 -0
  60. package/dist/components/joint-hirer/joint-hirer.repository.js +52 -0
  61. package/dist/components/joint-hirer/joint-hirer.repository.js.map +1 -0
  62. package/dist/components/rental/rental.d.ts +72 -0
  63. package/dist/components/rental/rental.js +844 -0
  64. package/dist/components/rental/rental.js.map +1 -0
  65. package/dist/components/rental/rental.repository.d.ts +8 -0
  66. package/dist/components/rental/rental.repository.js +52 -0
  67. package/dist/components/rental/rental.repository.js.map +1 -0
  68. package/dist/components/rental-hirer-change-request/rental-hirer-change-request.d.ts +71 -0
  69. package/dist/components/rental-hirer-change-request/rental-hirer-change-request.js +531 -0
  70. package/dist/components/rental-hirer-change-request/rental-hirer-change-request.js.map +1 -0
  71. package/dist/components/rental-hirer-change-request/rental-hirer-change-request.repository.d.ts +9 -0
  72. package/dist/components/rental-hirer-change-request/rental-hirer-change-request.repository.js +62 -0
  73. package/dist/components/rental-hirer-change-request/rental-hirer-change-request.repository.js.map +1 -0
  74. package/dist/components/rental-price/rental-price.d.ts +18 -0
  75. package/dist/components/rental-price/rental-price.js +66 -0
  76. package/dist/components/rental-price/rental-price.js.map +1 -0
  77. package/dist/components/rental-price/rental-price.repository.d.ts +8 -0
  78. package/dist/components/rental-price/rental-price.repository.js +52 -0
  79. package/dist/components/rental-price/rental-price.repository.js.map +1 -0
  80. package/dist/database.d.ts +4 -0
  81. package/dist/database.js +37 -0
  82. package/dist/database.js.map +1 -0
  83. package/dist/enum/account-type.enum.d.ts +4 -0
  84. package/dist/enum/account-type.enum.js +9 -0
  85. package/dist/enum/account-type.enum.js.map +1 -0
  86. package/dist/enum/aggrement-status.enum.d.ts +5 -0
  87. package/dist/enum/aggrement-status.enum.js +10 -0
  88. package/dist/enum/aggrement-status.enum.js.map +1 -0
  89. package/dist/enum/agreement-signature-status.enum.d.ts +4 -0
  90. package/dist/enum/agreement-signature-status.enum.js +9 -0
  91. package/dist/enum/agreement-signature-status.enum.js.map +1 -0
  92. package/dist/enum/agreement-signature-verification-method.enum.d.ts +4 -0
  93. package/dist/enum/agreement-signature-verification-method.enum.js +9 -0
  94. package/dist/enum/agreement-signature-verification-method.enum.js.map +1 -0
  95. package/dist/enum/booking.enum.d.ts +5 -0
  96. package/dist/enum/booking.enum.js +10 -0
  97. package/dist/enum/booking.enum.js.map +1 -0
  98. package/dist/enum/hirer-type.enum.d.ts +4 -0
  99. package/dist/enum/hirer-type.enum.js +9 -0
  100. package/dist/enum/hirer-type.enum.js.map +1 -0
  101. package/dist/enum/index.d.ts +11 -0
  102. package/dist/enum/index.js +24 -0
  103. package/dist/enum/index.js.map +1 -0
  104. package/dist/enum/rental-hirer-change-request-hirer-role.d.ts +4 -0
  105. package/dist/enum/rental-hirer-change-request-hirer-role.js +9 -0
  106. package/dist/enum/rental-hirer-change-request-hirer-role.js.map +1 -0
  107. package/dist/enum/rental-hirer-change-request-status.d.ts +7 -0
  108. package/dist/enum/rental-hirer-change-request-status.js +12 -0
  109. package/dist/enum/rental-hirer-change-request-status.js.map +1 -0
  110. package/dist/enum/rental-hirer-change-request-type.d.ts +4 -0
  111. package/dist/enum/rental-hirer-change-request-type.js +9 -0
  112. package/dist/enum/rental-hirer-change-request-type.js.map +1 -0
  113. package/dist/enum/rental-status.enum.d.ts +9 -0
  114. package/dist/enum/rental-status.enum.js +14 -0
  115. package/dist/enum/rental-status.enum.js.map +1 -0
  116. package/dist/interfaces/agreemeent-signature-attr.interface.d.ts +14 -0
  117. package/dist/interfaces/agreemeent-signature-attr.interface.js +3 -0
  118. package/dist/interfaces/agreemeent-signature-attr.interface.js.map +1 -0
  119. package/dist/interfaces/agreement-attr.interface.d.ts +7 -0
  120. package/dist/interfaces/agreement-attr.interface.js +3 -0
  121. package/dist/interfaces/agreement-attr.interface.js.map +1 -0
  122. package/dist/interfaces/agreement-history-attr.interface.d.ts +7 -0
  123. package/dist/interfaces/agreement-history-attr.interface.js +3 -0
  124. package/dist/interfaces/agreement-history-attr.interface.js.map +1 -0
  125. package/dist/interfaces/booking-attr.interface.d.ts +18 -0
  126. package/dist/interfaces/booking-attr.interface.js +3 -0
  127. package/dist/interfaces/booking-attr.interface.js.map +1 -0
  128. package/dist/interfaces/booking-find-all-search-attr.interface.d.ts +12 -0
  129. package/dist/interfaces/booking-find-all-search-attr.interface.js +3 -0
  130. package/dist/interfaces/booking-find-all-search-attr.interface.js.map +1 -0
  131. package/dist/interfaces/hirer-change-request-new-hirer-attr.interface.d.ts +15 -0
  132. package/dist/interfaces/hirer-change-request-new-hirer-attr.interface.js +3 -0
  133. package/dist/interfaces/hirer-change-request-new-hirer-attr.interface.js.map +1 -0
  134. package/dist/interfaces/hirer-change-request-remove-hirer-attr.interface.d.ts +5 -0
  135. package/dist/interfaces/hirer-change-request-remove-hirer-attr.interface.js +3 -0
  136. package/dist/interfaces/hirer-change-request-remove-hirer-attr.interface.js.map +1 -0
  137. package/dist/interfaces/hirer-change-request-signature-attr.interface.d.ts +14 -0
  138. package/dist/interfaces/hirer-change-request-signature-attr.interface.js +3 -0
  139. package/dist/interfaces/hirer-change-request-signature-attr.interface.js.map +1 -0
  140. package/dist/interfaces/index.d.ts +14 -0
  141. package/dist/interfaces/index.js +3 -0
  142. package/dist/interfaces/index.js.map +1 -0
  143. package/dist/interfaces/joint-hirer-attr.interface.d.ts +11 -0
  144. package/dist/interfaces/joint-hirer-attr.interface.js +3 -0
  145. package/dist/interfaces/joint-hirer-attr.interface.js.map +1 -0
  146. package/dist/interfaces/rental-attr.interface.d.ts +24 -0
  147. package/dist/interfaces/rental-attr.interface.js +3 -0
  148. package/dist/interfaces/rental-attr.interface.js.map +1 -0
  149. package/dist/interfaces/rental-find-all-search-attr.interface.d.ts +10 -0
  150. package/dist/interfaces/rental-find-all-search-attr.interface.js +3 -0
  151. package/dist/interfaces/rental-find-all-search-attr.interface.js.map +1 -0
  152. package/dist/interfaces/rental-hirer-change-request.attr.interface.d.ts +16 -0
  153. package/dist/interfaces/rental-hirer-change-request.attr.interface.js +3 -0
  154. package/dist/interfaces/rental-hirer-change-request.attr.interface.js.map +1 -0
  155. package/dist/interfaces/rental-hirer-change-request.update.interface.d.ts +4 -0
  156. package/dist/interfaces/rental-hirer-change-request.update.interface.js +3 -0
  157. package/dist/interfaces/rental-hirer-change-request.update.interface.js.map +1 -0
  158. package/dist/interfaces/rental-price-attr.interface.d.ts +7 -0
  159. package/dist/interfaces/rental-price-attr.interface.js +3 -0
  160. package/dist/interfaces/rental-price-attr.interface.js.map +1 -0
  161. package/dist/interfaces/response-hirer-signature-attr.interface.d.ts +14 -0
  162. package/dist/interfaces/response-hirer-signature-attr.interface.js +3 -0
  163. package/dist/interfaces/response-hirer-signature-attr.interface.js.map +1 -0
  164. package/dist/models/agreement-history.entity.d.ts +10 -0
  165. package/dist/models/agreement-history.entity.js +65 -0
  166. package/dist/models/agreement-history.entity.js.map +1 -0
  167. package/dist/models/agreement-signature.entity.d.ts +22 -0
  168. package/dist/models/agreement-signature.entity.js +123 -0
  169. package/dist/models/agreement-signature.entity.js.map +1 -0
  170. package/dist/models/agreement.entity.d.ts +14 -0
  171. package/dist/models/agreement.entity.js +70 -0
  172. package/dist/models/agreement.entity.js.map +1 -0
  173. package/dist/models/booking.entity.d.ts +21 -0
  174. package/dist/models/booking.entity.js +128 -0
  175. package/dist/models/booking.entity.js.map +1 -0
  176. package/dist/models/hirer-change-request-new-hirer.entity.d.ts +19 -0
  177. package/dist/models/hirer-change-request-new-hirer.entity.js +121 -0
  178. package/dist/models/hirer-change-request-new-hirer.entity.js.map +1 -0
  179. package/dist/models/hirer-change-request-remove-hirer.entity.d.ts +11 -0
  180. package/dist/models/hirer-change-request-remove-hirer.entity.js +57 -0
  181. package/dist/models/hirer-change-request-remove-hirer.entity.js.map +1 -0
  182. package/dist/models/hirer-change-request-signature.entity.d.ts +18 -0
  183. package/dist/models/hirer-change-request-signature.entity.js +101 -0
  184. package/dist/models/hirer-change-request-signature.entity.js.map +1 -0
  185. package/dist/models/index.d.ts +12 -0
  186. package/dist/models/index.js +26 -0
  187. package/dist/models/index.js.map +1 -0
  188. package/dist/models/joint-hirer.entity.d.ts +14 -0
  189. package/dist/models/joint-hirer.entity.js +91 -0
  190. package/dist/models/joint-hirer.entity.js.map +1 -0
  191. package/dist/models/rental-hirer-change-request.entity.d.ts +22 -0
  192. package/dist/models/rental-hirer-change-request.entity.js +108 -0
  193. package/dist/models/rental-hirer-change-request.entity.js.map +1 -0
  194. package/dist/models/rental-price.entity.d.ts +8 -0
  195. package/dist/models/rental-price.entity.js +59 -0
  196. package/dist/models/rental-price.entity.js.map +1 -0
  197. package/dist/models/rental.entity.d.ts +29 -0
  198. package/dist/models/rental.entity.js +160 -0
  199. package/dist/models/rental.entity.js.map +1 -0
  200. package/dist/src/components/agreement/agreement.js +9 -9
  201. package/dist/src/components/joint-hirer/joint-hirer.js +1 -1
  202. package/dist/src/components/joint-hirer/joint-hirer.js.map +1 -1
  203. package/dist/src/components/rental/rental.d.ts +2 -1
  204. package/dist/src/components/rental/rental.js +19 -17
  205. package/dist/src/components/rental/rental.js.map +1 -1
  206. package/dist/src/components/rental-hirer-change-request/rental-hirer-change-request.js.map +1 -1
  207. package/dist/src/enum/agreement-signature-verification-method.enum.d.ts +4 -0
  208. package/dist/src/enum/agreement-signature-verification-method.enum.js +9 -0
  209. package/dist/src/enum/agreement-signature-verification-method.enum.js.map +1 -0
  210. package/dist/src/enum/index.d.ts +2 -1
  211. package/dist/src/enum/index.js +3 -1
  212. package/dist/src/enum/index.js.map +1 -1
  213. package/dist/src/models/agreement-signature.entity.d.ts +4 -0
  214. package/dist/src/models/agreement-signature.entity.js +22 -0
  215. package/dist/src/models/agreement-signature.entity.js.map +1 -1
  216. package/dist/tsconfig.build.tsbuildinfo +1 -0
  217. package/dist/tsconfig.tsbuildinfo +1 -1
  218. package/eslint.config.mjs +58 -58
  219. package/jest.config.js +10 -10
  220. package/migrations/20250529092130-add-status-to-joint-hirer.js +19 -19
  221. package/migrations/agreement-signature-table-migration.js +76 -64
  222. package/migrations/booking-table-migration.js +79 -79
  223. package/migrations/hirer-change-request-new-hirer-migration.js +72 -72
  224. package/migrations/hirer-change-request-remove-hirer-migration.js +39 -39
  225. package/migrations/hirer-change-request-signature-migration.js +65 -65
  226. package/migrations/joint-hirer-table-migration.js +52 -52
  227. package/migrations/rental-aggreement-history-migration.js +41 -41
  228. package/migrations/rental-aggrement-table-migration.js +30 -30
  229. package/migrations/rental-hirer-change-request-migrations.js +64 -64
  230. package/migrations/rental-price-table-migration.js +32 -32
  231. package/migrations/rental-table-migrations.js +96 -96
  232. package/package.json +80 -80
  233. package/sonar-project.properties +12 -12
  234. package/src/ClassMappings/ItemClassMap.ts +7 -7
  235. package/src/ClassMappings/index.ts +3 -3
  236. package/src/components/agreement/agreement.repository.ts +54 -54
  237. package/src/components/agreement/agreement.ts +187 -187
  238. package/src/components/agreement-history/agreement-history.repository.ts +54 -54
  239. package/src/components/agreement-history/agreement-history.ts +57 -57
  240. package/src/components/agreement-signature/agreement-signature.repository.ts +55 -55
  241. package/src/components/agreement-signature/agreement-signature.ts +143 -143
  242. package/src/components/booking/booking.repository.ts +51 -51
  243. package/src/components/booking/booking.ts +492 -492
  244. package/src/components/hirer-change-request-new-hirer/hirer-change-request-new-hirer.repository.ts +64 -64
  245. package/src/components/hirer-change-request-new-hirer/hirer-change-request-new-hirer.ts +153 -153
  246. package/src/components/hirer-change-request-remove-hirer/hirer-change-request-remove-hirer.repository.ts +65 -65
  247. package/src/components/hirer-change-request-remove-hirer/hirer-change-request-remove-hirer.ts +134 -134
  248. package/src/components/hirer-change-request-signature/hirer-change-request-signature.repository.ts +65 -65
  249. package/src/components/hirer-change-request-signature/hirer-change-request-signature.ts +272 -272
  250. package/src/components/joint-hirer/joint-hirer.repository.ts +54 -54
  251. package/src/components/joint-hirer/joint-hirer.ts +252 -252
  252. package/src/components/rental/rental.repository.ts +51 -51
  253. package/src/components/rental/rental.ts +1466 -1461
  254. package/src/components/rental-hirer-change-request/rental-hirer-change-request.repository.ts +64 -64
  255. package/src/components/rental-hirer-change-request/rental-hirer-change-request.ts +907 -930
  256. package/src/components/rental-price/rental-price.repository.ts +54 -54
  257. package/src/components/rental-price/rental-price.ts +100 -100
  258. package/src/database.ts +39 -39
  259. package/src/enum/account-type.enum.ts +4 -4
  260. package/src/enum/agreement-signature-status.enum.ts +4 -4
  261. package/src/enum/agreement-signature-verification-method.enum.ts +4 -0
  262. package/src/enum/booking.enum.ts +5 -5
  263. package/src/enum/hirer-type.enum.ts +4 -4
  264. package/src/enum/index.ts +23 -21
  265. package/src/enum/rental-hirer-change-request-hirer-role.ts +4 -4
  266. package/src/enum/rental-hirer-change-request-status.ts +7 -7
  267. package/src/enum/rental-hirer-change-request-type.ts +4 -4
  268. package/src/enum/rental-status.enum.ts +39 -39
  269. package/src/index.ts +54 -54
  270. package/src/interfaces/agreemeent-signature-attr.interface.ts +15 -15
  271. package/src/interfaces/agreement-attr.interface.ts +7 -7
  272. package/src/interfaces/agreement-history-attr.interface.ts +7 -7
  273. package/src/interfaces/booking-attr.interface.ts +19 -19
  274. package/src/interfaces/booking-find-all-search-attr.interface.ts +12 -12
  275. package/src/interfaces/hirer-change-request-new-hirer-attr.interface.ts +15 -15
  276. package/src/interfaces/hirer-change-request-remove-hirer-attr.interface.ts +5 -5
  277. package/src/interfaces/hirer-change-request-signature-attr.interface.ts +15 -15
  278. package/src/interfaces/index.ts +29 -29
  279. package/src/interfaces/joint-hirer-attr.interface.ts +11 -11
  280. package/src/interfaces/rental-attr.interface.ts +25 -25
  281. package/src/interfaces/rental-find-all-search-attr.interface.ts +11 -11
  282. package/src/interfaces/rental-hirer-change-request.attr.interface.ts +17 -17
  283. package/src/interfaces/rental-hirer-change-request.update.interface.ts +4 -4
  284. package/src/interfaces/rental-price-attr.interface.ts +7 -7
  285. package/src/interfaces/response-hirer-signature-attr.interface.ts +15 -15
  286. package/src/models/agreement-history.entity.ts +51 -51
  287. package/src/models/agreement-signature.entity.ts +105 -86
  288. package/src/models/agreement.entity.ts +47 -47
  289. package/src/models/booking.entity.ts +105 -105
  290. package/src/models/hirer-change-request-new-hirer.entity.ts +102 -102
  291. package/src/models/hirer-change-request-remove-hirer.entity.ts +47 -47
  292. package/src/models/hirer-change-request-signature.entity.ts +86 -86
  293. package/src/models/index.ts +25 -25
  294. package/src/models/joint-hirer.entity.ts +70 -70
  295. package/src/models/rental-price.entity.ts +38 -38
  296. package/src/models/rental.entity.ts +133 -133
  297. package/tsconfig.build.json +5 -5
  298. package/tsconfig.json +24 -24
@@ -1,252 +1,252 @@
1
- import { ClassError, ObjectBase } from '@tomei/general';
2
- import { JointHirerRepository } from './joint-hirer.repository';
3
- import { IJointHirerAttr } from '../../interfaces/joint-hirer-attr.interface';
4
- import { ApplicationConfig } from '@tomei/config';
5
- import { LoginUser } from '@tomei/sso';
6
- import { ActionEnum, Activity } from '@tomei/activity-history';
7
- import { Rental } from '../rental/rental';
8
- import { RentalAccountTypeEnum } from '../../enum/account-type.enum';
9
-
10
- export class JointHirer extends ObjectBase {
11
- ObjectId: string;
12
- ObjectName: string;
13
- ObjectType: string = 'JointHirer';
14
- TableName: string = 'rental_JointHirer';
15
- RentalId: string;
16
- CustomerId: string;
17
- CustomerType: string;
18
- Status = 'Active'; // Default status
19
- CreatedById: string;
20
- CreatedAt: Date;
21
- UpdatedById: string;
22
- UpdatedAt: Date;
23
- private _Rental: Rental;
24
-
25
- get HirerId(): string {
26
- return this.ObjectId;
27
- }
28
-
29
- set HirerId(value: string) {
30
- this.ObjectId = value;
31
- }
32
-
33
- protected static _Repository = new JointHirerRepository();
34
-
35
- protected constructor(jointHirerAttr?: IJointHirerAttr) {
36
- super();
37
- if (jointHirerAttr) {
38
- this.HirerId = jointHirerAttr.HirerId;
39
- this.RentalId = jointHirerAttr.RentalId;
40
- this.CustomerId = jointHirerAttr.CustomerId;
41
- this.CustomerType = jointHirerAttr.CustomerType;
42
- this.Status = jointHirerAttr.Status;
43
- this.CreatedById = jointHirerAttr.CreatedById;
44
- this.CreatedAt = jointHirerAttr.CreatedAt;
45
- this.UpdatedById = jointHirerAttr.UpdatedById;
46
- this.UpdatedAt = jointHirerAttr.UpdatedAt;
47
- }
48
- }
49
-
50
- toJSON(): IJointHirerAttr {
51
- return {
52
- HirerId: this.HirerId,
53
- RentalId: this.RentalId,
54
- CustomerId: this.CustomerId,
55
- CustomerType: this.CustomerType,
56
- Status: this.Status,
57
- CreatedById: this.CreatedById,
58
- CreatedAt: this.CreatedAt,
59
- UpdatedById: this.UpdatedById,
60
- UpdatedAt: this.UpdatedAt,
61
- };
62
- }
63
-
64
- public static async init(hirerId?: string, dbTransaction?: any) {
65
- try {
66
- if (hirerId) {
67
- const jr = await JointHirer._Repository.findByPk(
68
- hirerId,
69
- dbTransaction,
70
- );
71
- if (jr) {
72
- return new JointHirer(jr.get({ plain: true }));
73
- } else {
74
- throw new ClassError(
75
- 'JointHirer',
76
- 'JointHirerErrMsg01',
77
- 'JointHirer not found',
78
- );
79
- }
80
- }
81
- return new JointHirer();
82
- } catch (error) {
83
- throw error;
84
- }
85
- }
86
-
87
- public async create(loginUser: LoginUser, dbTransaction?: any) {
88
- //This method will create a new joint hirer record.
89
- try {
90
- //Part 1: Check Privilege
91
- const systemCode =
92
- ApplicationConfig.getComponentConfigValue('system-code');
93
- const isPrivileged = await loginUser.checkPrivileges(
94
- systemCode,
95
- 'JointHirer - Create',
96
- );
97
-
98
- if (!isPrivileged) {
99
- throw new ClassError(
100
- 'JointHirer',
101
- 'JointHirerErrMsg00',
102
- "You do not have 'JointHirer - Create' privilege.",
103
- );
104
- }
105
-
106
- //Part 2: Insert Joint Hirer Record
107
- //Check if this.RentalId, this.CustomerId, this.CustomerType have value otherwise throw new ClassError with below params
108
- if (!this.RentalId || !this.CustomerId || !this.CustomerType) {
109
- throw new ClassError(
110
- 'JointHirer',
111
- 'JointHirerErrMsg03',
112
- 'RentalId, CustomerId and CustomerType are required.',
113
- );
114
- }
115
-
116
- //Set other attributes
117
- this.ObjectId = this.createId();
118
- this.CreatedById = loginUser.ObjectId;
119
- this.CreatedAt = new Date();
120
- this.UpdatedById = loginUser.ObjectId;
121
- this.UpdatedAt = new Date();
122
-
123
- const entityValueAfter: IJointHirerAttr = {
124
- HirerId: this.HirerId,
125
- RentalId: this.RentalId,
126
- CustomerId: this.CustomerId,
127
- CustomerType: this.CustomerType,
128
- Status: this.Status,
129
- CreatedById: this.CreatedById,
130
- CreatedAt: this.CreatedAt,
131
- UpdatedById: this.UpdatedById,
132
- UpdatedAt: this.UpdatedAt,
133
- };
134
-
135
- //Call repo class create method by passing the class attributes and db transaction.
136
- await JointHirer._Repository.create(entityValueAfter, {
137
- transaction: dbTransaction,
138
- });
139
-
140
- //Part 4: Record Create JointHirer Activity
141
- const activity = new Activity();
142
- activity.ObjectId = this._createId();
143
- activity.Action = ActionEnum.CREATE;
144
- activity.Description = 'Add Joint Hirer';
145
- activity.EntityId = this.ObjectId;
146
- activity.EntityType = this.ObjectType;
147
- activity.EntityValueBefore = JSON.stringify({});
148
- activity.EntityValueAfter = JSON.stringify(entityValueAfter);
149
-
150
- await activity.create(loginUser.ObjectId, dbTransaction);
151
-
152
- //update the AccountType
153
- const rental = await this.getRental(dbTransaction);
154
- const totalIds = await rental.getCustomerIds(loginUser, dbTransaction);
155
-
156
- if (totalIds.length > 1 && rental.AccountType === 'Single') {
157
- await rental.update(loginUser, dbTransaction, {
158
- AccountType: RentalAccountTypeEnum.JOINT,
159
- });
160
- }
161
-
162
- return this;
163
- } catch (error) {
164
- throw error;
165
- }
166
- }
167
-
168
- public async remove(loginUser: LoginUser, dbTransaction?: any) {
169
- try {
170
- //Make sure this.HirerId exists
171
- if (!this.HirerId) {
172
- throw new ClassError(
173
- 'JointHirer',
174
- 'JointHirerErrMsg02',
175
- 'HirerId is required to remove Joint Hirer.',
176
- );
177
- }
178
-
179
- //Make sure this.Status is not "Inactive"
180
- if (this.Status === 'Inactive') {
181
- return this;
182
- }
183
-
184
- //Mark Joint Hirer as Inactive
185
- const entityValueBefore: IJointHirerAttr = this.toJSON();
186
- this.Status = 'Inactive'; // Set status to 'Inactive' instead of deleting the record
187
- this.UpdatedById = loginUser.ObjectId;
188
- this.UpdatedAt = new Date();
189
- const entityValueAfter: IJointHirerAttr = this.toJSON();
190
-
191
- // Part 2: Remove Joint Hirer Record
192
- await JointHirer._Repository.update(entityValueAfter, {
193
- where: {
194
- HirerId: this.HirerId,
195
- },
196
- transaction: dbTransaction,
197
- });
198
-
199
- // Part 3: Record Remove JointHirer Activity
200
- const activity = new Activity();
201
- activity.ObjectId = this._createId();
202
- activity.Action = ActionEnum.UPDATE;
203
- activity.Description = 'Mark Joint Hirer as Inactive';
204
- activity.EntityId = this.ObjectId;
205
- activity.EntityType = this.ObjectType;
206
- activity.EntityValueBefore = JSON.stringify(entityValueBefore);
207
- activity.EntityValueAfter = JSON.stringify(entityValueAfter);
208
-
209
- await activity.create(loginUser.ObjectId, dbTransaction);
210
-
211
- //update the AccountType
212
- const rental = await this.getRental(dbTransaction);
213
- const totalIds = await rental.getCustomerIds(loginUser, dbTransaction);
214
-
215
- if (totalIds.length === 1 && rental.AccountType === 'Joint') {
216
- await rental.update(loginUser, dbTransaction, {
217
- AccountType: RentalAccountTypeEnum.SINGLE,
218
- });
219
- }
220
-
221
- return this;
222
- } catch (error) {
223
- throw error;
224
- }
225
- }
226
-
227
- private async getRental(dbTransaction?: any) {
228
- if (this._Rental) {
229
- return this._Rental;
230
- }
231
-
232
- if (!this.RentalId) {
233
- throw new ClassError(
234
- 'JointHirer',
235
- 'JointHirerErrMsg04',
236
- 'RentalId is empty.',
237
- );
238
- }
239
-
240
- this._Rental = await Rental.init(this.RentalId, dbTransaction);
241
-
242
- if (!this._Rental) {
243
- throw new ClassError(
244
- 'JointHirer',
245
- 'JointHirerErrMsg05',
246
- 'Rental not found.',
247
- );
248
- }
249
-
250
- return this._Rental;
251
- }
252
- }
1
+ import { ClassError, ObjectBase } from '@tomei/general';
2
+ import { JointHirerRepository } from './joint-hirer.repository';
3
+ import { IJointHirerAttr } from '../../interfaces/joint-hirer-attr.interface';
4
+ import { ApplicationConfig } from '@tomei/config';
5
+ import { LoginUser } from '@tomei/sso';
6
+ import { ActionEnum, Activity } from '@tomei/activity-history';
7
+ import { Rental } from '../rental/rental';
8
+ import { RentalAccountTypeEnum } from '../../enum/account-type.enum';
9
+
10
+ export class JointHirer extends ObjectBase {
11
+ ObjectId: string;
12
+ ObjectName: string;
13
+ ObjectType: string = 'JointHirer';
14
+ TableName: string = 'rental_JointHirer';
15
+ RentalId: string;
16
+ CustomerId: string;
17
+ CustomerType: string;
18
+ Status = 'Active'; // Default status
19
+ CreatedById: string;
20
+ CreatedAt: Date;
21
+ UpdatedById: string;
22
+ UpdatedAt: Date;
23
+ private _Rental: Rental;
24
+
25
+ get HirerId(): string {
26
+ return this.ObjectId;
27
+ }
28
+
29
+ set HirerId(value: string) {
30
+ this.ObjectId = value;
31
+ }
32
+
33
+ protected static _Repository = new JointHirerRepository();
34
+
35
+ protected constructor(jointHirerAttr?: IJointHirerAttr) {
36
+ super();
37
+ if (jointHirerAttr) {
38
+ this.HirerId = jointHirerAttr.HirerId;
39
+ this.RentalId = jointHirerAttr.RentalId;
40
+ this.CustomerId = jointHirerAttr.CustomerId;
41
+ this.CustomerType = jointHirerAttr.CustomerType;
42
+ this.Status = jointHirerAttr.Status;
43
+ this.CreatedById = jointHirerAttr.CreatedById;
44
+ this.CreatedAt = jointHirerAttr.CreatedAt;
45
+ this.UpdatedById = jointHirerAttr.UpdatedById;
46
+ this.UpdatedAt = jointHirerAttr.UpdatedAt;
47
+ }
48
+ }
49
+
50
+ toJSON(): IJointHirerAttr {
51
+ return {
52
+ HirerId: this.HirerId,
53
+ RentalId: this.RentalId,
54
+ CustomerId: this.CustomerId,
55
+ CustomerType: this.CustomerType,
56
+ Status: this.Status,
57
+ CreatedById: this.CreatedById,
58
+ CreatedAt: this.CreatedAt,
59
+ UpdatedById: this.UpdatedById,
60
+ UpdatedAt: this.UpdatedAt,
61
+ };
62
+ }
63
+
64
+ public static async init(hirerId?: string, dbTransaction?: any) {
65
+ try {
66
+ if (hirerId) {
67
+ const jr = await JointHirer._Repository.findByPk(
68
+ hirerId,
69
+ dbTransaction,
70
+ );
71
+ if (jr) {
72
+ return new JointHirer(jr.get({ plain: true }));
73
+ } else {
74
+ throw new ClassError(
75
+ 'JointHirer',
76
+ 'JointHirerErrMsg01',
77
+ 'JointHirer not found',
78
+ );
79
+ }
80
+ }
81
+ return new JointHirer();
82
+ } catch (error) {
83
+ throw error;
84
+ }
85
+ }
86
+
87
+ public async create(loginUser: LoginUser, dbTransaction?: any) {
88
+ //This method will create a new joint hirer record.
89
+ try {
90
+ //Part 1: Check Privilege
91
+ const systemCode =
92
+ ApplicationConfig.getComponentConfigValue('system-code');
93
+ const isPrivileged = await loginUser.checkPrivileges(
94
+ systemCode,
95
+ 'JointHirer - Create',
96
+ );
97
+
98
+ if (!isPrivileged) {
99
+ throw new ClassError(
100
+ 'JointHirer',
101
+ 'JointHirerErrMsg00',
102
+ "You do not have 'JointHirer - Create' privilege.",
103
+ );
104
+ }
105
+
106
+ //Part 2: Insert Joint Hirer Record
107
+ //Check if this.RentalId, this.CustomerId, this.CustomerType have value otherwise throw new ClassError with below params
108
+ if (!this.RentalId || !this.CustomerId || !this.CustomerType) {
109
+ throw new ClassError(
110
+ 'JointHirer',
111
+ 'JointHirerErrMsg03',
112
+ 'RentalId, CustomerId and CustomerType are required.',
113
+ );
114
+ }
115
+
116
+ //Set other attributes
117
+ this.ObjectId = this.createId();
118
+ this.CreatedById = loginUser.ObjectId;
119
+ this.CreatedAt = new Date();
120
+ this.UpdatedById = loginUser.ObjectId;
121
+ this.UpdatedAt = new Date();
122
+
123
+ const entityValueAfter: IJointHirerAttr = {
124
+ HirerId: this.HirerId,
125
+ RentalId: this.RentalId,
126
+ CustomerId: this.CustomerId,
127
+ CustomerType: this.CustomerType,
128
+ Status: this.Status,
129
+ CreatedById: this.CreatedById,
130
+ CreatedAt: this.CreatedAt,
131
+ UpdatedById: this.UpdatedById,
132
+ UpdatedAt: this.UpdatedAt,
133
+ };
134
+
135
+ //Call repo class create method by passing the class attributes and db transaction.
136
+ await JointHirer._Repository.create(entityValueAfter, {
137
+ transaction: dbTransaction,
138
+ });
139
+
140
+ //Part 4: Record Create JointHirer Activity
141
+ const activity = new Activity();
142
+ activity.ObjectId = this._createId();
143
+ activity.Action = ActionEnum.CREATE;
144
+ activity.Description = 'Add Joint Hirer';
145
+ activity.EntityId = this.ObjectId;
146
+ activity.EntityType = this.ObjectType;
147
+ activity.EntityValueBefore = JSON.stringify({});
148
+ activity.EntityValueAfter = JSON.stringify(entityValueAfter);
149
+
150
+ await activity.create(loginUser.ObjectId, dbTransaction);
151
+
152
+ //update the AccountType
153
+ const rental = await this.getRental(dbTransaction);
154
+ const totalIds = await rental.getCustomerIds(loginUser, dbTransaction);
155
+
156
+ if (totalIds.length > 1 && rental.AccountType === 'Single') {
157
+ await rental.update(loginUser, dbTransaction, {
158
+ AccountType: RentalAccountTypeEnum.JOINT,
159
+ });
160
+ }
161
+
162
+ return this;
163
+ } catch (error) {
164
+ throw error;
165
+ }
166
+ }
167
+
168
+ public async remove(loginUser: LoginUser, dbTransaction?: any) {
169
+ try {
170
+ //Make sure this.HirerId exists
171
+ if (!this.HirerId) {
172
+ throw new ClassError(
173
+ 'JointHirer',
174
+ 'JointHirerErrMsg02',
175
+ 'HirerId is required to remove Joint Hirer.',
176
+ );
177
+ }
178
+
179
+ //Make sure this.Status is not "Inactive"
180
+ if (this.Status === 'Inactive') {
181
+ return this;
182
+ }
183
+
184
+ //Mark Joint Hirer as Inactive
185
+ const entityValueBefore: IJointHirerAttr = this.toJSON();
186
+ this.Status = 'Inactive'; // Set status to 'Inactive' instead of deleting the record
187
+ this.UpdatedById = loginUser.ObjectId;
188
+ this.UpdatedAt = new Date();
189
+ const entityValueAfter: IJointHirerAttr = this.toJSON();
190
+
191
+ // Part 2: Remove Joint Hirer Record
192
+ await JointHirer._Repository.update(entityValueAfter, {
193
+ where: {
194
+ HirerId: this.HirerId,
195
+ },
196
+ transaction: dbTransaction,
197
+ });
198
+
199
+ // Part 3: Record Remove JointHirer Activity
200
+ const activity = new Activity();
201
+ activity.ObjectId = this._createId();
202
+ activity.Action = ActionEnum.UPDATE;
203
+ activity.Description = 'Mark Joint Hirer as Inactive';
204
+ activity.EntityId = this.ObjectId;
205
+ activity.EntityType = this.ObjectType;
206
+ activity.EntityValueBefore = JSON.stringify(entityValueBefore);
207
+ activity.EntityValueAfter = JSON.stringify(entityValueAfter);
208
+
209
+ await activity.create(loginUser.ObjectId, dbTransaction);
210
+
211
+ //update the AccountType
212
+ const rental = await this.getRental(dbTransaction);
213
+ const totalIds = await rental.getCustomerIds(loginUser, dbTransaction);
214
+
215
+ if (totalIds.length === 1 && rental.AccountType === 'Joint') {
216
+ await rental.update(loginUser, dbTransaction, {
217
+ AccountType: RentalAccountTypeEnum.SINGLE,
218
+ });
219
+ }
220
+
221
+ return this;
222
+ } catch (error) {
223
+ throw error;
224
+ }
225
+ }
226
+
227
+ private async getRental(dbTransaction?: any) {
228
+ if (this._Rental) {
229
+ return this._Rental;
230
+ }
231
+
232
+ if (!this.RentalId) {
233
+ throw new ClassError(
234
+ 'JointHirer',
235
+ 'JointHirerErrMsg04',
236
+ 'RentalId is empty.',
237
+ );
238
+ }
239
+
240
+ this._Rental = await Rental.init(dbTransaction, this.RentalId);
241
+
242
+ if (!this._Rental) {
243
+ throw new ClassError(
244
+ 'JointHirer',
245
+ 'JointHirerErrMsg05',
246
+ 'Rental not found.',
247
+ );
248
+ }
249
+
250
+ return this._Rental;
251
+ }
252
+ }
@@ -1,51 +1,51 @@
1
- import { RepositoryBase, IRepositoryBase } from '@tomei/general';
2
- import { RentalModel } from '../../models/rental.entity';
3
-
4
- export class RentalRepository
5
- extends RepositoryBase<RentalModel>
6
- implements IRepositoryBase<RentalModel>
7
- {
8
- constructor() {
9
- super(RentalModel);
10
- }
11
-
12
- async findByPk(id: string, transaction?: any): Promise<RentalModel | null> {
13
- try {
14
- const result = await RentalModel.findByPk(id, {
15
- transaction: transaction,
16
- });
17
-
18
- return result;
19
- } catch (error) {
20
- throw new Error(`An Error occured when fetching : ${error.message}`);
21
- }
22
- }
23
-
24
- async delete(RentalId: string, dbTransaction?: any) {
25
- try {
26
- const options = {
27
- where: {
28
- RentalId: RentalId,
29
- },
30
- transaction: dbTransaction,
31
- };
32
- await RentalModel.destroy(options);
33
- } catch (error) {
34
- throw new Error(`An Error occured when delete : ${error.message}`);
35
- }
36
- }
37
-
38
- async findAndCountAll(options?: any) {
39
- try {
40
- let Rentals: any;
41
- if (options) {
42
- Rentals = await RentalModel.findAndCountAll(options);
43
- } else {
44
- Rentals = await RentalModel.findAndCountAll();
45
- }
46
- return Rentals;
47
- } catch (error) {
48
- throw new Error(`An Error occured when retriving : ${error.message}`);
49
- }
50
- }
51
- }
1
+ import { RepositoryBase, IRepositoryBase } from '@tomei/general';
2
+ import { RentalModel } from '../../models/rental.entity';
3
+
4
+ export class RentalRepository
5
+ extends RepositoryBase<RentalModel>
6
+ implements IRepositoryBase<RentalModel>
7
+ {
8
+ constructor() {
9
+ super(RentalModel);
10
+ }
11
+
12
+ async findByPk(id: string, transaction?: any): Promise<RentalModel | null> {
13
+ try {
14
+ const result = await RentalModel.findByPk(id, {
15
+ transaction: transaction,
16
+ });
17
+
18
+ return result;
19
+ } catch (error) {
20
+ throw new Error(`An Error occured when fetching : ${error.message}`);
21
+ }
22
+ }
23
+
24
+ async delete(RentalId: string, dbTransaction?: any) {
25
+ try {
26
+ const options = {
27
+ where: {
28
+ RentalId: RentalId,
29
+ },
30
+ transaction: dbTransaction,
31
+ };
32
+ await RentalModel.destroy(options);
33
+ } catch (error) {
34
+ throw new Error(`An Error occured when delete : ${error.message}`);
35
+ }
36
+ }
37
+
38
+ async findAndCountAll(options?: any) {
39
+ try {
40
+ let Rentals: any;
41
+ if (options) {
42
+ Rentals = await RentalModel.findAndCountAll(options);
43
+ } else {
44
+ Rentals = await RentalModel.findAndCountAll();
45
+ }
46
+ return Rentals;
47
+ } catch (error) {
48
+ throw new Error(`An Error occured when retriving : ${error.message}`);
49
+ }
50
+ }
51
+ }