@things-factory/id-rule-base 4.0.10 → 4.0.14

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.
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./sequence-type"), exports);
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/constants/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,kDAA+B"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SEQUENCE_TYPE = void 0;
4
+ exports.SEQUENCE_TYPE = {
5
+ PRODUCT_LABEL_COUNTER: 'PRODUCT_LABEL_COUNTER'
6
+ };
7
+ //# sourceMappingURL=sequence-type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sequence-type.js","sourceRoot":"","sources":["../../server/constants/sequence-type.ts"],"names":[],"mappings":";;;AAAa,QAAA,aAAa,GAAG;IAC3B,qBAAqB,EAAE,uBAAuB;CAC/C,CAAA"}
@@ -15,51 +15,54 @@ Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.SequenceMutation = void 0;
16
16
  const type_graphql_1 = require("type-graphql");
17
17
  const typeorm_1 = require("typeorm");
18
+ const constants_1 = require("../../constants");
18
19
  const sequence_1 = require("./sequence");
19
20
  let SequenceMutation = class SequenceMutation {
20
- async upsertSequence(pattern, counter, context) {
21
+ async upsertSequence(type, counter, bizplaceId, context) {
21
22
  const { domain } = context.state;
22
23
  const seqRepo = (0, typeorm_1.getRepository)(sequence_1.Sequence);
23
24
  const now = new Date();
24
25
  const expiresAt = new Date(now.setMonth(now.getMonth() + 12));
25
- pattern = `${pattern} [${getDateStr()}]`;
26
+ const patternObj = {
27
+ type,
28
+ date: new Date().toISOString().split('T')[0],
29
+ bizplaceId
30
+ };
31
+ const pattern = JSON.stringify(patternObj);
26
32
  const foundSeq = await seqRepo.findOne({
27
- where: { pattern, domain }
33
+ where: { pattern, type: constants_1.SEQUENCE_TYPE.PRODUCT_LABEL_COUNTER, domain }
28
34
  });
29
35
  if (foundSeq) {
30
- return await seqRepo.save(Object.assign(Object.assign({}, foundSeq), { seq: counter ? foundSeq.seq + counter : foundSeq.seq + 1, expiresAt }));
36
+ return await seqRepo.update({ id: foundSeq.id }, {
37
+ pattern,
38
+ seq: counter ? foundSeq.seq + counter : foundSeq.seq + 1,
39
+ expiresAt,
40
+ updatedAt: now
41
+ });
31
42
  }
32
43
  else {
33
44
  return await seqRepo.save({
34
45
  domain,
35
46
  pattern,
36
47
  seq: counter || 1,
37
- expiresAt
48
+ expiresAt,
49
+ type: constants_1.SEQUENCE_TYPE.PRODUCT_LABEL_COUNTER
38
50
  });
39
51
  }
40
52
  }
41
53
  };
42
54
  __decorate([
43
55
  (0, type_graphql_1.Mutation)(returns => sequence_1.Sequence),
44
- __param(0, (0, type_graphql_1.Arg)('pattern')),
56
+ __param(0, (0, type_graphql_1.Arg)('type')),
45
57
  __param(1, (0, type_graphql_1.Arg)('counter')),
46
- __param(2, (0, type_graphql_1.Ctx)()),
58
+ __param(2, (0, type_graphql_1.Arg)('bizplaceId')),
59
+ __param(3, (0, type_graphql_1.Ctx)()),
47
60
  __metadata("design:type", Function),
48
- __metadata("design:paramtypes", [String, Number, Object]),
61
+ __metadata("design:paramtypes", [String, Number, String, Object]),
49
62
  __metadata("design:returntype", Promise)
50
63
  ], SequenceMutation.prototype, "upsertSequence", null);
51
64
  SequenceMutation = __decorate([
52
65
  (0, type_graphql_1.Resolver)(sequence_1.Sequence)
53
66
  ], SequenceMutation);
54
67
  exports.SequenceMutation = SequenceMutation;
55
- function getDateStr() {
56
- const today = new Date();
57
- const year = today.getFullYear();
58
- const month = today.getMonth();
59
- const day = today.getDate();
60
- const yy = String(year).substr(String(year).length - 2);
61
- const mm = String(month + 1).padStart(2, '0');
62
- const dd = String(day).padStart(2, '0');
63
- return yy + mm + dd;
64
- }
65
68
  //# sourceMappingURL=sequence-mutation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sequence-mutation.js","sourceRoot":"","sources":["../../../server/service/sequence/sequence-mutation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,+CAA2D;AAC3D,qCAAuC;AAEvC,yCAAqC;AAGrC,IAAa,gBAAgB,GAA7B,MAAa,gBAAgB;IAE3B,KAAK,CAAC,cAAc,CAAiB,OAAe,EAAkB,OAAe,EAAS,OAAY;QACxG,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAChC,MAAM,OAAO,GAAG,IAAA,uBAAa,EAAC,mBAAQ,CAAC,CAAA;QACvC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;QACtB,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;QAE7D,OAAO,GAAG,GAAG,OAAO,KAAK,UAAU,EAAE,GAAG,CAAA;QAExC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC;YACrC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;SAC3B,CAAC,CAAA;QAEF,IAAI,QAAQ,EAAE;YACZ,OAAO,MAAM,OAAO,CAAC,IAAI,iCACpB,QAAQ,KACX,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,EACxD,SAAS,IACT,CAAA;SACH;aAAM;YACL,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC;gBACxB,MAAM;gBACN,OAAO;gBACP,GAAG,EAAE,OAAO,IAAI,CAAC;gBACjB,SAAS;aACV,CAAC,CAAA;SACH;IACH,CAAC;CACF,CAAA;AA3BC;IADC,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,mBAAQ,CAAC;IACR,WAAA,IAAA,kBAAG,EAAC,SAAS,CAAC,CAAA;IAAmB,WAAA,IAAA,kBAAG,EAAC,SAAS,CAAC,CAAA;IAAmB,WAAA,IAAA,kBAAG,GAAE,CAAA;;;;sDA0B5F;AA5BU,gBAAgB;IAD5B,IAAA,uBAAQ,EAAC,mBAAQ,CAAC;GACN,gBAAgB,CA6B5B;AA7BY,4CAAgB;AA+B7B,SAAS,UAAU;IACjB,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAA;IACxB,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,EAAE,CAAA;IAChC,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAA;IAC9B,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,EAAE,CAAA;IAE3B,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IACvD,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IAC7C,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IAEvC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;AACrB,CAAC"}
1
+ {"version":3,"file":"sequence-mutation.js","sourceRoot":"","sources":["../../../server/service/sequence/sequence-mutation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,+CAA2D;AAC3D,qCAAuC;AAEvC,+CAA+C;AAC/C,yCAAqC;AAGrC,IAAa,gBAAgB,GAA7B,MAAa,gBAAgB;IAE3B,KAAK,CAAC,cAAc,CACL,IAAY,EACT,OAAe,EACZ,UAAkB,EAC9B,OAAY;QAEnB,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAChC,MAAM,OAAO,GAAG,IAAA,uBAAa,EAAC,mBAAQ,CAAC,CAAA;QACvC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;QACtB,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;QAE7D,MAAM,UAAU,GAAQ;YACtB,IAAI;YACJ,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC5C,UAAU;SACX,CAAA;QAED,MAAM,OAAO,GAAW,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAA;QAElD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC;YACrC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,yBAAa,CAAC,qBAAqB,EAAE,MAAM,EAAE;SACtE,CAAC,CAAA;QAEF,IAAI,QAAQ,EAAE;YACZ,OAAO,MAAM,OAAO,CAAC,MAAM,CACzB,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,EACnB;gBACE,OAAO;gBACP,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC;gBACxD,SAAS;gBACT,SAAS,EAAE,GAAG;aACf,CACF,CAAA;SACF;aAAM;YACL,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC;gBACxB,MAAM;gBACN,OAAO;gBACP,GAAG,EAAE,OAAO,IAAI,CAAC;gBACjB,SAAS;gBACT,IAAI,EAAE,yBAAa,CAAC,qBAAqB;aAC1C,CAAC,CAAA;SACH;IACH,CAAC;CACF,CAAA;AA3CC;IADC,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,mBAAQ,CAAC;IAE3B,WAAA,IAAA,kBAAG,EAAC,MAAM,CAAC,CAAA;IACX,WAAA,IAAA,kBAAG,EAAC,SAAS,CAAC,CAAA;IACd,WAAA,IAAA,kBAAG,EAAC,YAAY,CAAC,CAAA;IACjB,WAAA,IAAA,kBAAG,GAAE,CAAA;;;;sDAsCP;AA5CU,gBAAgB;IAD5B,IAAA,uBAAQ,EAAC,mBAAQ,CAAC;GACN,gBAAgB,CA6C5B;AA7CY,4CAAgB"}
@@ -38,6 +38,11 @@ __decorate([
38
38
  (0, type_graphql_1.Field)(),
39
39
  __metadata("design:type", Number)
40
40
  ], Sequence.prototype, "seq", void 0);
41
+ __decorate([
42
+ (0, typeorm_1.Column)({ nullable: true }),
43
+ (0, type_graphql_1.Field)(),
44
+ __metadata("design:type", String)
45
+ ], Sequence.prototype, "type", void 0);
41
46
  __decorate([
42
47
  (0, typeorm_1.Column)(),
43
48
  (0, type_graphql_1.Field)(),
@@ -1 +1 @@
1
- {"version":3,"file":"sequence.js","sourceRoot":"","sources":["../../../server/service/sequence/sequence.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,+CAAoD;AACpD,qCAAsH;AAEtH,iDAA8C;AAO9C,IAAa,QAAQ,GAArB,MAAa,QAAQ;CA8BpB,CAAA;AA3BC;IAFC,IAAA,gCAAsB,EAAC,MAAM,CAAC;IAC9B,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAE,CAAC;;oCACC;AAInB;IAFC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,cAAM,CAAC;IACzB,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,cAAM,CAAC;kDACd,cAAM,oBAAN,cAAM;wCAAA;AAId;IAFC,IAAA,gBAAM,GAAE;IACR,IAAA,oBAAK,GAAE;;yCACO;AAMf;IAJC,IAAA,gBAAM,EAAC;QACN,IAAI,EAAE,UAAU;KACjB,CAAC;IACD,IAAA,oBAAK,GAAE;;qCACG;AAIX;IAFC,IAAA,gBAAM,GAAE;IACR,IAAA,oBAAK,GAAE;8BACG,IAAI;2CAAA;AAIf;IAFC,IAAA,0BAAgB,GAAE;IAClB,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BACf,IAAI;2CAAA;AAIf;IAFC,IAAA,0BAAgB,GAAE;IAClB,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BACf,IAAI;2CAAA;AA7BJ,QAAQ;IALpB,IAAA,gBAAM,GAAE;IACR,IAAA,eAAK,EAAC,eAAe,EAAE,CAAC,GAAa,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACtF,IAAA,eAAK,EAAC,eAAe,EAAE,CAAC,GAAa,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACxD,IAAA,eAAK,EAAC,eAAe,EAAE,CAAC,GAAa,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC1D,IAAA,yBAAU,GAAE;GACA,QAAQ,CA8BpB;AA9BY,4BAAQ"}
1
+ {"version":3,"file":"sequence.js","sourceRoot":"","sources":["../../../server/service/sequence/sequence.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,+CAAoD;AACpD,qCAAsH;AAEtH,iDAA8C;AAO9C,IAAa,QAAQ,GAArB,MAAa,QAAQ;CAmCpB,CAAA;AAhCC;IAFC,IAAA,gCAAsB,EAAC,MAAM,CAAC;IAC9B,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAE,CAAC;;oCACC;AAInB;IAFC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,cAAM,CAAC;IACzB,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,cAAM,CAAC;kDACd,cAAM,oBAAN,cAAM;wCAAA;AAId;IAFC,IAAA,gBAAM,GAAE;IACR,IAAA,oBAAK,GAAE;;yCACO;AAMf;IAJC,IAAA,gBAAM,EAAC;QACN,IAAI,EAAE,UAAU;KACjB,CAAC;IACD,IAAA,oBAAK,GAAE;;qCACG;AAKX;IAFC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC1B,IAAA,oBAAK,GAAE;;sCACI;AAIZ;IAFC,IAAA,gBAAM,GAAE;IACR,IAAA,oBAAK,GAAE;8BACG,IAAI;2CAAA;AAIf;IAFC,IAAA,0BAAgB,GAAE;IAClB,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BACf,IAAI;2CAAA;AAIf;IAFC,IAAA,0BAAgB,GAAE;IAClB,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BACf,IAAI;2CAAA;AAlCJ,QAAQ;IALpB,IAAA,gBAAM,GAAE;IACR,IAAA,eAAK,EAAC,eAAe,EAAE,CAAC,GAAa,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACtF,IAAA,eAAK,EAAC,eAAe,EAAE,CAAC,GAAa,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACxD,IAAA,eAAK,EAAC,eAAe,EAAE,CAAC,GAAa,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC1D,IAAA,yBAAU,GAAE;GACA,QAAQ,CAmCpB;AAnCY,4BAAQ"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@things-factory/id-rule-base",
3
- "version": "4.0.10",
3
+ "version": "4.0.14",
4
4
  "main": "dist-server/index.js",
5
5
  "browser": "client/index.js",
6
6
  "things-factory": true,
@@ -24,14 +24,14 @@
24
24
  "migration:create": "node ../../node_modules/typeorm/cli.js migration:create -d ./server/migrations"
25
25
  },
26
26
  "dependencies": {
27
- "@things-factory/grist-ui": "^4.0.10",
28
- "@things-factory/i18n-base": "^4.0.10",
29
- "@things-factory/setting-base": "^4.0.10",
30
- "@things-factory/shell": "^4.0.10",
27
+ "@things-factory/grist-ui": "^4.0.14",
28
+ "@things-factory/i18n-base": "^4.0.14",
29
+ "@things-factory/setting-base": "^4.0.14",
30
+ "@things-factory/shell": "^4.0.14",
31
31
  "codemirror": "^5.59.1"
32
32
  },
33
33
  "devDependencies": {
34
34
  "@types/codemirror": "^0.0.105"
35
35
  },
36
- "gitHead": "1815d5f855c0e4613bd286e1ca9e7d8fd632605a"
36
+ "gitHead": "956c782b5b2a6ff4c4e18f4a1bdcf778814f1b52"
37
37
  }
@@ -0,0 +1 @@
1
+ export * from './sequence-type'
@@ -0,0 +1,3 @@
1
+ export const SEQUENCE_TYPE = {
2
+ PRODUCT_LABEL_COUNTER: 'PRODUCT_LABEL_COUNTER'
3
+ }
@@ -1,49 +1,53 @@
1
1
  import { Arg, Ctx, Mutation, Resolver } from 'type-graphql'
2
2
  import { getRepository } from 'typeorm'
3
3
 
4
+ import { SEQUENCE_TYPE } from '../../constants'
4
5
  import { Sequence } from './sequence'
5
6
 
6
7
  @Resolver(Sequence)
7
8
  export class SequenceMutation {
8
9
  @Mutation(returns => Sequence)
9
- async upsertSequence(@Arg('pattern') pattern: string, @Arg('counter') counter: number, @Ctx() context: any) {
10
+ async upsertSequence(
11
+ @Arg('type') type: string,
12
+ @Arg('counter') counter: number,
13
+ @Arg('bizplaceId') bizplaceId: string,
14
+ @Ctx() context: any
15
+ ) {
10
16
  const { domain } = context.state
11
17
  const seqRepo = getRepository(Sequence)
12
18
  const now = new Date()
13
19
  const expiresAt = new Date(now.setMonth(now.getMonth() + 12))
14
20
 
15
- pattern = `${pattern} [${getDateStr()}]`
21
+ const patternObj: any = {
22
+ type,
23
+ date: new Date().toISOString().split('T')[0],
24
+ bizplaceId
25
+ }
26
+
27
+ const pattern: string = JSON.stringify(patternObj)
16
28
 
17
29
  const foundSeq = await seqRepo.findOne({
18
- where: { pattern, domain }
30
+ where: { pattern, type: SEQUENCE_TYPE.PRODUCT_LABEL_COUNTER, domain }
19
31
  })
20
32
 
21
33
  if (foundSeq) {
22
- return await seqRepo.save({
23
- ...foundSeq,
24
- seq: counter ? foundSeq.seq + counter : foundSeq.seq + 1,
25
- expiresAt
26
- })
34
+ return await seqRepo.update(
35
+ { id: foundSeq.id },
36
+ {
37
+ pattern,
38
+ seq: counter ? foundSeq.seq + counter : foundSeq.seq + 1,
39
+ expiresAt,
40
+ updatedAt: now
41
+ }
42
+ )
27
43
  } else {
28
44
  return await seqRepo.save({
29
45
  domain,
30
46
  pattern,
31
47
  seq: counter || 1,
32
- expiresAt
48
+ expiresAt,
49
+ type: SEQUENCE_TYPE.PRODUCT_LABEL_COUNTER
33
50
  })
34
51
  }
35
52
  }
36
53
  }
37
-
38
- function getDateStr() {
39
- const today = new Date()
40
- const year = today.getFullYear()
41
- const month = today.getMonth()
42
- const day = today.getDate()
43
-
44
- const yy = String(year).substr(String(year).length - 2)
45
- const mm = String(month + 1).padStart(2, '0')
46
- const dd = String(day).padStart(2, '0')
47
-
48
- return yy + mm + dd
49
- }
@@ -27,6 +27,11 @@ export class Sequence {
27
27
  @Field()
28
28
  seq: number
29
29
 
30
+ //// to differentiate between normal pattern sequence VS label counter ////
31
+ @Column({ nullable: true })
32
+ @Field()
33
+ type: string
34
+
30
35
  @Column()
31
36
  @Field()
32
37
  expiresAt: Date