@natrave/shared-entities 1.4.12 → 1.4.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.
- package/README.md +52 -0
- package/dist/app-auth/users/user.entity.d.ts +2 -0
- package/dist/app-auth/users/user.entity.d.ts.map +1 -1
- package/dist/app-auth/users/user.entity.js +4 -0
- package/dist/notifications/index.d.ts +1 -0
- package/dist/notifications/index.d.ts.map +1 -1
- package/dist/notifications/index.js +1 -0
- package/dist/notifications/notification-tokens/enums/notification-platform.enum.d.ts +6 -0
- package/dist/notifications/notification-tokens/enums/notification-platform.enum.d.ts.map +1 -0
- package/dist/notifications/notification-tokens/enums/notification-platform.enum.js +9 -0
- package/dist/notifications/notification-tokens/index.d.ts +3 -0
- package/dist/notifications/notification-tokens/index.d.ts.map +1 -0
- package/dist/notifications/notification-tokens/index.js +6 -0
- package/dist/notifications/notification-tokens/notification-token.entity.d.ts +14 -0
- package/dist/notifications/notification-tokens/notification-token.entity.d.ts.map +1 -0
- package/dist/notifications/notification-tokens/notification-token.entity.js +94 -0
- package/package.json +7 -7
package/README.md
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# @natrave/shared-entities
|
|
2
|
+
|
|
3
|
+
Biblioteca de entidades TypeORM utilizadas nos serviços da plataforma **NaTrave**. Agrupa modelos
|
|
4
|
+
que representam torneios, jogadores, times, pagamentos, notificações e outros domínios
|
|
5
|
+
compartilhados.
|
|
6
|
+
|
|
7
|
+
## Requisitos
|
|
8
|
+
|
|
9
|
+
- Node.js 20+
|
|
10
|
+
- `pnpm` como gerenciador de pacotes
|
|
11
|
+
|
|
12
|
+
## Instalação
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
pnpm install
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Build
|
|
19
|
+
|
|
20
|
+
Para gerar os arquivos JavaScript e declarações TypeScript no diretório `dist`:
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
pnpm run build
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Estrutura
|
|
27
|
+
|
|
28
|
+
As entidades estão organizadas por domínio dentro da pasta `src/`:
|
|
29
|
+
|
|
30
|
+
- `tournaments` – regras e entidades de torneios
|
|
31
|
+
- `players` – informações de jogadores
|
|
32
|
+
- `teams` – composição de times
|
|
33
|
+
- `facilities` – quadras e locais de jogo
|
|
34
|
+
- `notifications` – modelos relacionados a notificações
|
|
35
|
+
- `payments` – objetos de pagamento
|
|
36
|
+
- `coupons` – cupons e promoções
|
|
37
|
+
- `central-auth` e `app-auth` – entidades de autenticação
|
|
38
|
+
|
|
39
|
+
O arquivo `src/index.ts` reexporta todas as entidades para facilitar o consumo por outros pacotes.
|
|
40
|
+
|
|
41
|
+
## Lint
|
|
42
|
+
|
|
43
|
+
Para verificar o estilo de código com ESLint e Prettier:
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
pnpm run lint
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Contribuição
|
|
50
|
+
|
|
51
|
+
Pull requests são bem‑vindos. Certifique‑se de executar o lint antes de enviar mudanças e descreva
|
|
52
|
+
no CHANGELOG o que foi alterado.
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { NotificationToken } from '../../notifications';
|
|
1
2
|
import { Player } from '../../players';
|
|
2
3
|
import { RefreshToken } from '../refresh-tokens';
|
|
3
4
|
import { UserAuthProvider } from '../user-auth-providers';
|
|
@@ -20,6 +21,7 @@ export declare class User {
|
|
|
20
21
|
refreshTokens: RefreshToken[];
|
|
21
22
|
userAuthProviders: UserAuthProvider[];
|
|
22
23
|
player: Player;
|
|
24
|
+
notificationTokens: NotificationToken[];
|
|
23
25
|
prepareData(): void;
|
|
24
26
|
}
|
|
25
27
|
//# sourceMappingURL=user.entity.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.entity.d.ts","sourceRoot":"","sources":["../../../src/app-auth/users/user.entity.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAa7C,qBAIa,IAAI;IAIf,EAAE,EAAE,MAAM,CAAC;IAUX,SAAS,EAAE,MAAM,CAAC;IAOlB,SAAS,EAAE,IAAI,CAAC;IAOhB,SAAS,EAAE,IAAI,CAAC;IAQhB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;IASvB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAQpB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAQzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAQ3B,KAAK,EAAE,MAAM,CAAC;IAQd,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAQxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAStB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAUnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IASrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAKxB,aAAa,EAAE,YAAY,EAAE,CAAC;IAK9B,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IAGtC,MAAM,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"user.entity.d.ts","sourceRoot":"","sources":["../../../src/app-auth/users/user.entity.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAa7C,qBAIa,IAAI;IAIf,EAAE,EAAE,MAAM,CAAC;IAUX,SAAS,EAAE,MAAM,CAAC;IAOlB,SAAS,EAAE,IAAI,CAAC;IAOhB,SAAS,EAAE,IAAI,CAAC;IAQhB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;IASvB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAQpB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAQzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAQ3B,KAAK,EAAE,MAAM,CAAC;IAQd,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAQxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAStB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAUnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IASrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAKxB,aAAa,EAAE,YAAY,EAAE,CAAC;IAK9B,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IAGtC,MAAM,EAAE,MAAM,CAAC;IAGf,kBAAkB,EAAE,iBAAiB,EAAE,CAAC;IAMxC,WAAW,IAAI,IAAI;CAGpB"}
|
|
@@ -20,6 +20,7 @@ import {
|
|
|
20
20
|
Unique,
|
|
21
21
|
UpdateDateColumn
|
|
22
22
|
} from "typeorm";
|
|
23
|
+
import { NotificationToken } from "../../notifications/index.js";
|
|
23
24
|
import { Player } from "../../players/index.js";
|
|
24
25
|
import { RefreshToken } from "../refresh-tokens/index.js";
|
|
25
26
|
import { UserAuthProvider } from "../user-auth-providers/index.js";
|
|
@@ -155,6 +156,9 @@ __decorateClass([
|
|
|
155
156
|
__decorateClass([
|
|
156
157
|
OneToOne(() => Player, (player) => player.user, { onDelete: "CASCADE" })
|
|
157
158
|
], User.prototype, "player", 2);
|
|
159
|
+
__decorateClass([
|
|
160
|
+
OneToMany(() => NotificationToken, (token) => token.user)
|
|
161
|
+
], User.prototype, "notificationTokens", 2);
|
|
158
162
|
__decorateClass([
|
|
159
163
|
BeforeInsert()
|
|
160
164
|
], User.prototype, "prepareData", 1);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/notifications/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/notifications/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAElC,cAAc,uBAAuB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notification-platform.enum.d.ts","sourceRoot":"","sources":["../../../../src/notifications/notification-tokens/enums/notification-platform.enum.ts"],"names":[],"mappings":"AAAA,oBAAY,oBAAoB;IAC9B,OAAO,YAAY;IACnB,GAAG,QAAQ;IACX,GAAG,QAAQ;CACZ"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
var NotificationPlatform = /* @__PURE__ */ ((NotificationPlatform2) => {
|
|
2
|
+
NotificationPlatform2["ANDROID"] = "android";
|
|
3
|
+
NotificationPlatform2["IOS"] = "ios";
|
|
4
|
+
NotificationPlatform2["WEB"] = "web";
|
|
5
|
+
return NotificationPlatform2;
|
|
6
|
+
})(NotificationPlatform || {});
|
|
7
|
+
export {
|
|
8
|
+
NotificationPlatform
|
|
9
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/notifications/notification-tokens/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { User } from '../../app-auth';
|
|
2
|
+
import { NotificationPlatform } from './enums/notification-platform.enum';
|
|
3
|
+
export declare class NotificationToken {
|
|
4
|
+
id: string;
|
|
5
|
+
token: string;
|
|
6
|
+
platform: NotificationPlatform;
|
|
7
|
+
appVersion: string | null;
|
|
8
|
+
isRevoked: boolean;
|
|
9
|
+
createdAt: Date;
|
|
10
|
+
lastSeenAt: Date;
|
|
11
|
+
userId: string;
|
|
12
|
+
user: User;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=notification-token.entity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notification-token.entity.d.ts","sourceRoot":"","sources":["../../../src/notifications/notification-tokens/notification-token.entity.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAEtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAY1E,qBAGa,iBAAiB;IAI5B,EAAE,EAAE,MAAM,CAAC;IAQX,KAAK,EAAE,MAAM,CAAC;IAOd,QAAQ,EAAE,oBAAoB,CAAC;IAS/B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAQ1B,SAAS,EAAE,OAAO,CAAC;IAOnB,SAAS,EAAE,IAAI,CAAC;IAOhB,UAAU,EAAE,IAAI,CAAC;IASjB,MAAM,EAAE,MAAM,CAAC;IAKf,IAAI,EAAE,IAAI,CAAC;CACZ"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __decorateClass = (decorators, target, key, kind) => {
|
|
4
|
+
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
|
5
|
+
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
6
|
+
if (decorator = decorators[i])
|
|
7
|
+
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
|
8
|
+
if (kind && result) __defProp(target, key, result);
|
|
9
|
+
return result;
|
|
10
|
+
};
|
|
11
|
+
import {
|
|
12
|
+
Column,
|
|
13
|
+
CreateDateColumn,
|
|
14
|
+
Entity,
|
|
15
|
+
Index,
|
|
16
|
+
ManyToOne,
|
|
17
|
+
PrimaryGeneratedColumn,
|
|
18
|
+
UpdateDateColumn
|
|
19
|
+
} from "typeorm";
|
|
20
|
+
import { User } from "../../app-auth/index.js";
|
|
21
|
+
import { NotificationPlatform } from "./enums/notification-platform.enum.js";
|
|
22
|
+
let NotificationToken = class {
|
|
23
|
+
};
|
|
24
|
+
__decorateClass([
|
|
25
|
+
PrimaryGeneratedColumn("uuid", {
|
|
26
|
+
comment: "Identificador \xFAnico do token (UUID)."
|
|
27
|
+
})
|
|
28
|
+
], NotificationToken.prototype, "id", 2);
|
|
29
|
+
__decorateClass([
|
|
30
|
+
Column({
|
|
31
|
+
name: "token",
|
|
32
|
+
type: "varchar",
|
|
33
|
+
length: 255,
|
|
34
|
+
comment: "Registration token gerado pelo Firebase para o dispositivo."
|
|
35
|
+
})
|
|
36
|
+
], NotificationToken.prototype, "token", 2);
|
|
37
|
+
__decorateClass([
|
|
38
|
+
Column({
|
|
39
|
+
type: "enum",
|
|
40
|
+
enum: NotificationPlatform,
|
|
41
|
+
comment: "Plataforma do dispositivo."
|
|
42
|
+
})
|
|
43
|
+
], NotificationToken.prototype, "platform", 2);
|
|
44
|
+
__decorateClass([
|
|
45
|
+
Column({
|
|
46
|
+
name: "app_version",
|
|
47
|
+
type: "varchar",
|
|
48
|
+
length: 32,
|
|
49
|
+
nullable: true,
|
|
50
|
+
comment: "Vers\xE3o do app no momento do cadastro/refresh."
|
|
51
|
+
})
|
|
52
|
+
], NotificationToken.prototype, "appVersion", 2);
|
|
53
|
+
__decorateClass([
|
|
54
|
+
Column({
|
|
55
|
+
name: "is_revoked",
|
|
56
|
+
type: "bool",
|
|
57
|
+
default: false,
|
|
58
|
+
comment: "Indica se o token foi revogado (logout, erro 404/410 do FCM)."
|
|
59
|
+
})
|
|
60
|
+
], NotificationToken.prototype, "isRevoked", 2);
|
|
61
|
+
__decorateClass([
|
|
62
|
+
CreateDateColumn({
|
|
63
|
+
name: "created_at",
|
|
64
|
+
type: "timestamptz",
|
|
65
|
+
comment: "Data de cria\xE7\xE3o do token."
|
|
66
|
+
})
|
|
67
|
+
], NotificationToken.prototype, "createdAt", 2);
|
|
68
|
+
__decorateClass([
|
|
69
|
+
UpdateDateColumn({
|
|
70
|
+
name: "last_seen_at",
|
|
71
|
+
type: "timestamptz",
|
|
72
|
+
comment: "\xDAltima vez que este token foi visto (refresh ou push bem-sucedido)."
|
|
73
|
+
})
|
|
74
|
+
], NotificationToken.prototype, "lastSeenAt", 2);
|
|
75
|
+
__decorateClass([
|
|
76
|
+
Column({
|
|
77
|
+
name: "user_id",
|
|
78
|
+
type: "uuid",
|
|
79
|
+
comment: "FK users.id"
|
|
80
|
+
})
|
|
81
|
+
], NotificationToken.prototype, "userId", 2);
|
|
82
|
+
__decorateClass([
|
|
83
|
+
ManyToOne(() => User, (user) => user.notificationTokens, {
|
|
84
|
+
onDelete: "CASCADE"
|
|
85
|
+
})
|
|
86
|
+
], NotificationToken.prototype, "user", 2);
|
|
87
|
+
NotificationToken = __decorateClass([
|
|
88
|
+
Entity("notification_tokens"),
|
|
89
|
+
Index("IDX_notification_tokens_token", ["token"], { unique: true }),
|
|
90
|
+
Index("IDX_notification_tokens_user", ["userId"])
|
|
91
|
+
], NotificationToken);
|
|
92
|
+
export {
|
|
93
|
+
NotificationToken
|
|
94
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@natrave/shared-entities",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.14",
|
|
4
4
|
"description": "Entidades compartilhadass da NaTrave",
|
|
5
5
|
"module": "dist/index.js",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -27,10 +27,10 @@
|
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"@changesets/cli": "^2.29.5",
|
|
29
29
|
"@eslint/js": "^9.30.1",
|
|
30
|
-
"@typescript-eslint/eslint-plugin": "^8.
|
|
31
|
-
"@typescript-eslint/parser": "^8.
|
|
32
|
-
"esbuild": "^0.25.
|
|
33
|
-
"eslint": "^9.30.
|
|
30
|
+
"@typescript-eslint/eslint-plugin": "^8.36.0",
|
|
31
|
+
"@typescript-eslint/parser": "^8.36.0",
|
|
32
|
+
"esbuild": "^0.25.6",
|
|
33
|
+
"eslint": "^9.30.1",
|
|
34
34
|
"eslint-config-prettier": "^10.1.5",
|
|
35
35
|
"eslint-import-resolver-typescript": "^4.4.4",
|
|
36
36
|
"eslint-plugin-import": "^2.32.0",
|
|
@@ -45,8 +45,8 @@
|
|
|
45
45
|
"dependencies": {
|
|
46
46
|
"@natrave/auth-service-types": "^1.1.63",
|
|
47
47
|
"@natrave/facility-service-types": "^0.0.9",
|
|
48
|
-
"@natrave/notification-service-types": "^1.1.
|
|
49
|
-
"@natrave/tournaments-service-types": "^1.2.
|
|
48
|
+
"@natrave/notification-service-types": "^1.1.70",
|
|
49
|
+
"@natrave/tournaments-service-types": "^1.2.36",
|
|
50
50
|
"reflect-metadata": "^0.2.2",
|
|
51
51
|
"typeorm": "^0.3.25"
|
|
52
52
|
},
|