@tc-libs/ticket 2.0.1

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 (89) hide show
  1. package/README.md +11 -0
  2. package/package.json +27 -0
  3. package/src/constants/ticket.constant.d.ts +17 -0
  4. package/src/constants/ticket.constant.js +24 -0
  5. package/src/constants/ticket.constant.js.map +1 -0
  6. package/src/constants/ticket.doc.constant.d.ts +7 -0
  7. package/src/constants/ticket.doc.constant.js +14 -0
  8. package/src/constants/ticket.doc.constant.js.map +1 -0
  9. package/src/constants/ticket.list.constant.d.ts +6 -0
  10. package/src/constants/ticket.list.constant.js +10 -0
  11. package/src/constants/ticket.list.constant.js.map +1 -0
  12. package/src/constants/ticket.permissions.constants.d.ts +2 -0
  13. package/src/constants/ticket.permissions.constants.js +9 -0
  14. package/src/constants/ticket.permissions.constants.js.map +1 -0
  15. package/src/controllers/ticket.admin.controller.d.ts +5 -0
  16. package/src/controllers/ticket.admin.controller.js +22 -0
  17. package/src/controllers/ticket.admin.controller.js.map +1 -0
  18. package/src/controllers/ticket.public.controller.d.ts +14 -0
  19. package/src/controllers/ticket.public.controller.js +120 -0
  20. package/src/controllers/ticket.public.controller.js.map +1 -0
  21. package/src/decorators/ticket.admin.decorator.d.ts +5 -0
  22. package/src/decorators/ticket.admin.decorator.js +27 -0
  23. package/src/decorators/ticket.admin.decorator.js.map +1 -0
  24. package/src/decorators/ticket.decorator.d.ts +1 -0
  25. package/src/decorators/ticket.decorator.js +9 -0
  26. package/src/decorators/ticket.decorator.js.map +1 -0
  27. package/src/decorators/ticket.public.decorator.d.ts +1 -0
  28. package/src/decorators/ticket.public.decorator.js +10 -0
  29. package/src/decorators/ticket.public.decorator.js.map +1 -0
  30. package/src/docs/ticket.admin.doc.d.ts +4 -0
  31. package/src/docs/ticket.admin.doc.js +61 -0
  32. package/src/docs/ticket.admin.doc.js.map +1 -0
  33. package/src/docs/ticket.public.doc.d.ts +1 -0
  34. package/src/docs/ticket.public.doc.js +17 -0
  35. package/src/docs/ticket.public.doc.js.map +1 -0
  36. package/src/dtos/public/ticket.create.public.dto.d.ts +6 -0
  37. package/src/dtos/public/ticket.create.public.dto.js +42 -0
  38. package/src/dtos/public/ticket.create.public.dto.js.map +1 -0
  39. package/src/dtos/ticket.comment-add.dto.d.ts +4 -0
  40. package/src/dtos/ticket.comment-add.dto.js +22 -0
  41. package/src/dtos/ticket.comment-add.dto.js.map +1 -0
  42. package/src/dtos/ticket.create.dto.d.ts +6 -0
  43. package/src/dtos/ticket.create.dto.js +42 -0
  44. package/src/dtos/ticket.create.dto.js.map +1 -0
  45. package/src/dtos/ticket.request.dto.d.ts +3 -0
  46. package/src/dtos/ticket.request.dto.js +23 -0
  47. package/src/dtos/ticket.request.dto.js.map +1 -0
  48. package/src/guards/ticket.not-found.guard.d.ts +4 -0
  49. package/src/guards/ticket.not-found.guard.js +21 -0
  50. package/src/guards/ticket.not-found.guard.js.map +1 -0
  51. package/src/guards/ticket.put-to-request-by-user.guard.d.ts +7 -0
  52. package/src/guards/ticket.put-to-request-by-user.guard.js +29 -0
  53. package/src/guards/ticket.put-to-request-by-user.guard.js.map +1 -0
  54. package/src/guards/ticket.put-to-request.guard.d.ts +7 -0
  55. package/src/guards/ticket.put-to-request.guard.js +27 -0
  56. package/src/guards/ticket.put-to-request.guard.js.map +1 -0
  57. package/src/index.d.ts +9 -0
  58. package/src/index.js +13 -0
  59. package/src/index.js.map +1 -0
  60. package/src/repository/entities/ticket.entity.d.ts +44 -0
  61. package/src/repository/entities/ticket.entity.js +142 -0
  62. package/src/repository/entities/ticket.entity.js.map +1 -0
  63. package/src/repository/repositories/ticket.repository.d.ts +11 -0
  64. package/src/repository/repositories/ticket.repository.js +28 -0
  65. package/src/repository/repositories/ticket.repository.js.map +1 -0
  66. package/src/repository/ticket.repository.module.d.ts +2 -0
  67. package/src/repository/ticket.repository.module.js +27 -0
  68. package/src/repository/ticket.repository.module.js.map +1 -0
  69. package/src/serializations/index.d.ts +2 -0
  70. package/src/serializations/index.js +6 -0
  71. package/src/serializations/index.js.map +1 -0
  72. package/src/serializations/public/ticket.get.public.serialization.d.ts +3 -0
  73. package/src/serializations/public/ticket.get.public.serialization.js +8 -0
  74. package/src/serializations/public/ticket.get.public.serialization.js.map +1 -0
  75. package/src/serializations/public/ticket.list.public.serialization.d.ts +3 -0
  76. package/src/serializations/public/ticket.list.public.serialization.js +8 -0
  77. package/src/serializations/public/ticket.list.public.serialization.js.map +1 -0
  78. package/src/serializations/ticket.get.serialization.d.ts +26 -0
  79. package/src/serializations/ticket.get.serialization.js +161 -0
  80. package/src/serializations/ticket.get.serialization.js.map +1 -0
  81. package/src/serializations/ticket.list.serialization.d.ts +3 -0
  82. package/src/serializations/ticket.list.serialization.js +8 -0
  83. package/src/serializations/ticket.list.serialization.js.map +1 -0
  84. package/src/services/ticket.service.d.ts +12 -0
  85. package/src/services/ticket.service.js +41 -0
  86. package/src/services/ticket.service.js.map +1 -0
  87. package/src/ticket.module.d.ts +2 -0
  88. package/src/ticket.module.js +20 -0
  89. package/src/ticket.module.js.map +1 -0
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TicketCreateDto = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const faker_1 = require("@faker-js/faker");
6
+ const swagger_1 = require("@nestjs/swagger");
7
+ const class_validator_1 = require("class-validator");
8
+ const ticket_constant_1 = require("../constants/ticket.constant");
9
+ class TicketCreateDto {
10
+ }
11
+ exports.TicketCreateDto = TicketCreateDto;
12
+ tslib_1.__decorate([
13
+ (0, swagger_1.ApiProperty)({
14
+ description: 'category enum',
15
+ example: [faker_1.faker.string.uuid(), faker_1.faker.string.uuid()],
16
+ required: true,
17
+ }),
18
+ (0, class_validator_1.IsNotEmpty)(),
19
+ (0, class_validator_1.IsEnum)(ticket_constant_1.TICKET_CATEGORY),
20
+ tslib_1.__metadata("design:type", String)
21
+ ], TicketCreateDto.prototype, "category", void 0);
22
+ tslib_1.__decorate([
23
+ (0, swagger_1.ApiProperty)({
24
+ description: 'The short title object of that ticket',
25
+ example: 'Problem with payment',
26
+ required: true,
27
+ }),
28
+ (0, class_validator_1.IsNotEmpty)(),
29
+ (0, class_validator_1.IsString)(),
30
+ tslib_1.__metadata("design:type", String)
31
+ ], TicketCreateDto.prototype, "title", void 0);
32
+ tslib_1.__decorate([
33
+ (0, swagger_1.ApiProperty)({
34
+ description: 'The long description of that ticket',
35
+ example: faker_1.faker.lorem.paragraph(),
36
+ required: true,
37
+ }),
38
+ (0, class_validator_1.IsNotEmpty)(),
39
+ (0, class_validator_1.IsString)(),
40
+ tslib_1.__metadata("design:type", String)
41
+ ], TicketCreateDto.prototype, "description", void 0);
42
+ //# sourceMappingURL=ticket.create.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ticket.create.dto.js","sourceRoot":"","sources":["../../../../../packages/ticket/src/dtos/ticket.create.dto.ts"],"names":[],"mappings":";;;;AAAA,2CAAwC;AACxC,6CAA8C;AAC9C,qDAA+D;AAC/D,kEAA+D;AAE/D,MAAa,eAAe;CA2B3B;AA3BD,0CA2BC;AAnBU;IAPR,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,eAAe;QAC5B,OAAO,EAAE,CAAC,aAAK,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,aAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACnD,QAAQ,EAAE,IAAI;KACf,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAM,EAAC,iCAAe,CAAC;;iDACW;AAS1B;IAPR,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,uCAAuC;QACpD,OAAO,EAAE,sBAAsB;QAC/B,QAAQ,EAAE,IAAI;KACf,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;8CACY;AASd;IAPR,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,qCAAqC;QAClD,OAAO,EAAE,aAAK,CAAC,KAAK,CAAC,SAAS,EAAE;QAChC,QAAQ,EAAE,IAAI;KACf,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;oDACkB"}
@@ -0,0 +1,3 @@
1
+ export declare class TicketRequestDto {
2
+ ticket: string;
3
+ }
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TicketRequestDto = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const swagger_1 = require("@nestjs/swagger");
6
+ const class_transformer_1 = require("class-transformer");
7
+ const class_validator_1 = require("class-validator");
8
+ class TicketRequestDto {
9
+ }
10
+ exports.TicketRequestDto = TicketRequestDto;
11
+ tslib_1.__decorate([
12
+ (0, swagger_1.ApiProperty)({
13
+ name: 'ticket',
14
+ description: 'ticket id',
15
+ required: true,
16
+ nullable: false,
17
+ }),
18
+ (0, class_validator_1.IsNotEmpty)(),
19
+ (0, class_validator_1.IsMongoId)(),
20
+ (0, class_transformer_1.Type)(() => String),
21
+ tslib_1.__metadata("design:type", String)
22
+ ], TicketRequestDto.prototype, "ticket", void 0);
23
+ //# sourceMappingURL=ticket.request.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ticket.request.dto.js","sourceRoot":"","sources":["../../../../../packages/ticket/src/dtos/ticket.request.dto.ts"],"names":[],"mappings":";;;;AAAA,6CAA8C;AAC9C,yDAAyC;AACzC,qDAAwD;AAExD,MAAa,gBAAgB;CAW5B;AAXD,4CAWC;AADC;IATC,IAAA,qBAAW,EAAC;QACX,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,WAAW;QACxB,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,KAAK;KAChB,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,2BAAS,GAAE;IACX,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,MAAM,CAAC;;gDACJ"}
@@ -0,0 +1,4 @@
1
+ import { CanActivate, ExecutionContext } from '@nestjs/common';
2
+ export declare class TicketNotFoundGuard implements CanActivate {
3
+ canActivate(context: ExecutionContext): Promise<boolean>;
4
+ }
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TicketNotFoundGuard = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const errors_1 = require("@tc-libs/errors");
6
+ const common_1 = require("@nestjs/common");
7
+ const ticket_entity_1 = require("../repository/entities/ticket.entity");
8
+ let TicketNotFoundGuard = class TicketNotFoundGuard {
9
+ async canActivate(context) {
10
+ const { __ticket } = context.switchToHttp().getRequest();
11
+ if (!__ticket) {
12
+ throw new errors_1.Api404EntityNotFoundError({ entity: ticket_entity_1.TicketEntity.name });
13
+ }
14
+ return true;
15
+ }
16
+ };
17
+ exports.TicketNotFoundGuard = TicketNotFoundGuard;
18
+ exports.TicketNotFoundGuard = TicketNotFoundGuard = tslib_1.__decorate([
19
+ (0, common_1.Injectable)()
20
+ ], TicketNotFoundGuard);
21
+ //# sourceMappingURL=ticket.not-found.guard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ticket.not-found.guard.js","sourceRoot":"","sources":["../../../../../packages/ticket/src/guards/ticket.not-found.guard.ts"],"names":[],"mappings":";;;;AAAA,4CAA4D;AAC5D,2CAA2E;AAC3E,wEAAoE;AAG7D,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAC9B,KAAK,CAAC,WAAW,CAAC,OAAyB;QACzC,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;QAEzD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,kCAAyB,CAAC,EAAE,MAAM,EAAE,4BAAY,CAAC,IAAI,EAAE,CAAC,CAAC;QACrE,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AAVY,kDAAmB;8BAAnB,mBAAmB;IAD/B,IAAA,mBAAU,GAAE;GACA,mBAAmB,CAU/B"}
@@ -0,0 +1,7 @@
1
+ import { CanActivate, ExecutionContext } from '@nestjs/common';
2
+ import { TicketService } from '../services/ticket.service';
3
+ export declare class TicketPutToRequestByUserGuard implements CanActivate {
4
+ private readonly _ticket;
5
+ constructor(_ticket: TicketService);
6
+ canActivate(context: ExecutionContext): Promise<boolean>;
7
+ }
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TicketPutToRequestByUserGuard = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const common_1 = require("@nestjs/common");
6
+ const ticket_service_1 = require("../services/ticket.service");
7
+ let TicketPutToRequestByUserGuard = class TicketPutToRequestByUserGuard {
8
+ constructor(_ticket) {
9
+ this._ticket = _ticket;
10
+ }
11
+ async canActivate(context) {
12
+ const request = context.switchToHttp().getRequest();
13
+ // deconstruct params and user
14
+ const { params, user } = request;
15
+ const { ticket } = params;
16
+ const check = await this._ticket.findOne({
17
+ _id: ticket,
18
+ user: user._id,
19
+ });
20
+ request.__ticket = check;
21
+ return true;
22
+ }
23
+ };
24
+ exports.TicketPutToRequestByUserGuard = TicketPutToRequestByUserGuard;
25
+ exports.TicketPutToRequestByUserGuard = TicketPutToRequestByUserGuard = tslib_1.__decorate([
26
+ (0, common_1.Injectable)(),
27
+ tslib_1.__metadata("design:paramtypes", [ticket_service_1.TicketService])
28
+ ], TicketPutToRequestByUserGuard);
29
+ //# sourceMappingURL=ticket.put-to-request-by-user.guard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ticket.put-to-request-by-user.guard.js","sourceRoot":"","sources":["../../../../../packages/ticket/src/guards/ticket.put-to-request-by-user.guard.ts"],"names":[],"mappings":";;;;AAAA,2CAA2E;AAE3E,+DAA2D;AAGpD,IAAM,6BAA6B,GAAnC,MAAM,6BAA6B;IACxC,YAA6B,OAAsB;QAAtB,YAAO,GAAP,OAAO,CAAe;IAAG,CAAC;IAEvD,KAAK,CAAC,WAAW,CAAC,OAAyB;QACzC,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;QACpD,8BAA8B;QAC9B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;QACjC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QAC1B,MAAM,KAAK,GAAc,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;YAClD,GAAG,EAAE,MAAM;YACX,IAAI,EAAE,IAAI,CAAC,GAAG;SACf,CAAC,CAAC;QACH,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC;QAEzB,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AAhBY,sEAA6B;wCAA7B,6BAA6B;IADzC,IAAA,mBAAU,GAAE;6CAE2B,8BAAa;GADxC,6BAA6B,CAgBzC"}
@@ -0,0 +1,7 @@
1
+ import { CanActivate, ExecutionContext } from '@nestjs/common';
2
+ import { TicketService } from '../services/ticket.service';
3
+ export declare class TicketPutToRequestGuard implements CanActivate {
4
+ private readonly ticketService;
5
+ constructor(ticketService: TicketService);
6
+ canActivate(context: ExecutionContext): Promise<boolean>;
7
+ }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TicketPutToRequestGuard = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const common_1 = require("@nestjs/common");
6
+ const ticket_service_1 = require("../services/ticket.service");
7
+ let TicketPutToRequestGuard = class TicketPutToRequestGuard {
8
+ constructor(ticketService) {
9
+ this.ticketService = ticketService;
10
+ }
11
+ async canActivate(context) {
12
+ const request = context.switchToHttp().getRequest();
13
+ const { params } = request;
14
+ const { ticket } = params;
15
+ const check = await this.ticketService.findById(ticket, {
16
+ join: true,
17
+ });
18
+ request.__ticket = check;
19
+ return true;
20
+ }
21
+ };
22
+ exports.TicketPutToRequestGuard = TicketPutToRequestGuard;
23
+ exports.TicketPutToRequestGuard = TicketPutToRequestGuard = tslib_1.__decorate([
24
+ (0, common_1.Injectable)(),
25
+ tslib_1.__metadata("design:paramtypes", [ticket_service_1.TicketService])
26
+ ], TicketPutToRequestGuard);
27
+ //# sourceMappingURL=ticket.put-to-request.guard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ticket.put-to-request.guard.js","sourceRoot":"","sources":["../../../../../packages/ticket/src/guards/ticket.put-to-request.guard.ts"],"names":[],"mappings":";;;;AAAA,2CAA2E;AAE3E,+DAA2D;AAGpD,IAAM,uBAAuB,GAA7B,MAAM,uBAAuB;IAClC,YAA6B,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;IAAG,CAAC;IAE7D,KAAK,CAAC,WAAW,CAAC,OAAyB;QACzC,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;QACpD,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAC3B,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QAE1B,MAAM,KAAK,GAAc,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,EAAE;YACjE,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;QACH,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC;QAEzB,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AAfY,0DAAuB;kCAAvB,uBAAuB;IADnC,IAAA,mBAAU,GAAE;6CAEiC,8BAAa;GAD9C,uBAAuB,CAenC"}
package/src/index.d.ts ADDED
@@ -0,0 +1,9 @@
1
+ export * from './ticket.module';
2
+ export * from './services/ticket.service';
3
+ export * from './constants/ticket.constant';
4
+ export * from './constants/ticket.permissions.constants';
5
+ export * from './serializations';
6
+ export * from './repository/entities/ticket.entity';
7
+ export * from './controllers/ticket.admin.controller';
8
+ export * from './controllers/ticket.public.controller';
9
+ export * from './dtos/ticket.create.dto';
package/src/index.js ADDED
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./ticket.module"), exports);
5
+ tslib_1.__exportStar(require("./services/ticket.service"), exports);
6
+ tslib_1.__exportStar(require("./constants/ticket.constant"), exports);
7
+ tslib_1.__exportStar(require("./constants/ticket.permissions.constants"), exports);
8
+ tslib_1.__exportStar(require("./serializations"), exports);
9
+ tslib_1.__exportStar(require("./repository/entities/ticket.entity"), exports);
10
+ tslib_1.__exportStar(require("./controllers/ticket.admin.controller"), exports);
11
+ tslib_1.__exportStar(require("./controllers/ticket.public.controller"), exports);
12
+ tslib_1.__exportStar(require("./dtos/ticket.create.dto"), exports);
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/ticket/src/index.ts"],"names":[],"mappings":";;;AAAA,0DAAgC;AAChC,oEAA0C;AAC1C,sEAA4C;AAC5C,mFAAyD;AACzD,2DAAiC;AACjC,8EAAoD;AACpD,gFAAsD;AACtD,iFAAuD;AACvD,mEAAyC"}
@@ -0,0 +1,44 @@
1
+ import { DATABASE_CREATED_AT_FIELD_NAME, DatabaseMongoEntityAbstract } from '@tc-libs/database';
2
+ import { TICKET_CATEGORY, TICKET_PRIORITY, TICKET_STATUS } from '../../constants/ticket.constant';
3
+ import { Document } from 'mongoose';
4
+ export declare const TicketDatabaseName = "tickets";
5
+ export declare class TicketCommentAuthor {
6
+ id: string;
7
+ name?: string;
8
+ }
9
+ export declare class TicketCommentEntity {
10
+ author: TicketCommentAuthor;
11
+ isOperator: boolean;
12
+ text: string;
13
+ [DATABASE_CREATED_AT_FIELD_NAME]?: Date;
14
+ }
15
+ export declare const TicketCommentSchema: import("mongoose").Schema<TicketCommentEntity, import("mongoose").Model<TicketCommentEntity, any, any, any, Document<unknown, any, TicketCommentEntity> & TicketCommentEntity & {
16
+ _id: import("mongoose").Types.ObjectId;
17
+ } & {
18
+ __v: number;
19
+ }, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, TicketCommentEntity, Document<unknown, {}, import("mongoose").FlatRecord<TicketCommentEntity>> & import("mongoose").FlatRecord<TicketCommentEntity> & {
20
+ _id: import("mongoose").Types.ObjectId;
21
+ } & {
22
+ __v: number;
23
+ }>;
24
+ export declare class TicketEntity extends DatabaseMongoEntityAbstract {
25
+ user: string;
26
+ operator?: string;
27
+ stars?: number;
28
+ status: TICKET_STATUS;
29
+ priority: TICKET_PRIORITY;
30
+ category: TICKET_CATEGORY;
31
+ title: string;
32
+ description: string;
33
+ comments: TicketCommentEntity[];
34
+ }
35
+ export declare const TicketSchema: import("mongoose").Schema<TicketEntity, import("mongoose").Model<TicketEntity, any, any, any, Document<unknown, any, TicketEntity> & TicketEntity & Required<{
36
+ _id: import("mongoose").Types.ObjectId;
37
+ }> & {
38
+ __v: number;
39
+ }, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, TicketEntity, Document<unknown, {}, import("mongoose").FlatRecord<TicketEntity>> & import("mongoose").FlatRecord<TicketEntity> & Required<{
40
+ _id: import("mongoose").Types.ObjectId;
41
+ }> & {
42
+ __v: number;
43
+ }>;
44
+ export type TicketDoc = TicketEntity & Document;
@@ -0,0 +1,142 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.TicketSchema = exports.TicketEntity = exports.TicketCommentSchema = exports.TicketCommentEntity = exports.TicketCommentAuthor = exports.TicketDatabaseName = void 0;
5
+ const tslib_1 = require("tslib");
6
+ const database_1 = require("@tc-libs/database");
7
+ const ticket_constant_1 = require("../../constants/ticket.constant");
8
+ const mongoose_1 = require("@nestjs/mongoose");
9
+ const mongoose_2 = require("mongoose");
10
+ exports.TicketDatabaseName = 'tickets';
11
+ class TicketCommentAuthor {
12
+ }
13
+ exports.TicketCommentAuthor = TicketCommentAuthor;
14
+ tslib_1.__decorate([
15
+ (0, mongoose_1.Prop)({
16
+ ref: 'UserEntity',
17
+ index: true,
18
+ required: true,
19
+ type: mongoose_2.SchemaTypes.ObjectId,
20
+ }),
21
+ tslib_1.__metadata("design:type", String)
22
+ ], TicketCommentAuthor.prototype, "id", void 0);
23
+ tslib_1.__decorate([
24
+ (0, mongoose_1.Prop)({
25
+ required: false,
26
+ }),
27
+ tslib_1.__metadata("design:type", String)
28
+ ], TicketCommentAuthor.prototype, "name", void 0);
29
+ let TicketCommentEntity = class TicketCommentEntity {
30
+ };
31
+ exports.TicketCommentEntity = TicketCommentEntity;
32
+ _a = database_1.DATABASE_CREATED_AT_FIELD_NAME;
33
+ tslib_1.__decorate([
34
+ (0, mongoose_1.Prop)({
35
+ type: TicketCommentAuthor,
36
+ }),
37
+ tslib_1.__metadata("design:type", TicketCommentAuthor)
38
+ ], TicketCommentEntity.prototype, "author", void 0);
39
+ tslib_1.__decorate([
40
+ (0, mongoose_1.Prop)({
41
+ required: true,
42
+ }),
43
+ tslib_1.__metadata("design:type", Boolean)
44
+ ], TicketCommentEntity.prototype, "isOperator", void 0);
45
+ tslib_1.__decorate([
46
+ (0, mongoose_1.Prop)({
47
+ required: true,
48
+ }),
49
+ tslib_1.__metadata("design:type", String)
50
+ ], TicketCommentEntity.prototype, "text", void 0);
51
+ tslib_1.__decorate([
52
+ (0, mongoose_1.Prop)({
53
+ required: false,
54
+ index: 'asc',
55
+ type: Date,
56
+ default: Date.now(),
57
+ }),
58
+ tslib_1.__metadata("design:type", Date)
59
+ ], TicketCommentEntity.prototype, _a, void 0);
60
+ exports.TicketCommentEntity = TicketCommentEntity = tslib_1.__decorate([
61
+ (0, mongoose_1.Schema)({ _id: true })
62
+ ], TicketCommentEntity);
63
+ exports.TicketCommentSchema = mongoose_1.SchemaFactory.createForClass(TicketCommentEntity);
64
+ let TicketEntity = class TicketEntity extends database_1.DatabaseMongoEntityAbstract {
65
+ };
66
+ exports.TicketEntity = TicketEntity;
67
+ tslib_1.__decorate([
68
+ (0, mongoose_1.Prop)({
69
+ ref: 'UserEntity',
70
+ index: true,
71
+ required: true,
72
+ type: mongoose_2.SchemaTypes.ObjectId,
73
+ }),
74
+ tslib_1.__metadata("design:type", String)
75
+ ], TicketEntity.prototype, "user", void 0);
76
+ tslib_1.__decorate([
77
+ (0, mongoose_1.Prop)({
78
+ ref: 'UserEntity',
79
+ required: false,
80
+ type: mongoose_2.SchemaTypes.ObjectId,
81
+ }),
82
+ tslib_1.__metadata("design:type", String)
83
+ ], TicketEntity.prototype, "operator", void 0);
84
+ tslib_1.__decorate([
85
+ (0, mongoose_1.Prop)({
86
+ required: false,
87
+ min: 1,
88
+ max: 5,
89
+ }),
90
+ tslib_1.__metadata("design:type", Number)
91
+ ], TicketEntity.prototype, "stars", void 0);
92
+ tslib_1.__decorate([
93
+ (0, mongoose_1.Prop)({
94
+ required: true,
95
+ enum: ticket_constant_1.TICKET_STATUS,
96
+ type: String,
97
+ }),
98
+ tslib_1.__metadata("design:type", String)
99
+ ], TicketEntity.prototype, "status", void 0);
100
+ tslib_1.__decorate([
101
+ (0, mongoose_1.Prop)({
102
+ required: true,
103
+ enum: ticket_constant_1.TICKET_PRIORITY,
104
+ type: String,
105
+ }),
106
+ tslib_1.__metadata("design:type", String)
107
+ ], TicketEntity.prototype, "priority", void 0);
108
+ tslib_1.__decorate([
109
+ (0, mongoose_1.Prop)({
110
+ required: true,
111
+ enum: ticket_constant_1.TICKET_CATEGORY,
112
+ type: String,
113
+ }),
114
+ tslib_1.__metadata("design:type", String)
115
+ ], TicketEntity.prototype, "category", void 0);
116
+ tslib_1.__decorate([
117
+ (0, mongoose_1.Prop)({
118
+ required: true,
119
+ }),
120
+ tslib_1.__metadata("design:type", String)
121
+ ], TicketEntity.prototype, "title", void 0);
122
+ tslib_1.__decorate([
123
+ (0, mongoose_1.Prop)({
124
+ required: true,
125
+ }),
126
+ tslib_1.__metadata("design:type", String)
127
+ ], TicketEntity.prototype, "description", void 0);
128
+ tslib_1.__decorate([
129
+ (0, mongoose_1.Prop)({
130
+ required: true,
131
+ type: [exports.TicketCommentSchema],
132
+ default: [],
133
+ }),
134
+ tslib_1.__metadata("design:type", Array)
135
+ ], TicketEntity.prototype, "comments", void 0);
136
+ exports.TicketEntity = TicketEntity = tslib_1.__decorate([
137
+ (0, database_1.DatabaseEntity)({
138
+ collection: exports.TicketDatabaseName,
139
+ })
140
+ ], TicketEntity);
141
+ exports.TicketSchema = mongoose_1.SchemaFactory.createForClass(TicketEntity);
142
+ //# sourceMappingURL=ticket.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ticket.entity.js","sourceRoot":"","sources":["../../../../../../packages/ticket/src/repository/entities/ticket.entity.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { DatabaseMongoRepositoryAbstract } from '@tc-libs/database';
2
+ import { Logger } from '@nestjs/common';
3
+ import { Connection, Model } from 'mongoose';
4
+ import { AppCacheService } from '@tc-libs/app-cache';
5
+ import { TicketEntity, TicketDoc } from '../entities/ticket.entity';
6
+ export declare class TicketRepository extends DatabaseMongoRepositoryAbstract<TicketEntity, TicketDoc> {
7
+ protected readonly ticketModel: Model<TicketEntity>;
8
+ protected readonly connection: Connection;
9
+ protected readonly _logger: Logger;
10
+ constructor(ticketModel: Model<TicketEntity>, connection: Connection, _cache: AppCacheService);
11
+ }
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ var TicketRepository_1;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.TicketRepository = void 0;
5
+ const tslib_1 = require("tslib");
6
+ const database_1 = require("@tc-libs/database");
7
+ const common_1 = require("@nestjs/common");
8
+ const mongoose_1 = require("mongoose");
9
+ const app_cache_1 = require("@tc-libs/app-cache");
10
+ const ticket_entity_1 = require("../entities/ticket.entity");
11
+ let TicketRepository = TicketRepository_1 = class TicketRepository extends database_1.DatabaseMongoRepositoryAbstract {
12
+ constructor(ticketModel, connection, _cache) {
13
+ super(ticketModel, connection, _cache);
14
+ this.ticketModel = ticketModel;
15
+ this.connection = connection;
16
+ this._logger = new common_1.Logger(TicketRepository_1.name);
17
+ }
18
+ };
19
+ exports.TicketRepository = TicketRepository;
20
+ exports.TicketRepository = TicketRepository = TicketRepository_1 = tslib_1.__decorate([
21
+ (0, common_1.Injectable)(),
22
+ tslib_1.__param(0, (0, database_1.DatabaseModel)(ticket_entity_1.TicketEntity.name)),
23
+ tslib_1.__param(1, (0, database_1.DatabaseConnection)()),
24
+ tslib_1.__metadata("design:paramtypes", [mongoose_1.Model,
25
+ mongoose_1.Connection,
26
+ app_cache_1.AppCacheService])
27
+ ], TicketRepository);
28
+ //# sourceMappingURL=ticket.repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ticket.repository.js","sourceRoot":"","sources":["../../../../../../packages/ticket/src/repository/repositories/ticket.repository.ts"],"names":[],"mappings":";;;;;AAAA,gDAI2B;AAC3B,2CAAoD;AACpD,uCAA6C;AAC7C,kDAAqD;AAErD,6DAAoE;AAG7D,IAAM,gBAAgB,wBAAtB,MAAM,gBAAiB,SAAQ,0CAGrC;IAEC,YAEE,WAAmD,EAEnD,UAAyC,EACzC,MAAuB;QAEvB,KAAK,CAAC,WAAW,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;QALpB,gBAAW,GAAX,WAAW,CAAqB;QAEhC,eAAU,GAAV,UAAU,CAAY;QALxB,YAAO,GAAW,IAAI,eAAM,CAAC,kBAAgB,CAAC,IAAI,CAAC,CAAC;IASvE,CAAC;CACF,CAAA;AAdY,4CAAgB;2BAAhB,gBAAgB;IAD5B,IAAA,mBAAU,GAAE;IAOR,mBAAA,IAAA,wBAAa,EAAC,4BAAY,CAAC,IAAI,CAAC,CAAA;IAEhC,mBAAA,IAAA,6BAAkB,GAAE,CAAA;6CADW,gBAAK;QAEN,qBAAU;QACjC,2BAAe;GAVd,gBAAgB,CAc5B"}
@@ -0,0 +1,2 @@
1
+ export declare class TicketRepositoryModule {
2
+ }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TicketRepositoryModule = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const common_1 = require("@nestjs/common");
6
+ const mongoose_1 = require("@nestjs/mongoose");
7
+ const ticket_entity_1 = require("./entities/ticket.entity");
8
+ const ticket_repository_1 = require("./repositories/ticket.repository");
9
+ let TicketRepositoryModule = class TicketRepositoryModule {
10
+ };
11
+ exports.TicketRepositoryModule = TicketRepositoryModule;
12
+ exports.TicketRepositoryModule = TicketRepositoryModule = tslib_1.__decorate([
13
+ (0, common_1.Module)({
14
+ providers: [ticket_repository_1.TicketRepository],
15
+ exports: [ticket_repository_1.TicketRepository],
16
+ controllers: [],
17
+ imports: [
18
+ mongoose_1.MongooseModule.forFeature([
19
+ {
20
+ name: ticket_entity_1.TicketEntity.name,
21
+ schema: ticket_entity_1.TicketSchema,
22
+ },
23
+ ]),
24
+ ],
25
+ })
26
+ ], TicketRepositoryModule);
27
+ //# sourceMappingURL=ticket.repository.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ticket.repository.module.js","sourceRoot":"","sources":["../../../../../packages/ticket/src/repository/ticket.repository.module.ts"],"names":[],"mappings":";;;;AAAA,2CAAwC;AACxC,+CAAkD;AAClD,4DAAsE;AACtE,wEAAoE;AAc7D,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;CAAG,CAAA;AAAzB,wDAAsB;iCAAtB,sBAAsB;IAblC,IAAA,eAAM,EAAC;QACN,SAAS,EAAE,CAAC,oCAAgB,CAAC;QAC7B,OAAO,EAAE,CAAC,oCAAgB,CAAC;QAC3B,WAAW,EAAE,EAAE;QACf,OAAO,EAAE;YACP,yBAAc,CAAC,UAAU,CAAC;gBACxB;oBACE,IAAI,EAAE,4BAAY,CAAC,IAAI;oBACvB,MAAM,EAAE,4BAAY;iBACrB;aACF,CAAC;SACH;KACF,CAAC;GACW,sBAAsB,CAAG"}
@@ -0,0 +1,2 @@
1
+ export * from './ticket.get.serialization';
2
+ export * from './ticket.list.serialization';
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./ticket.get.serialization"), exports);
5
+ tslib_1.__exportStar(require("./ticket.list.serialization"), exports);
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/ticket/src/serializations/index.ts"],"names":[],"mappings":";;;AAAA,qEAA2C;AAC3C,sEAA4C"}
@@ -0,0 +1,3 @@
1
+ import { TicketGetSerialization } from '../ticket.get.serialization';
2
+ export declare class TicketGetPublicSerialization extends TicketGetSerialization {
3
+ }
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TicketGetPublicSerialization = void 0;
4
+ const ticket_get_serialization_1 = require("../ticket.get.serialization");
5
+ class TicketGetPublicSerialization extends ticket_get_serialization_1.TicketGetSerialization {
6
+ }
7
+ exports.TicketGetPublicSerialization = TicketGetPublicSerialization;
8
+ //# sourceMappingURL=ticket.get.public.serialization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ticket.get.public.serialization.js","sourceRoot":"","sources":["../../../../../../packages/ticket/src/serializations/public/ticket.get.public.serialization.ts"],"names":[],"mappings":";;;AAAA,0EAAqE;AAErE,MAAa,4BAA6B,SAAQ,iDAAsB;CAAG;AAA3E,oEAA2E"}
@@ -0,0 +1,3 @@
1
+ import { TicketGetPublicSerialization } from './ticket.get.public.serialization';
2
+ export declare class TicketListPublicSerialization extends TicketGetPublicSerialization {
3
+ }
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TicketListPublicSerialization = void 0;
4
+ const ticket_get_public_serialization_1 = require("./ticket.get.public.serialization");
5
+ class TicketListPublicSerialization extends ticket_get_public_serialization_1.TicketGetPublicSerialization {
6
+ }
7
+ exports.TicketListPublicSerialization = TicketListPublicSerialization;
8
+ //# sourceMappingURL=ticket.list.public.serialization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ticket.list.public.serialization.js","sourceRoot":"","sources":["../../../../../../packages/ticket/src/serializations/public/ticket.list.public.serialization.ts"],"names":[],"mappings":";;;AAAA,uFAAiF;AAEjF,MAAa,6BAA8B,SAAQ,8DAA4B;CAAG;AAAlF,sEAAkF"}
@@ -0,0 +1,26 @@
1
+ import { ResponseIdSerialization } from '@tc-libs/response';
2
+ import { TICKET_CATEGORY, TICKET_PRIORITY, TICKET_STATUS } from '../constants/ticket.constant';
3
+ declare class TicketCommentAuthor {
4
+ readonly id: string;
5
+ readonly name: string;
6
+ }
7
+ declare class TicketComment {
8
+ readonly author: TicketCommentAuthor;
9
+ readonly isOperator: boolean;
10
+ readonly text: string;
11
+ readonly createdAt: Date;
12
+ }
13
+ export declare class TicketGetSerialization extends ResponseIdSerialization {
14
+ readonly user: string;
15
+ readonly operator: string;
16
+ readonly stars: number;
17
+ readonly status: TICKET_STATUS;
18
+ readonly priority: TICKET_PRIORITY;
19
+ readonly category: TICKET_CATEGORY;
20
+ readonly title: string;
21
+ readonly description: string;
22
+ readonly comments: TicketComment[];
23
+ readonly createdAt: Date;
24
+ readonly updatedAt: Date;
25
+ }
26
+ export {};