@hed-hog/address 0.0.272 → 0.0.273

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 (2) hide show
  1. package/README.md +82 -62
  2. package/package.json +4 -4
package/README.md CHANGED
@@ -3,10 +3,14 @@
3
3
 
4
4
  Módulo para gerenciamento de endereços no HedHog. Fornece endpoints para criar, listar, atualizar e deletar endereços, com suporte a múltiplos tipos de endereço e controle de endereço primário por tipo.
5
5
 
6
+ ---
7
+
6
8
  ## 1. Visão geral do módulo
7
9
 
8
10
  Este módulo gerencia informações de endereços, permitindo operações CRUD (criar, ler, atualizar, deletar) com suporte a múltiplos tipos de endereço (residencial, comercial, correspondência, etc.). Possui controle para garantir que apenas um endereço por tipo seja marcado como primário. Suporta busca, paginação, ordenação e filtros nos endpoints.
9
11
 
12
+ ---
13
+
10
14
  ## 2. Escopo e responsabilidades
11
15
 
12
16
  - Gerenciar dados de endereços com validação e consistência.
@@ -16,6 +20,8 @@ Este módulo gerencia informações de endereços, permitindo operações CRUD (
16
20
  - Garantir mensagens localizadas conforme idioma da requisição.
17
21
  - Integrar com sistema de roles para autorização.
18
22
 
23
+ ---
24
+
19
25
  ## 3. Endpoints
20
26
 
21
27
  ### 3.1 Listar Endereços
@@ -26,14 +32,14 @@ Este módulo gerencia informações de endereços, permitindo operações CRUD (
26
32
  - **Descrição:** Retorna lista paginada de endereços com busca, ordenação e seleção de campos.
27
33
  - **Query Parameters:**
28
34
 
29
- | Parâmetro | Tipo | Obrigatório | Descrição |
30
- |------------|----------------|-------------|---------------------------------------------------------------------------------------------|
31
- | `page` | number | Não | Número da página (padrão: 1) |
32
- | `pageSize` | number | Não | Quantidade de itens por página (padrão: 10) |
33
- | `search` | string | Não | Busca por texto (procura em id, tipo, país, estado, cidade, CEP, linha1 e linha2) |
34
- | `sortField`| string | Não | Campo para ordenação (padrão: id) |
35
- | `sortOrder`| `asc` \| `desc`| Não | Ordem de classificação (padrão: desc) |
36
- | `fields` | string | Não | Campos a retornar, separados por vírgula |
35
+ | Parâmetro | Tipo | Obrigatório | Descrição |
36
+ |-------------|-----------------|-------------|---------------------------------------------------------------------------------------------|
37
+ | `page` | number | Não | Número da página (padrão: 1) |
38
+ | `pageSize` | number | Não | Quantidade de itens por página (padrão: 10) |
39
+ | `search` | string | Não | Busca por texto (procura em id, tipo, país, estado, cidade, CEP, linha1 e linha2) |
40
+ | `sortField` | string | Não | Campo para ordenação (padrão: id) |
41
+ | `sortOrder` | `asc` \| `desc` | Não | Ordem de classificação (padrão: desc) |
42
+ | `fields` | string | Não | Campos a retornar, separados por vírgula |
37
43
 
38
44
  - **Resposta de Sucesso (200 OK):**
39
45
 
@@ -113,16 +119,16 @@ Este módulo gerencia informações de endereços, permitindo operações CRUD (
113
119
  - **Descrição:** Cria um novo endereço. Se `is_primary=true`, remove o status primário de outros endereços do mesmo tipo.
114
120
  - **Request Body:**
115
121
 
116
- | Campo | Tipo | Obrigatório | Descrição |
117
- |---------------|---------|-------------|---------------------------------------------------------------------------------------------|
118
- | `address_type`| enum | Sim | Tipo do endereço. Valores: `residential`, `commercial`, `correspondence`, `alternative`, `work`, `billing`, `shipping` |
119
- | `country_code`| string | Sim | Código do país (ex: "BR", "US", "ES") |
120
- | `state` | string | Sim | Nome do estado/província (ex: "SP", "RJ") |
121
- | `city` | string | Sim | Nome da cidade |
122
- | `postal_code` | string | Sim | CEP/código postal |
123
- | `line1` | string | Sim | Linha de endereço principal (rua, número, etc) |
124
- | `line2` | string | Não | Linha de endereço complementar (apartamento, complemento, etc) |
125
- | `is_primary` | boolean | Não | Define como endereço primário do tipo (padrão: false) |
122
+ | Campo | Tipo | Obrigatório | Descrição |
123
+ |----------------|---------|-------------|---------------------------------------------------------------------------------------------|
124
+ | `address_type` | enum | Sim | Tipo do endereço. Valores: `residential`, `commercial`, `correspondence`, `alternative`, `work`, `billing`, `shipping` |
125
+ | `country_code` | string | Sim | Código do país (ex: "BR", "US", "ES") |
126
+ | `state` | string | Sim | Nome do estado/província (ex: "SP", "RJ") |
127
+ | `city` | string | Sim | Nome da cidade |
128
+ | `postal_code` | string | Sim | CEP/código postal |
129
+ | `line1` | string | Sim | Linha de endereço principal (rua, número, etc) |
130
+ | `line2` | string | Não | Linha de endereço complementar (apartamento, complemento, etc) |
131
+ | `is_primary` | boolean | Não | Define como endereço primário do tipo (padrão: false) |
126
132
 
127
133
  - **Exemplo de Requisição:**
128
134
 
@@ -180,16 +186,16 @@ Content-Type: application/json
180
186
 
181
187
  - **Request Body:** (todos opcionais)
182
188
 
183
- | Campo | Tipo | Descrição |
184
- |---------------|---------|--------------------------------|
185
- | `address_type`| enum | Novo tipo do endereço |
186
- | `country_code`| string | Novo código do país |
187
- | `state` | string | Novo estado/província |
188
- | `city` | string | Nova cidade |
189
- | `postal_code` | string | Novo CEP/código postal |
190
- | `line1` | string | Nova linha de endereço principal |
191
- | `line2` | string | Nova linha de endereço complementar |
192
- | `is_primary` | boolean | Novo status de primário |
189
+ | Campo | Tipo | Descrição |
190
+ |----------------|---------|--------------------------------|
191
+ | `address_type` | enum | Novo tipo do endereço |
192
+ | `country_code` | string | Novo código do país |
193
+ | `state` | string | Novo estado/província |
194
+ | `city` | string | Nova cidade |
195
+ | `postal_code` | string | Novo CEP/código postal |
196
+ | `line1` | string | Nova linha de endereço principal |
197
+ | `line2` | string | Nova linha de endereço complementar |
198
+ | `is_primary` | boolean | Novo status de primário |
193
199
 
194
200
  - **Exemplo de Requisição:**
195
201
 
@@ -277,7 +283,10 @@ Content-Type: application/json
277
283
 
278
284
  - A autorização é baseada em roles/funções, protegida pelo decorator `@Role()`.
279
285
  - O usuário deve estar autenticado e possuir permissão para acessar a rota, conforme tabela `route` no banco.
280
- - Role específica para acesso: `admin-address` (Administrador de Endereços).
286
+ - Roles autorizadas para acesso aos endpoints:
287
+
288
+ - `admin`
289
+ - `admin-address` (Administrador de Endereços)
281
290
 
282
291
  ---
283
292
 
@@ -285,16 +294,16 @@ Content-Type: application/json
285
294
 
286
295
  ### CreateDTO (Criar Endereço)
287
296
 
288
- | Campo | Tipo | Obrigatório | Descrição |
289
- |---------------|---------|-------------|--------------------------------|
290
- | `address_type`| enum | Sim | Tipo do endereço (ver seção Tipos de Endereço) |
291
- | `country_code`| string | Sim | Código do país (ex: "BR") |
292
- | `state` | string | Sim | Estado/província |
293
- | `city` | string | Sim | Cidade |
294
- | `postal_code` | string | Sim | CEP/código postal |
295
- | `line1` | string | Sim | Linha principal do endereço |
296
- | `line2` | string | Não | Linha complementar |
297
- | `is_primary` | boolean | Não | Endereço primário do tipo (default: false) |
297
+ | Campo | Tipo | Obrigatório | Descrição |
298
+ |----------------|---------|-------------|--------------------------------|
299
+ | `address_type` | enum | Sim | Tipo do endereço (ver seção Tipos de Endereço) |
300
+ | `country_code` | string | Sim | Código do país (ex: "BR") |
301
+ | `state` | string | Sim | Estado/província |
302
+ | `city` | string | Sim | Cidade |
303
+ | `postal_code` | string | Sim | CEP/código postal |
304
+ | `line1` | string | Sim | Linha principal do endereço |
305
+ | `line2` | string | Não | Linha complementar |
306
+ | `is_primary` | boolean | Não | Endereço primário do tipo (default: false) |
298
307
 
299
308
  ### UpdateDTO (Atualizar Endereço)
300
309
 
@@ -332,26 +341,36 @@ Mensagens de erro são localizadas conforme header `Accept-Language`.
332
341
 
333
342
  - **Finalidade:** Armazenar informações de endereços com múltiplos tipos e controle de endereço primário.
334
343
 
335
- | Coluna | Tipo | Nulável | Default | Descrição |
336
- |---------------|------------|---------|-------------------|------------------------------------------------|
337
- | `id` | INT (PK) | Não | auto-increment | Identificador único do endereço |
338
- | `address_type`| ENUM | Não | - | Tipo do endereço (valores definidos abaixo) |
339
- | `country_code`| VARCHAR | Não | - | Código do país (ISO 3166-1 alpha-2) |
340
- | `state` | VARCHAR | Não | - | Estado ou província |
341
- | `city` | VARCHAR | Não | - | Cidade |
342
- | `postal_code` | VARCHAR | Não | - | CEP ou código postal |
343
- | `line1` | VARCHAR | Não | - | Linha principal do endereço |
344
- | `line2` | VARCHAR | Sim | NULL | Linha complementar |
345
- | `is_primary` | BOOLEAN | Não | false | Indica se é o endereço primário do tipo |
346
- | `created_at` | TIMESTAMP | Não | CURRENT_TIMESTAMP | Data e hora de criação |
347
- | `updated_at` | TIMESTAMP | Não | CURRENT_TIMESTAMP | Data e hora da última atualização |
344
+ | Coluna | Tipo | Nulável | Default | Descrição |
345
+ |----------------|------------|---------|-------------------|------------------------------------------------|
346
+ | `id` | INT (PK) | Não | auto-increment | Identificador único do endereço |
347
+ | `address_type` | ENUM | Não | - | Tipo do endereço (valores definidos abaixo) |
348
+ | `country_code` | VARCHAR | Não | - | Código do país (ISO 3166-1 alpha-2) |
349
+ | `state` | VARCHAR | Não | - | Estado ou província |
350
+ | `city` | VARCHAR | Não | - | Cidade |
351
+ | `postal_code` | VARCHAR | Não | - | CEP ou código postal |
352
+ | `line1` | VARCHAR | Não | - | Linha principal do endereço |
353
+ | `line2` | VARCHAR | Sim | NULL | Linha complementar |
354
+ | `is_primary` | BOOLEAN | Não | false | Indica se é o endereço primário do tipo |
355
+ | `created_at` | TIMESTAMP | Não | CURRENT_TIMESTAMP | Data e hora de criação |
356
+ | `updated_at` | TIMESTAMP | Não | CURRENT_TIMESTAMP | Data e hora da última atualização |
348
357
 
349
358
  #### Índices
350
359
 
351
- | Nome | Colunas | Único | Condição | Propósito |
352
- |------------------------|-----------------------|-------|--------------------|--------------------------------------------------------|
360
+ | Nome | Colunas | Único | Condição | Propósito |
361
+ |--------------------------|-----------------------|-------|--------------------|--------------------------------------------------------|
353
362
  | `idx_address_type_primary` | `address_type`, `is_primary` | Sim | `is_primary = true` | Garante apenas um endereço primário por tipo |
354
363
 
364
+ #### Enum `address_type` valores possíveis:
365
+
366
+ - `residential`
367
+ - `commercial`
368
+ - `correspondence`
369
+ - `alternative`
370
+ - `work`
371
+ - `billing`
372
+ - `shipping`
373
+
355
374
  ---
356
375
 
357
376
  ## 8. Regras de negócio relevantes
@@ -435,19 +454,20 @@ Authorization: Bearer <token>
435
454
 
436
455
  ## Tipos de Endereço
437
456
 
438
- | Valor | Descrição |
439
- |----------------|--------------------------------|
440
- | `residential` | Endereço residencial/doméstico |
441
- | `commercial` | Endereço comercial/empresarial |
457
+ | Valor | Descrição |
458
+ |-----------------|--------------------------------|
459
+ | `residential` | Endereço residencial/doméstico |
460
+ | `commercial` | Endereço comercial/empresarial |
442
461
  | `correspondence`| Endereço para correspondência |
443
- | `alternative` | Endereço alternativo/secundário|
444
- | `work` | Endereço de trabalho/empresa |
445
- | `billing` | Endereço para faturamento |
446
- | `shipping` | Endereço para entrega/despacho |
462
+ | `alternative` | Endereço alternativo/secundário|
463
+ | `work` | Endereço de trabalho/empresa |
464
+ | `billing` | Endereço para faturamento |
465
+ | `shipping` | Endereço para entrega/despacho |
447
466
 
448
467
  ---
449
468
 
450
469
  ## Licença
451
470
 
452
471
  Parte do projeto HedHog Lab v2.
472
+
453
473
  ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hed-hog/address",
3
- "version": "0.0.272",
3
+ "version": "0.0.273",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "dependencies": {
@@ -9,11 +9,11 @@
9
9
  "@nestjs/core": "^11",
10
10
  "@nestjs/jwt": "^11",
11
11
  "@nestjs/mapped-types": "*",
12
- "@hed-hog/core": "0.0.271",
12
+ "@hed-hog/core": "0.0.273",
13
13
  "@hed-hog/api": "0.0.4",
14
- "@hed-hog/api-pagination": "0.0.6",
15
- "@hed-hog/api-prisma": "0.0.5",
16
14
  "@hed-hog/api-locale": "0.0.13",
15
+ "@hed-hog/api-prisma": "0.0.5",
16
+ "@hed-hog/api-pagination": "0.0.6",
17
17
  "@hed-hog/api-types": "0.0.1"
18
18
  },
19
19
  "exports": {