@tomei/rental 0.2.5 → 0.2.6

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 (72) hide show
  1. package/.commitlintrc.json +22 -22
  2. package/.eslintrc +16 -16
  3. package/.eslintrc.js +35 -35
  4. package/.husky/commit-msg +15 -15
  5. package/.husky/pre-commit +7 -7
  6. package/.prettierrc +4 -4
  7. package/Jenkinsfile +51 -57
  8. package/README.md +8 -8
  9. package/dist/index.d.ts +1 -1
  10. package/dist/index.js +17 -17
  11. package/dist/src/components/rental/rental.d.ts +35 -35
  12. package/dist/src/components/rental/rental.js +208 -208
  13. package/dist/src/components/rental/rental.repository.d.ts +8 -8
  14. package/dist/src/components/rental/rental.repository.js +66 -66
  15. package/dist/src/components/rental-price/rental-price.d.ts +12 -12
  16. package/dist/src/components/rental-price/rental-price.js +71 -71
  17. package/dist/src/components/rental-price/rental-price.repository.d.ts +8 -8
  18. package/dist/src/components/rental-price/rental-price.repository.js +66 -66
  19. package/dist/src/database.d.ts +4 -4
  20. package/dist/src/database.js +19 -19
  21. package/dist/src/enum/index.d.ts +2 -2
  22. package/dist/src/enum/index.js +5 -5
  23. package/dist/src/enum/rental-status.enum.d.ts +6 -6
  24. package/dist/src/enum/rental-status.enum.js +10 -10
  25. package/dist/src/index.d.ts +9 -9
  26. package/dist/src/index.js +30 -30
  27. package/dist/src/interfaces/index.d.ts +4 -4
  28. package/dist/src/interfaces/index.js +2 -2
  29. package/dist/src/interfaces/rental-attr.interface.d.ts +20 -20
  30. package/dist/src/interfaces/rental-attr.interface.js +2 -2
  31. package/dist/src/interfaces/rental-find-all-search-attr.interface.d.ts +8 -8
  32. package/dist/src/interfaces/rental-find-all-search-attr.interface.js +2 -2
  33. package/dist/src/interfaces/rental-price-attr.interface.d.ts +7 -7
  34. package/dist/src/interfaces/rental-price-attr.interface.js +2 -2
  35. package/dist/src/models/index.d.ts +3 -3
  36. package/dist/src/models/index.js +7 -7
  37. package/dist/src/models/rental-price.entity.d.ts +8 -8
  38. package/dist/src/models/rental-price.entity.js +58 -58
  39. package/dist/src/models/rental.entity.d.ts +23 -23
  40. package/dist/src/models/rental.entity.js +140 -138
  41. package/dist/src/models/rental.entity.js.map +1 -1
  42. package/dist/tsconfig.tsbuildinfo +1 -1
  43. package/jest.config.js +10 -10
  44. package/migrations/rental-price-table-migration.js +32 -32
  45. package/migrations/rental-table-migrations.js +86 -84
  46. package/package.json +71 -71
  47. package/src/components/rental/rental.repository.ts +51 -51
  48. package/src/components/rental/rental.ts +285 -285
  49. package/src/components/rental-price/rental-price.repository.ts +54 -54
  50. package/src/components/rental-price/rental-price.ts +89 -89
  51. package/src/database.ts +21 -21
  52. package/src/enum/index.ts +3 -3
  53. package/src/enum/rental-status.enum.ts +6 -6
  54. package/src/index.ts +16 -16
  55. package/src/interfaces/index.ts +5 -5
  56. package/src/interfaces/rental-attr.interface.ts +21 -21
  57. package/src/interfaces/rental-find-all-search-attr.interface.ts +9 -9
  58. package/src/interfaces/rental-price-attr.interface.ts +7 -7
  59. package/src/models/index.ts +4 -4
  60. package/src/models/rental-price.entity.ts +38 -38
  61. package/src/models/rental.entity.ts +116 -114
  62. package/tsconfig.build.json +5 -5
  63. package/tsconfig.json +23 -23
  64. package/dist/jest.config.d.ts +0 -2
  65. package/dist/jest.config.js +0 -11
  66. package/dist/jest.config.js.map +0 -1
  67. package/dist/migrations/rental-price-table-migration.d.ts +0 -2
  68. package/dist/migrations/rental-price-table-migration.js +0 -43
  69. package/dist/migrations/rental-price-table-migration.js.map +0 -1
  70. package/dist/migrations/rental-table-migrations.d.ts +0 -2
  71. package/dist/migrations/rental-table-migrations.js +0 -95
  72. package/dist/migrations/rental-table-migrations.js.map +0 -1
@@ -1,89 +1,89 @@
1
- import { ClassError } from '@tomei/general';
2
- import { RentalPriceRepository } from './rental-price.repository';
3
- import { IRentalPriceAttr } from '../../interfaces/rental-price-attr.interface';
4
- import { LoginUser } from '@tomei/sso';
5
- import { ApplicationConfig } from '@tomei/config';
6
- import * as cuid from 'cuid';
7
-
8
- export class RentalPrice {
9
- PriceId: string;
10
- RetailPrice: number;
11
- Currency: string;
12
- PromoCode: string;
13
- Remarks: string;
14
-
15
- private static _Repo = new RentalPriceRepository();
16
-
17
- private constructor(rentalPriceAttr?: IRentalPriceAttr) {
18
- if (rentalPriceAttr) {
19
- this.PriceId = rentalPriceAttr.PriceId;
20
- this.RetailPrice = rentalPriceAttr.RetailPrice;
21
- this.Currency = rentalPriceAttr.Currency;
22
- this.PromoCode = rentalPriceAttr.PromoCode;
23
- this.Remarks = rentalPriceAttr.Remarks;
24
- }
25
- }
26
-
27
- public static async init(dbTransaction?: any, priceId?: string) {
28
- try {
29
- if (priceId) {
30
- const rentalPrice = await RentalPrice._Repo.findByPk(
31
- priceId,
32
- dbTransaction,
33
- );
34
- if (rentalPrice) {
35
- return new RentalPrice(rentalPrice);
36
- } else {
37
- throw new ClassError(
38
- 'RentalPrice',
39
- 'RentalPriceErrMsg',
40
- 'RentalPrice Not Found',
41
- );
42
- }
43
- }
44
- return new RentalPrice();
45
- } catch (error) {
46
- throw new ClassError(
47
- 'RentalPrice',
48
- 'RentalPriceErrMsg',
49
- 'Failed To Initialize RentalPrice',
50
- );
51
- }
52
- }
53
-
54
- public async create(loginUser: LoginUser, dbTransaction?: any) {
55
- try {
56
- const systemCode =
57
- ApplicationConfig.getComponentConfigValue('system-code');
58
- const isPrivileged = await loginUser.checkPrivileges(
59
- systemCode,
60
- 'Rental - Create',
61
- );
62
-
63
- if (!isPrivileged) {
64
- throw new ClassError(
65
- 'RentalPrice',
66
- 'RentalPriceErrMsg',
67
- 'You do not have the privilege.',
68
- );
69
- }
70
-
71
- this.PriceId = cuid();
72
-
73
- await RentalPrice._Repo.create(
74
- {
75
- PriceId: this.PriceId,
76
- RetailPrice: this.RetailPrice,
77
- Currency: this.Currency,
78
- PromoCode: this.PromoCode,
79
- Remarks: this.Remarks,
80
- },
81
- dbTransaction,
82
- );
83
-
84
- return this;
85
- } catch (error) {
86
- throw error;
87
- }
88
- }
89
- }
1
+ import { ClassError } from '@tomei/general';
2
+ import { RentalPriceRepository } from './rental-price.repository';
3
+ import { IRentalPriceAttr } from '../../interfaces/rental-price-attr.interface';
4
+ import { LoginUser } from '@tomei/sso';
5
+ import { ApplicationConfig } from '@tomei/config';
6
+ import * as cuid from 'cuid';
7
+
8
+ export class RentalPrice {
9
+ PriceId: string;
10
+ RetailPrice: number;
11
+ Currency: string;
12
+ PromoCode: string;
13
+ Remarks: string;
14
+
15
+ private static _Repo = new RentalPriceRepository();
16
+
17
+ private constructor(rentalPriceAttr?: IRentalPriceAttr) {
18
+ if (rentalPriceAttr) {
19
+ this.PriceId = rentalPriceAttr.PriceId;
20
+ this.RetailPrice = rentalPriceAttr.RetailPrice;
21
+ this.Currency = rentalPriceAttr.Currency;
22
+ this.PromoCode = rentalPriceAttr.PromoCode;
23
+ this.Remarks = rentalPriceAttr.Remarks;
24
+ }
25
+ }
26
+
27
+ public static async init(dbTransaction?: any, priceId?: string) {
28
+ try {
29
+ if (priceId) {
30
+ const rentalPrice = await RentalPrice._Repo.findByPk(
31
+ priceId,
32
+ dbTransaction,
33
+ );
34
+ if (rentalPrice) {
35
+ return new RentalPrice(rentalPrice);
36
+ } else {
37
+ throw new ClassError(
38
+ 'RentalPrice',
39
+ 'RentalPriceErrMsg',
40
+ 'RentalPrice Not Found',
41
+ );
42
+ }
43
+ }
44
+ return new RentalPrice();
45
+ } catch (error) {
46
+ throw new ClassError(
47
+ 'RentalPrice',
48
+ 'RentalPriceErrMsg',
49
+ 'Failed To Initialize RentalPrice',
50
+ );
51
+ }
52
+ }
53
+
54
+ public async create(loginUser: LoginUser, dbTransaction?: any) {
55
+ try {
56
+ const systemCode =
57
+ ApplicationConfig.getComponentConfigValue('system-code');
58
+ const isPrivileged = await loginUser.checkPrivileges(
59
+ systemCode,
60
+ 'Rental - Create',
61
+ );
62
+
63
+ if (!isPrivileged) {
64
+ throw new ClassError(
65
+ 'RentalPrice',
66
+ 'RentalPriceErrMsg',
67
+ 'You do not have the privilege.',
68
+ );
69
+ }
70
+
71
+ this.PriceId = cuid();
72
+
73
+ await RentalPrice._Repo.create(
74
+ {
75
+ PriceId: this.PriceId,
76
+ RetailPrice: this.RetailPrice,
77
+ Currency: this.Currency,
78
+ PromoCode: this.PromoCode,
79
+ Remarks: this.Remarks,
80
+ },
81
+ dbTransaction,
82
+ );
83
+
84
+ return this;
85
+ } catch (error) {
86
+ throw error;
87
+ }
88
+ }
89
+ }
package/src/database.ts CHANGED
@@ -1,21 +1,21 @@
1
- import { Sequelize, SequelizeOptions } from 'sequelize-typescript';
2
- import { RentalModel } from './models/rental.entity';
3
- import { RentalPriceModel } from './models/rental-price.entity';
4
-
5
- let sequelize: Sequelize;
6
-
7
- function init(sequelizeOptions: SequelizeOptions) {
8
- sequelize = new Sequelize(sequelizeOptions);
9
-
10
- sequelize.addModels([
11
- // Add your models here
12
- RentalModel,
13
- RentalPriceModel,
14
- ]);
15
- }
16
-
17
- function getConnection() {
18
- return sequelize;
19
- }
20
-
21
- export { init, getConnection };
1
+ import { Sequelize, SequelizeOptions } from 'sequelize-typescript';
2
+ import { RentalModel } from './models/rental.entity';
3
+ import { RentalPriceModel } from './models/rental-price.entity';
4
+
5
+ let sequelize: Sequelize;
6
+
7
+ function init(sequelizeOptions: SequelizeOptions) {
8
+ sequelize = new Sequelize(sequelizeOptions);
9
+
10
+ sequelize.addModels([
11
+ // Add your models here
12
+ RentalModel,
13
+ RentalPriceModel,
14
+ ]);
15
+ }
16
+
17
+ function getConnection() {
18
+ return sequelize;
19
+ }
20
+
21
+ export { init, getConnection };
package/src/enum/index.ts CHANGED
@@ -1,3 +1,3 @@
1
- import { RentalStatusEnum } from './rental-status.enum';
2
-
3
- export { RentalStatusEnum };
1
+ import { RentalStatusEnum } from './rental-status.enum';
2
+
3
+ export { RentalStatusEnum };
@@ -1,6 +1,6 @@
1
- export enum RentalStatusEnum {
2
- ACTIVE = 'Active',
3
- SUSPENDED = 'Suspended',
4
- CANCELLED = 'Cancelled',
5
- TERMINATED = 'Terminated',
6
- }
1
+ export enum RentalStatusEnum {
2
+ ACTIVE = 'Active',
3
+ SUSPENDED = 'Suspended',
4
+ CANCELLED = 'Cancelled',
5
+ TERMINATED = 'Terminated',
6
+ }
package/src/index.ts CHANGED
@@ -1,16 +1,16 @@
1
- import { RentalPriceRepository } from './components/rental-price/rental-price.repository';
2
- import { RentalRepository } from './components/rental/rental.repository';
3
- import { Rental } from './components/rental/rental';
4
- import { RentalPrice } from './components/rental-price/rental-price';
5
- import * as rentalDb from './database';
6
- export * from './interfaces';
7
- export * from './models';
8
- export * from './enum';
9
-
10
- export {
11
- Rental,
12
- RentalPrice,
13
- RentalRepository,
14
- RentalPriceRepository,
15
- rentalDb,
16
- };
1
+ import { RentalPriceRepository } from './components/rental-price/rental-price.repository';
2
+ import { RentalRepository } from './components/rental/rental.repository';
3
+ import { Rental } from './components/rental/rental';
4
+ import { RentalPrice } from './components/rental-price/rental-price';
5
+ import * as rentalDb from './database';
6
+ export * from './interfaces';
7
+ export * from './models';
8
+ export * from './enum';
9
+
10
+ export {
11
+ Rental,
12
+ RentalPrice,
13
+ RentalRepository,
14
+ RentalPriceRepository,
15
+ rentalDb,
16
+ };
@@ -1,5 +1,5 @@
1
- import { IRentalAttr } from './rental-attr.interface';
2
- import { IRentalPriceAttr } from './rental-price-attr.interface';
3
- import { IRentalFindAllSearchAttr } from './rental-find-all-search-attr.interface';
4
-
5
- export { IRentalAttr, IRentalPriceAttr, IRentalFindAllSearchAttr };
1
+ import { IRentalAttr } from './rental-attr.interface';
2
+ import { IRentalPriceAttr } from './rental-price-attr.interface';
3
+ import { IRentalFindAllSearchAttr } from './rental-find-all-search-attr.interface';
4
+
5
+ export { IRentalAttr, IRentalPriceAttr, IRentalFindAllSearchAttr };
@@ -1,21 +1,21 @@
1
- import { RentalStatusEnum } from '../enum/rental-status.enum';
2
-
3
- export interface IRentalAttr {
4
- RentalId: string;
5
- CustomerId: string;
6
- CustomerType: string;
7
- ItemId: string;
8
- ItemType: string;
9
- PriceId: string;
10
- StartDateTime: Date;
11
- EndDateTime: Date;
12
- CancelRemarks: string;
13
- TerminateRemarks: string;
14
- AgreementNo: string;
15
- Status: RentalStatusEnum;
16
- EscheatmentYN: string;
17
- CreatedById: string;
18
- CreatedAt: Date;
19
- UpdatedById: string;
20
- UpdatedAt: Date;
21
- }
1
+ import { RentalStatusEnum } from '../enum/rental-status.enum';
2
+
3
+ export interface IRentalAttr {
4
+ RentalId: string;
5
+ CustomerId: string;
6
+ CustomerType: string;
7
+ ItemId: string;
8
+ ItemType: string;
9
+ PriceId: string;
10
+ StartDateTime: Date;
11
+ EndDateTime: Date;
12
+ CancelRemarks: string;
13
+ TerminateRemarks: string;
14
+ AgreementNo: string;
15
+ Status: RentalStatusEnum;
16
+ EscheatmentYN: string;
17
+ CreatedById: string;
18
+ CreatedAt: Date;
19
+ UpdatedById: string;
20
+ UpdatedAt: Date;
21
+ }
@@ -1,9 +1,9 @@
1
- import { RentalStatusEnum } from '../enum/rental-status.enum';
2
-
3
- export interface IRentalFindAllSearchAttr {
4
- Status?: RentalStatusEnum;
5
- StartDateTime?: Date;
6
- EndDateTime?: Date;
7
- ItemId?: string;
8
- ItemType?: string;
9
- }
1
+ import { RentalStatusEnum } from '../enum/rental-status.enum';
2
+
3
+ export interface IRentalFindAllSearchAttr {
4
+ Status?: RentalStatusEnum;
5
+ StartDateTime?: Date;
6
+ EndDateTime?: Date;
7
+ ItemId?: string;
8
+ ItemType?: string;
9
+ }
@@ -1,7 +1,7 @@
1
- export interface IRentalPriceAttr {
2
- PriceId: string;
3
- RetailPrice: number;
4
- Currency: string;
5
- PromoCode: string;
6
- Remarks: string;
7
- }
1
+ export interface IRentalPriceAttr {
2
+ PriceId: string;
3
+ RetailPrice: number;
4
+ Currency: string;
5
+ PromoCode: string;
6
+ Remarks: string;
7
+ }
@@ -1,4 +1,4 @@
1
- import { RentalModel } from './rental.entity';
2
- import { RentalPriceModel } from './rental-price.entity';
3
-
4
- export { RentalModel, RentalPriceModel };
1
+ import { RentalModel } from './rental.entity';
2
+ import { RentalPriceModel } from './rental-price.entity';
3
+
4
+ export { RentalModel, RentalPriceModel };
@@ -1,38 +1,38 @@
1
- import { Column, DataType, Table, Model } from 'sequelize-typescript';
2
-
3
- @Table({
4
- tableName: 'rental_Price',
5
- timestamps: false,
6
- createdAt: false,
7
- updatedAt: false,
8
- })
9
- export class RentalPriceModel extends Model {
10
- @Column({
11
- primaryKey: true,
12
- allowNull: false,
13
- type: DataType.STRING(30),
14
- })
15
- PriceId: string;
16
-
17
- @Column({
18
- allowNull: false,
19
- type: DataType.DECIMAL(10, 2),
20
- })
21
- RetailPrice: number;
22
-
23
- @Column({
24
- allowNull: false,
25
- type: DataType.CHAR(3),
26
- })
27
- Currency: string;
28
-
29
- @Column({
30
- type: DataType.STRING(10),
31
- })
32
- PromoCode: string;
33
-
34
- @Column({
35
- type: DataType.STRING(3000),
36
- })
37
- Remarks: string;
38
- }
1
+ import { Column, DataType, Table, Model } from 'sequelize-typescript';
2
+
3
+ @Table({
4
+ tableName: 'rental_Price',
5
+ timestamps: false,
6
+ createdAt: false,
7
+ updatedAt: false,
8
+ })
9
+ export class RentalPriceModel extends Model {
10
+ @Column({
11
+ primaryKey: true,
12
+ allowNull: false,
13
+ type: DataType.STRING(30),
14
+ })
15
+ PriceId: string;
16
+
17
+ @Column({
18
+ allowNull: false,
19
+ type: DataType.DECIMAL(10, 2),
20
+ })
21
+ RetailPrice: number;
22
+
23
+ @Column({
24
+ allowNull: false,
25
+ type: DataType.CHAR(3),
26
+ })
27
+ Currency: string;
28
+
29
+ @Column({
30
+ type: DataType.STRING(10),
31
+ })
32
+ PromoCode: string;
33
+
34
+ @Column({
35
+ type: DataType.STRING(3000),
36
+ })
37
+ Remarks: string;
38
+ }