@hed-hog/contact-us 0.0.274 → 0.0.276
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 +101 -55
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -16,20 +16,28 @@ O módulo `@hed-hog/contact-us` é responsável pela gestão das mensagens envia
|
|
|
16
16
|
|
|
17
17
|
### GET /contact-us/settings
|
|
18
18
|
|
|
19
|
-
- **
|
|
20
|
-
- **
|
|
21
|
-
- **
|
|
22
|
-
- **
|
|
19
|
+
- **Método:** GET
|
|
20
|
+
- **Autenticação:** Pública
|
|
21
|
+
- **Descrição:** Retorna as configurações relacionadas ao contato, como telefone e e-mail de contato.
|
|
22
|
+
- **Parâmetros:** Nenhum
|
|
23
|
+
- **Resposta:**
|
|
24
|
+
```json
|
|
25
|
+
{
|
|
26
|
+
"contact-us-phone": "string",
|
|
27
|
+
"contact-us-email": "string"
|
|
28
|
+
}
|
|
29
|
+
```
|
|
23
30
|
- **Erros:** Nenhum específico.
|
|
24
31
|
|
|
25
32
|
---
|
|
26
33
|
|
|
27
34
|
### GET /contact-us/stats
|
|
28
35
|
|
|
29
|
-
- **
|
|
30
|
-
- **
|
|
31
|
-
- **
|
|
32
|
-
- **
|
|
36
|
+
- **Método:** GET
|
|
37
|
+
- **Autenticação:** Requer papel `admin` ou `admin-contact-us`
|
|
38
|
+
- **Descrição:** Retorna estatísticas das mensagens de contato, incluindo totais por status.
|
|
39
|
+
- **Parâmetros:** Nenhum
|
|
40
|
+
- **Resposta:**
|
|
33
41
|
```json
|
|
34
42
|
{
|
|
35
43
|
"total": number,
|
|
@@ -38,34 +46,67 @@ O módulo `@hed-hog/contact-us` é responsável pela gestão das mensagens envia
|
|
|
38
46
|
"totalProgress": number,
|
|
39
47
|
"totalArchived": number
|
|
40
48
|
}
|
|
41
|
-
```
|
|
49
|
+
```
|
|
42
50
|
- **Erros:** Nenhum específico.
|
|
43
51
|
|
|
44
52
|
---
|
|
45
53
|
|
|
46
54
|
### GET /contact-us/:id
|
|
47
55
|
|
|
48
|
-
- **
|
|
49
|
-
- **
|
|
50
|
-
- **
|
|
51
|
-
|
|
52
|
-
-
|
|
53
|
-
- **
|
|
56
|
+
- **Método:** GET
|
|
57
|
+
- **Autenticação:** Requer papel `admin` ou `admin-contact-us`
|
|
58
|
+
- **Descrição:** Retorna os detalhes de uma mensagem de contato pelo seu ID.
|
|
59
|
+
- **Parâmetros:**
|
|
60
|
+
- `id` (path): número inteiro identificador da mensagem.
|
|
61
|
+
- **Resposta:** Objeto com os dados completos da mensagem, incluindo usuário e resposta, exemplo:
|
|
62
|
+
```json
|
|
63
|
+
{
|
|
64
|
+
"id": number,
|
|
65
|
+
"name": "string",
|
|
66
|
+
"email": "string",
|
|
67
|
+
"message": "string",
|
|
68
|
+
"response": "string | null",
|
|
69
|
+
"status": "new" | "progress" | "answered" | "archived",
|
|
70
|
+
"created_at": "string (datetime)",
|
|
71
|
+
"updated_at": "string (datetime)",
|
|
72
|
+
"response_at": "string (datetime) | null",
|
|
73
|
+
"user_id": number | null,
|
|
74
|
+
"response_id": number | null,
|
|
75
|
+
"user_contact_us_response_idTouser": object,
|
|
76
|
+
"user_contact_us_user_idTouser": object
|
|
77
|
+
}
|
|
78
|
+
```
|
|
79
|
+
- **Erros:**
|
|
54
80
|
- `404 Not Found`: Mensagem não encontrada.
|
|
55
81
|
|
|
56
82
|
---
|
|
57
83
|
|
|
58
84
|
### GET /contact-us
|
|
59
85
|
|
|
60
|
-
- **
|
|
61
|
-
- **
|
|
62
|
-
- **
|
|
63
|
-
|
|
64
|
-
-
|
|
65
|
-
-
|
|
86
|
+
- **Método:** GET
|
|
87
|
+
- **Autenticação:** Requer papel `admin` ou `admin-contact-us`
|
|
88
|
+
- **Descrição:** Lista mensagens de contato com paginação e filtro opcional por status e busca textual.
|
|
89
|
+
- **Query Parameters:**
|
|
90
|
+
- `status` (string, opcional): filtro por status (`new`, `progress`, `answered`, `archived`, `all`).
|
|
91
|
+
- Parâmetros de paginação via `@hed-hog/api-pagination` (ex: `take`, `skip`, `search`).
|
|
92
|
+
- **Resposta:**
|
|
66
93
|
```json
|
|
67
94
|
{
|
|
68
|
-
"data": [
|
|
95
|
+
"data": [
|
|
96
|
+
{
|
|
97
|
+
"id": number,
|
|
98
|
+
"name": "string",
|
|
99
|
+
"email": "string",
|
|
100
|
+
"message": "string",
|
|
101
|
+
"response": "string | null",
|
|
102
|
+
"status": "new" | "progress" | "answered" | "archived",
|
|
103
|
+
"created_at": "string (datetime)",
|
|
104
|
+
"updated_at": "string (datetime)",
|
|
105
|
+
"response_at": "string (datetime) | null",
|
|
106
|
+
"user_id": number | null,
|
|
107
|
+
"response_id": number | null
|
|
108
|
+
}
|
|
109
|
+
],
|
|
69
110
|
"total": number,
|
|
70
111
|
"page": number,
|
|
71
112
|
"pageSize": number,
|
|
@@ -73,75 +114,79 @@ O módulo `@hed-hog/contact-us` é responsável pela gestão das mensagens envia
|
|
|
73
114
|
"next": number | null,
|
|
74
115
|
"lastPage": number
|
|
75
116
|
}
|
|
76
|
-
```
|
|
117
|
+
```
|
|
77
118
|
- **Erros:** Nenhum específico.
|
|
78
119
|
|
|
79
120
|
---
|
|
80
121
|
|
|
81
122
|
### DELETE /contact-us/:id
|
|
82
123
|
|
|
83
|
-
- **
|
|
84
|
-
- **
|
|
85
|
-
- **
|
|
86
|
-
|
|
87
|
-
-
|
|
88
|
-
- **
|
|
124
|
+
- **Método:** DELETE
|
|
125
|
+
- **Autenticação:** Requer papel `admin` ou `admin-contact-us`
|
|
126
|
+
- **Descrição:** Exclui uma mensagem de contato pelo seu ID.
|
|
127
|
+
- **Parâmetros:**
|
|
128
|
+
- `id` (path): número inteiro identificador da mensagem.
|
|
129
|
+
- **Resposta:** Objeto da mensagem excluída (mesma estrutura do objeto mensagem).
|
|
130
|
+
- **Erros:**
|
|
89
131
|
- `404 Not Found`: Mensagem não encontrada.
|
|
90
132
|
|
|
91
133
|
---
|
|
92
134
|
|
|
93
135
|
### PATCH /contact-us/status/:id
|
|
94
136
|
|
|
95
|
-
- **
|
|
96
|
-
- **
|
|
97
|
-
- **
|
|
98
|
-
|
|
99
|
-
-
|
|
137
|
+
- **Método:** PATCH
|
|
138
|
+
- **Autenticação:** Requer papel `admin` ou `admin-contact-us`
|
|
139
|
+
- **Descrição:** Atualiza o status de uma mensagem de contato.
|
|
140
|
+
- **Parâmetros:**
|
|
141
|
+
- `id` (path): número inteiro identificador da mensagem.
|
|
142
|
+
- **Body:**
|
|
100
143
|
```json
|
|
101
144
|
{
|
|
102
145
|
"status": "new" | "progress" | "answered" | "archived"
|
|
103
146
|
}
|
|
104
|
-
```
|
|
105
|
-
- **Resposta:** Objeto da mensagem atualizada.
|
|
106
|
-
- **Erros:**
|
|
107
|
-
- `404 Not Found`: Mensagem não encontrada.
|
|
147
|
+
```
|
|
148
|
+
- **Resposta:** Objeto da mensagem atualizada (mesma estrutura do objeto mensagem).
|
|
149
|
+
- **Erros:**
|
|
150
|
+
- `404 Not Found`: Mensagem não encontrada.
|
|
108
151
|
- `400 Bad Request`: Status inválido.
|
|
109
152
|
|
|
110
153
|
---
|
|
111
154
|
|
|
112
155
|
### POST /contact-us/response/:id
|
|
113
156
|
|
|
114
|
-
- **
|
|
115
|
-
- **
|
|
116
|
-
- **
|
|
117
|
-
|
|
118
|
-
-
|
|
157
|
+
- **Método:** POST
|
|
158
|
+
- **Autenticação:** Requer papel `admin` ou `admin-contact-us`
|
|
159
|
+
- **Descrição:** Envia uma resposta para uma mensagem de contato e notifica o usuário por e-mail.
|
|
160
|
+
- **Parâmetros:**
|
|
161
|
+
- `id` (path): número inteiro identificador da mensagem.
|
|
162
|
+
- **Body:**
|
|
119
163
|
```json
|
|
120
164
|
{
|
|
121
165
|
"response": "string"
|
|
122
166
|
}
|
|
123
|
-
```
|
|
124
|
-
- **Resposta:** Texto da resposta enviada.
|
|
125
|
-
- **Erros:**
|
|
126
|
-
- `404 Not Found`: Mensagem não encontrada.
|
|
167
|
+
```
|
|
168
|
+
- **Resposta:** Texto da resposta enviada.
|
|
169
|
+
- **Erros:**
|
|
170
|
+
- `404 Not Found`: Mensagem não encontrada.
|
|
127
171
|
- `400 Bad Request`: Resposta inválida.
|
|
128
172
|
|
|
129
173
|
---
|
|
130
174
|
|
|
131
175
|
### POST /contact-us
|
|
132
176
|
|
|
133
|
-
- **
|
|
134
|
-
- **
|
|
135
|
-
- **
|
|
177
|
+
- **Método:** POST
|
|
178
|
+
- **Autenticação:** Pública
|
|
179
|
+
- **Descrição:** Cria uma nova mensagem de contato.
|
|
180
|
+
- **Body:**
|
|
136
181
|
```json
|
|
137
182
|
{
|
|
138
183
|
"name": "string",
|
|
139
184
|
"email": "string (email válido)",
|
|
140
185
|
"message": "string"
|
|
141
186
|
}
|
|
142
|
-
```
|
|
143
|
-
- **Resposta:** Objeto da mensagem criada.
|
|
144
|
-
- **Erros:**
|
|
187
|
+
```
|
|
188
|
+
- **Resposta:** Objeto da mensagem criada (mesma estrutura do objeto mensagem).
|
|
189
|
+
- **Erros:**
|
|
145
190
|
- `400 Bad Request`: E-mail inválido ou dados inválidos.
|
|
146
191
|
|
|
147
192
|
## 4. Regras de autenticação e autorização
|
|
@@ -259,15 +304,16 @@ enums:
|
|
|
259
304
|
## 8. Regras de negócio relevantes
|
|
260
305
|
|
|
261
306
|
- O status inicial de uma mensagem é sempre `new`.
|
|
262
|
-
- A resposta a uma mensagem atualiza o status para `answered
|
|
307
|
+
- A resposta a uma mensagem atualiza o status para `answered`, registra o usuário que respondeu e a data da resposta.
|
|
263
308
|
- Mensagens podem ser filtradas por status e texto em nome, e-mail, mensagem ou resposta.
|
|
264
|
-
- Ao criar uma mensagem, se o e-mail estiver associado a um usuário, o `user_id` é vinculado.
|
|
309
|
+
- Ao criar uma mensagem, se o e-mail estiver associado a um usuário, o `user_id` é vinculado automaticamente.
|
|
265
310
|
- Envio automático de e-mails:
|
|
266
311
|
- Confirmação para o cliente que enviou a mensagem.
|
|
267
312
|
- Notificação para o e-mail configurado em `contact-us-email-to`.
|
|
268
313
|
- Resposta enviada ao cliente quando um administrador responde.
|
|
269
314
|
- Validação rigorosa do e-mail no momento da criação da mensagem.
|
|
270
315
|
- Exclusão de mensagens remove o registro do banco.
|
|
316
|
+
- Atualização de status aceita somente os valores válidos do enum, ignorando o valor `all` (que é convertido para `new` internamente).
|
|
271
317
|
|
|
272
318
|
## 9. Guia rápido de uso (exemplos)
|
|
273
319
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hed-hog/contact-us",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.276",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"dependencies": {
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"@nestjs/jwt": "^11",
|
|
11
11
|
"@nestjs/mapped-types": "*",
|
|
12
12
|
"@hed-hog/api-locale": "0.0.13",
|
|
13
|
-
"@hed-hog/core": "0.0.
|
|
13
|
+
"@hed-hog/core": "0.0.276",
|
|
14
14
|
"@hed-hog/api-prisma": "0.0.5",
|
|
15
15
|
"@hed-hog/api-pagination": "0.0.6",
|
|
16
16
|
"@hed-hog/api": "0.0.4"
|