https://github.com/gustttavodev/controle-de-venda-api
Api REST de controle de vendas com Laravel.
https://github.com/gustttavodev/controle-de-venda-api
Last synced: 3 months ago
JSON representation
Api REST de controle de vendas com Laravel.
- Host: GitHub
- URL: https://github.com/gustttavodev/controle-de-venda-api
- Owner: gustttavodev
- License: mit
- Created: 2022-05-29T23:49:34.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2022-05-30T17:26:02.000Z (about 3 years ago)
- Last Synced: 2025-01-09T22:49:29.309Z (5 months ago)
- Language: PHP
- Homepage:
- Size: 97.7 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# API - Controle de Venda
## 🔗 REDES SOCIAIS
[](https://www.linkedin.com/in/gustavo3g/)
[](https://www.instagram.com/gutzbs/)## Documentação
## Rodando localmente
Clone o projeto
```bash
$ git clone https://github.com/Gustavo3g/controle-de-venda-api
```Entre no diretório do projeto
```bash
$ cd controle-de-venda-api
```Instale as dependências
```bash
$ composer install
```Edite o arquivo .env
```bash
$ touch .env
```Rode as migrações
```bash
$ php artisan migrate
```Inicie o servidor
```bash
$ php artisan serve
```## USUARIOS
#### CRIAR USUARIO
```http
POST /api/auth/register
``````JSON
{
"name": "User name",
"email": "[email protected]",
"cpf": "12345678912",
"password": "password"
}
```#### AUTENTICAR USUARIO
```http
POST /api/auth/login
``````JSON
{
"email": "[email protected]",
"password": "password"
}
```
```JSON
Retorno:
{
"success": true,
"bearer_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC8xMjcuMC4wLjE6ODAwMFwvYXBpXC9hdXRoXC9sb2dpbiIsImlhdCI6MTY1MzkxODg2NywiZXhwIjoxNjUzOTIyNDY3LCJuYmYiOjE2NTM5MTg4NjcsImp0aSI6IkpaSklPUlhCQlhrbWNrT2UiLCJzdWIiOjIsInBydiI6IjIzYmQ1Yzg5NDlmNjAwYWRiMzllNzAxYzQwMDg3MmRiN2E1OTc2ZjcifQ.RQLA6XbZQBpRX5Sliko3Eg1Z-BloJr405nVxhWmQ8l8",
"expires_in": 3600
}
```
``
BEARER_TOKEN É ULTILIZADO PARA ACESSAR AS ROTAS A SEGUIR:``
#### LISTAR TODOS OS USUARIOS```http
GET /api/v1/users
```
#### LISTAR UM USUARIO ESPECIFICO```http
GET /api/v1/users/${id}
```| Parâmetro | Tipo | Descrição |
| :---------- | :--------- | :------------------------------------------ |
| `id` | `int` | **Obrigatório**. O ID do usuario |#### ATUALIZAR USUARIO
```http
PUT /api/v1/users/${id}
```| Parâmetro | Tipo | Descrição |
| :---------- | :--------- | :------------------------------------------ |
| `id` | `int` | **Obrigatório**. O ID do usuario |```JSON
{
"name": "User name",
"email": "[email protected]",
"cpf": "12345678912",
"password": "password"
}
```
#### EXCLUIR USUARIO```http
DELETE /api/v1/users/${id}
```| Parâmetro | Tipo | Descrição |
| :---------- | :--------- | :------------------------------------------ |
| `id` | `int` | **Obrigatório**. O ID do usuario |---
## CLIENTES#### CRIAR UM CLIENTE
```http
POST api/v1/clients
``````JSON
{
"name": "Gustavo client de Sousa",
"cpf": "25874123654",
"birth_date": "1999-02-11"
}
```#### LISTAR TODOS OS CLIENTES
```http
GET /api/v1/clients
```
#### LISTAR UM CLIENTE ESPECIFICO```http
GET /api/v1/clients/${id}
```| Parâmetro | Tipo | Descrição |
| :---------- | :--------- | :------------------------------------------ |
| `id` | `int` | **Obrigatório**. O ID do cliente |---
## PEDIDOS
#### CRIAR PEDIDO
```http
POST /api/v1/orders
```
importante: O valor total é tratado no backend;
```JSON
{
"user_id": "id do vendedor/usuario",
"client_id": "id do cliente",
"items_id": "id dos produtos separados por virgula. ex: 1,2,3,6"
}```
#### LISTAR TODOS OS PEDIDOS
```http
GET /api/v1/orders
```#### ATUALIZAR PEDIDO
```http
PUT /api/v1/orders/${id}
```
| Parâmetro | Tipo | Descrição |
| :---------- | :--------- | :------------------------------------------ |
| `id` | `int` | **Obrigatório**. O ID do pedido |```JSON
{
"user_id": 1,
"client_id": 1,
"items_id": "1,2,3",
"total_amount": 160
}
```#### LISTAR UM PEDIDO ESPECIFICO
```http
GET /api/v1/orders/${id}
```| Parâmetro | Tipo | Descrição |
| :---------- | :--------- | :------------------------------------------ |
| `id` | `int` | **Obrigatório**. O ID do pedido |#### EXCLUIR PEDIDO
```http
DELETE /api/v1/orders/${id}
```| Parâmetro | Tipo | Descrição |
| :---------- | :--------- | :------------------------------------------ |
| `id` | `int` | **Obrigatório**. O ID do pedido |---
---
## LOTES
#### CRIAR UM LOTE
```http
POST /api/v1/lotes
``````JSON
{
"products": [
{
"name": "Produto 1",
"color": "blue",
"description": "Iphone 8",
"value": 17.00,
},
{
"name": "Produto 2",
"color": "blue",
"description": "Iphone 9",
"value": 17.00,
},
{
"name": "Produto 10",
"color": "blue",
"description": "Xiaomi Redmi note 10",
"value": 17.00,
}]
}```
#### LISTAR TODOS OS LOTES
```http
GET /api/v1/lotes
```#### LISTAR UM LOTE ESPECIFICO
```http
GET /api/v1/lotes/${id}
```| Parâmetro | Tipo | Descrição |
| :---------- | :--------- | :------------------------------------------ |
| `id` | `int` | **Obrigatório**. O ID do lote |#### EXCLUIR LOTE
```http
DELETE /api/v1/lotes/${id}
```| Parâmetro | Tipo | Descrição |
| :---------- | :--------- | :------------------------------------------ |
| `id` | `int` | **Obrigatório**. O ID do lote |---
## PRODUTOS
#### CRIAR UM PRODUTO
```http
POST /api/v1/products
``````JSON
{
"name": "Produto 12",
"color": "red",
"description": "Iphone seminovo",
"value": 1500.00,
"lote_id": id do lote
}```
#### LISTAR TODOS OS PRODUTOS
```http
GET /api/v1/products
```
#### LISTAR UM PRODUTO ESPECIFICO```http
GET /api/v1/products/${id}
```| Parâmetro | Tipo | Descrição |
| :---------- | :--------- | :------------------------------------------ |
| `id` | `int` | **Obrigatório**. O ID do produto |#### ATUALIZAR PRODUTO
```http
PUT /api/v1/products/${id}
```| Parâmetro | Tipo | Descrição |
| :---------- | :--------- | :------------------------------------------ |
| `id` | `int` | **Obrigatório**. O ID do produto |```JSON
{
"name": "Produto 12",
"color": "blue",
"description": "Iphone novo",
"value": 1600.00,
"lote_id": id do lote
}```
#### EXCLUIR PRODUTO```http
DELETE /api/v1/products/${id}
```| Parâmetro | Tipo | Descrição |
| :---------- | :--------- | :------------------------------------------ |
| `id` | `int` | **Obrigatório**. O ID do produto |
----## POPULAR BANCO DE DADOS [FACTORYS E SEEDS]
### RUN
Criar lotes e produtos respectivamente.
```bash
$ php artisan db:seed --class=ProductSeeder
```Criar clientes e pedidos respectivamente (com pedidos já existentes)
```bash
$ php artisan db:seed --class=ClientSeeder
```