... | ... | @@ -285,6 +285,192 @@ Esta seção fornece exemplos de estruturas JSON para as requisições (requests |
|
|
]
|
|
|
```
|
|
|
|
|
|
### 1. Obter Endereço do Usuário
|
|
|
|
|
|
* **Endpoint (real):** `GET /api/auth/userAddress/{id}`
|
|
|
* **Descrição:** Retorna os dados de endereço associados ao ID do usuário.
|
|
|
* **Exemplo de Resposta:**
|
|
|
|
|
|
```json
|
|
|
{
|
|
|
"cep": "90000000",
|
|
|
"street": "Rua das Palmeiras",
|
|
|
"number": 123,
|
|
|
"unit": "Apto 202",
|
|
|
"city": "Porto Alegre",
|
|
|
"state": "RS"
|
|
|
}
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
### 2. Gerar Link para Redefinição de Senha
|
|
|
|
|
|
* **Endpoint (real):** `POST /api/auth/linkPasswordChange`
|
|
|
* **Descrição:** Gera e envia um link por e-mail para redefinição de senha.
|
|
|
* **Request Body:**
|
|
|
|
|
|
```json
|
|
|
{
|
|
|
"email": "[email protected]"
|
|
|
}
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
### 3. Listar Lojas por Categoria
|
|
|
|
|
|
* **Endpoint (real):** `GET /api/store/by-category/{categoryId}`
|
|
|
* **Descrição:** Retorna lojas que pertencem à categoria informada.
|
|
|
* **Exemplo de Resposta:**
|
|
|
|
|
|
```json
|
|
|
[
|
|
|
{
|
|
|
"storeName": "Artesanato RS",
|
|
|
"category": "Artesanato",
|
|
|
"profileImgUrl": "https://exemplo.com/logo_loja.png",
|
|
|
"description": "Produtos feitos à mão com amor."
|
|
|
}
|
|
|
]
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
### 4. Retornar Galeria de Fotos da Loja
|
|
|
|
|
|
* **Endpoint (real):** `GET /api/store/store_photos/{id}`
|
|
|
* **Descrição:** Retorna URLs das imagens da galeria vinculadas à loja.
|
|
|
* **Exemplo de Resposta:**
|
|
|
|
|
|
```json
|
|
|
[
|
|
|
"https://exemplo.com/foto1.jpg",
|
|
|
"https://exemplo.com/foto2.jpg",
|
|
|
"https://exemplo.com/foto3.jpg"
|
|
|
]
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
### 5. Obter Endereço Completo de uma Loja
|
|
|
|
|
|
* **Endpoint (real):** `GET /api/store/get-address/{id}`
|
|
|
* **Descrição:** Retorna o endereço completo de uma loja pelo seu ID.
|
|
|
* **Exemplo de Resposta:**
|
|
|
|
|
|
```json
|
|
|
{
|
|
|
"cep": "90400000",
|
|
|
"street": "Av. Independência",
|
|
|
"number": 456,
|
|
|
"unit": "Sala 10",
|
|
|
"city": "Porto Alegre",
|
|
|
"state": "RS"
|
|
|
}
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
### 6. Buscar Produtos ou Lojas por Termo
|
|
|
|
|
|
* **Endpoint (real):** `GET /api/search/products?q=termo`
|
|
|
* **Endpoint (real):** `GET /api/search/stores?q=termo`
|
|
|
* **Descrição:** Retorna lista de produtos ou lojas que contenham o termo informado.
|
|
|
* **Exemplo de Resposta (produtos):**
|
|
|
|
|
|
```json
|
|
|
[
|
|
|
{
|
|
|
"name": "Tênis de Corrida",
|
|
|
"description": "Tênis leve e confortável para treino",
|
|
|
"price": 199.9,
|
|
|
"photo": "https://exemplo.com/tenis.jpg"
|
|
|
}
|
|
|
]
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
### 7. Criar Produto (Loja Autenticada)
|
|
|
|
|
|
* **Endpoint (real):** `POST /api/product/create`
|
|
|
* **Descrição:** Cria um novo produto para a loja autenticada.
|
|
|
* **Request Body:**
|
|
|
|
|
|
```json
|
|
|
{
|
|
|
"name": "Bolsa Artesanal",
|
|
|
"description": "Feita à mão com material sustentável",
|
|
|
"photo": "https://exemplo.com/bolsa.jpg",
|
|
|
"category": "Acessórios",
|
|
|
"characteristics": [
|
|
|
{ "name": "Cor", "options": ["Bege", "Marrom"] }
|
|
|
],
|
|
|
"variations": [
|
|
|
{ "options": { "Cor": "Bege" }, "price": 79.9, "stock": 3 }
|
|
|
]
|
|
|
}
|
|
|
```
|
|
|
|
|
|
* **Exemplo de Resposta (201 Created):**
|
|
|
|
|
|
```json
|
|
|
{
|
|
|
"id": 88,
|
|
|
"name": "Bolsa Artesanal",
|
|
|
"category": "Acessórios",
|
|
|
"photo": "https://exemplo.com/bolsa.jpg",
|
|
|
"views": 0,
|
|
|
"date": "2025-06-19"
|
|
|
}
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
## Funcionalidades Internas (Serviços não expostos diretamente via API)
|
|
|
|
|
|
Embora alguns serviços ainda não possuam endpoints públicos mapeados, eles fazem parte da lógica do backend do Coopera RS e oferecem funcionalidades internas importantes:
|
|
|
|
|
|
### 1. EmailService
|
|
|
|
|
|
* Responsável pelo envio de e-mails de confirmação de cadastro, recuperação de senha e outras comunicações.
|
|
|
* Integração com serviços de e-mail configurados via `.env`.
|
|
|
* Pode utilizar templates personalizados para mensagens automáticas.
|
|
|
|
|
|
---
|
|
|
|
|
|
### 2. AddressService
|
|
|
|
|
|
* Gerencia dados de endereço vinculados a usuários e lojas.
|
|
|
* Realiza buscas e formatações de endereço.
|
|
|
* Suporta consultas por ID e vinculação via CEP.
|
|
|
|
|
|
---
|
|
|
|
|
|
### 3. UserService
|
|
|
|
|
|
* Gerencia dados de usuários, como ativação, desativação, verificação e atualização de perfil.
|
|
|
* Funciona como camada intermediária entre autenticação, loja e dados pessoais.
|
|
|
|
|
|
---
|
|
|
|
|
|
### 4. CategoryService
|
|
|
|
|
|
* Prevê suporte para criação, listagem e categorização de produtos e lojas.
|
|
|
* Embora o `CategoryController` ainda não tenha endpoints, esta camada de serviço já está preparada.
|
|
|
|
|
|
---
|
|
|
|
|
|
### 5. SponsorService
|
|
|
|
|
|
* Prevê suporte para funcionalidades relacionadas a patrocínio ou destaque de lojas e produtos na plataforma.
|
|
|
* O controller correspondente está definido, porém ainda sem rotas mapeadas.
|
|
|
|
|
|
---
|
|
|
|
|
|
Esses serviços fazem parte da estrutura modular do backend e poderão ser ativados e documentados com mais profundidade à medida que as features forem implementadas.
|
|
|
|
|
|
---
|
|
|
|
|
|
*Estes são apenas exemplos baseados no código frontend. É crucial validar e complementar esta informação com a documentação oficial da API (Swagger) do backend.* |