feat: add full project - backend, frontend, docker, specs and configs
This commit is contained in:
parent
b77c7d5a01
commit
e6cb06255b
24489 changed files with 61341 additions and 36 deletions
94
.specify/features/007-admin-panel/contracts/boletos.md
Normal file
94
.specify/features/007-admin-panel/contracts/boletos.md
Normal 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
|
||||
77
.specify/features/007-admin-panel/contracts/clientes.md
Normal file
77
.specify/features/007-admin-panel/contracts/clientes.md
Normal 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
|
||||
28
.specify/features/007-admin-panel/contracts/favoritos.md
Normal file
28
.specify/features/007-admin-panel/contracts/favoritos.md
Normal 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
|
||||
81
.specify/features/007-admin-panel/contracts/properties.md
Normal file
81
.specify/features/007-admin-panel/contracts/properties.md
Normal 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
|
||||
86
.specify/features/007-admin-panel/contracts/visitas.md
Normal file
86
.specify/features/007-admin-panel/contracts/visitas.md
Normal 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
|
||||
Loading…
Add table
Add a link
Reference in a new issue