feat: add full project - backend, frontend, docker, specs and configs

This commit is contained in:
MatheusAlves96 2026-04-20 23:59:45 -03:00
parent b77c7d5a01
commit e6cb06255b
24489 changed files with 61341 additions and 36 deletions

View file

@ -0,0 +1,94 @@
# Contract: Admin Boletos Endpoints
**Prefix:** `/api/v1/admin/boletos`
**Auth:** JWT Bearer (admin)
---
## GET /api/v1/admin/boletos
Lista todos os boletos.
### Response 200
```json
[
{
"id": "uuid",
"user_id": "uuid",
"property_id": "uuid",
"description": "Aluguel Maio",
"amount": 3500.00,
"due_date": "2026-05-10",
"status": "pending",
"url": "https://boleto.banco.com.br/abc123"
}
]
```
---
## POST /api/v1/admin/boletos
Cria um novo boleto.
### Request
```json
{
"user_id": "uuid",
"property_id": "uuid",
"description": "Aluguel Maio",
"amount": 3500.00,
"due_date": "2026-05-10",
"url": "https://boleto.banco.com.br/abc123"
}
```
### Response 201
```json
{
"id": "uuid",
"user_id": "uuid",
"property_id": "uuid",
"description": "Aluguel Maio",
"amount": 3500.00,
"due_date": "2026-05-10",
"status": "pending",
"url": "https://boleto.banco.com.br/abc123"
}
```
---
## PUT /api/v1/admin/boletos/:id
Atualiza um boleto existente.
### Request
```json
{
"user_id": "uuid",
"property_id": "uuid",
"description": "Aluguel Maio",
"amount": 3500.00,
"due_date": "2026-05-10",
"url": "https://boleto.banco.com.br/abc123"
}
```
### Response 200
```json
{
"id": "uuid",
"user_id": "uuid",
"property_id": "uuid",
"description": "Aluguel Maio",
"amount": 3500.00,
"due_date": "2026-05-10",
"status": "pending",
"url": "https://boleto.banco.com.br/abc123"
}
```
---
## DELETE /api/v1/admin/boletos/:id
Remove um boleto.
### Response 204

View file

@ -0,0 +1,77 @@
# Contract: Admin Clientes Endpoints
**Prefix:** `/api/v1/admin/client-users`
**Auth:** JWT Bearer (admin)
---
## GET /api/v1/admin/client-users
Lista todos os clientes.
### Response 200
```json
[
{
"id": "uuid",
"name": "João",
"email": "joao@email.com",
"role": "client"
}
]
```
---
## POST /api/v1/admin/client-users
Cria um novo cliente.
### Request
```json
{
"name": "João",
"email": "joao@email.com",
"password": "senha123",
"role": "client"
}
```
### Response 201
```json
{
"id": "uuid",
"name": "João",
"email": "joao@email.com",
"role": "client"
}
```
---
## PUT /api/v1/admin/client-users/:id
Atualiza um cliente existente.
### Request
```json
{
"name": "João",
"email": "joao@email.com",
"role": "client"
}
```
### Response 200
```json
{
"id": "uuid",
"name": "João",
"email": "joao@email.com",
"role": "client"
}
```
---
## DELETE /api/v1/admin/client-users/:id
Remove um cliente.
### Response 204

View file

@ -0,0 +1,28 @@
# Contract: Admin Favoritos Endpoints
**Prefix:** `/api/v1/admin/favoritos`
**Auth:** JWT Bearer (admin)
---
## GET /api/v1/admin/favoritos
Lista todos os favoritos de todos os clientes.
### Response 200
```json
[
{
"id": "uuid",
"user_id": "uuid",
"property_id": "uuid",
"created_at": "2026-04-01T12:00:00"
}
]
```
---
## DELETE /api/v1/admin/favoritos/:id
Remove um favorito.
### Response 204

View file

@ -0,0 +1,81 @@
# Contract: Admin Properties Endpoints
**Prefix:** `/api/v1/admin/properties`
**Auth:** JWT Bearer (admin)
---
## GET /api/v1/admin/properties
Lista todos os imóveis cadastrados.
### Response 200
```json
[
{
"id": "uuid",
"title": "Casa 1",
"address": "Rua X, 123",
"price": 500000.00,
"status": "ativo"
}
]
```
---
## POST /api/v1/admin/properties
Cria um novo imóvel.
### Request
```json
{
"title": "Casa 1",
"address": "Rua X, 123",
"price": 500000.00,
"status": "ativo"
}
```
### Response 201
```json
{
"id": "uuid",
"title": "Casa 1",
"address": "Rua X, 123",
"price": 500000.00,
"status": "ativo"
}
```
---
## PUT /api/v1/admin/properties/:id
Atualiza um imóvel existente.
### Request
```json
{
"title": "Casa 1",
"address": "Rua X, 123",
"price": 500000.00,
"status": "ativo"
}
```
### Response 200
```json
{
"id": "uuid",
"title": "Casa 1",
"address": "Rua X, 123",
"price": 500000.00,
"status": "ativo"
}
```
---
## DELETE /api/v1/admin/properties/:id
Remove um imóvel.
### Response 204

View file

@ -0,0 +1,86 @@
# Contract: Admin Visitas Endpoints
**Prefix:** `/api/v1/admin/visitas`
**Auth:** JWT Bearer (admin)
---
## GET /api/v1/admin/visitas
Lista todos os pedidos de visita.
### Response 200
```json
[
{
"id": "uuid",
"user_id": "uuid",
"property_id": "uuid",
"message": "Gostaria de agendar uma visita",
"status": "pending",
"scheduled_at": "2026-05-15T14:00:00"
}
]
```
---
## POST /api/v1/admin/visitas
Cria um novo pedido de visita.
### Request
```json
{
"user_id": "uuid",
"property_id": "uuid",
"message": "Gostaria de agendar uma visita",
"status": "pending",
"scheduled_at": "2026-05-15T14:00:00"
}
```
### Response 201
```json
{
"id": "uuid",
"user_id": "uuid",
"property_id": "uuid",
"message": "Gostaria de agendar uma visita",
"status": "pending",
"scheduled_at": "2026-05-15T14:00:00"
}
```
---
## PUT /api/v1/admin/visitas/:id
Atualiza um pedido de visita.
### Request
```json
{
"user_id": "uuid",
"property_id": "uuid",
"message": "Gostaria de agendar uma visita",
"status": "confirmed",
"scheduled_at": "2026-05-15T14:00:00"
}
```
### Response 200
```json
{
"id": "uuid",
"user_id": "uuid",
"property_id": "uuid",
"message": "Gostaria de agendar uma visita",
"status": "confirmed",
"scheduled_at": "2026-05-15T14:00:00"
}
```
---
## DELETE /api/v1/admin/visitas/:id
Remove um pedido de visita.
### Response 204