Organization Contacts
CRUD de contatos vinculados a organizações (cooperativas).
Contatos de uma organização (PHONE, EMAIL, URL). Base path: /api/organization-contacts ·
autenticação de usuário.
| Método | Rota | Scope | Resource | Sucesso |
|---|---|---|---|---|
POST | /api/organization-contacts | create | resource:organization-contacts | 201 |
GET | /api/organization-contacts | read | resource:organization-contacts | 200 |
GET | /api/organization-contacts/:id | read | resource:organization-contacts_id | 200 |
PUT | /api/organization-contacts/:id | update | resource:organization-contacts_id | 200 |
DELETE | /api/organization-contacts/:id | delete | resource:organization-contacts_id | 204 |
Criar contato
POST /api/organization-contacts — vincula um contato a uma organização existente.
Corpo
| Campo | Tipo | Obrigatório | Regras |
|---|---|---|---|
organizationId | uuid | sim | Organização existente (404 se não existir) |
type | enum | sim | PHONE, EMAIL ou URL |
description | string | não | pode ser null |
value | string | sim | mín. 1 caractere; e-mail válido se type=EMAIL; URL válida se type=URL |
isPrimary | boolean | não | padrão false; ao marcar true, desmarca os demais primários da mesma organização |
curl -X POST http://localhost:3000/api/organization-contacts \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"organizationId": "o1b2c3d4-e5f6-4789-a123-456789abcdef",
"type": "EMAIL",
"description": "Contato principal",
"value": "contato@reciclaja.org",
"isPrimary": true
}'201 Created
{
"id": "c1b2c3d4-e5f6-4789-a123-456789abcdef",
"organizationId": "o1b2c3d4-e5f6-4789-a123-456789abcdef",
"type": "EMAIL",
"description": "Contato principal",
"value": "contato@reciclaja.org",
"isPrimary": true,
"createdAt": "2026-07-13T12:00:00.000Z",
"updatedAt": "2026-07-13T12:00:00.000Z"
}404 Not Found — o organizationId informado não existe. O use case valida a referência antes de criar o contato.
Listar contatos
GET /api/organization-contacts — lista paginada (page, limit).
Filtros opcionais: organizationId (uuid), type (PHONE | EMAIL | URL), isPrimary (true | false).
Obter contato por id
GET /api/organization-contacts/:id — 404 se não existir.
Editar contato
PUT /api/organization-contacts/:id — atualização parcial.
| Campo | Tipo | Regras |
|---|---|---|
type | enum | PHONE, EMAIL ou URL |
description | string | ou null |
value | string | mín. 1 caractere; validação de e-mail/URL quando type e value forem enviados juntos |
isPrimary | boolean | ao marcar true, desmarca os demais primários da mesma organização |
Retorna 200; 404 se não existir.
Remover contato
DELETE /api/organization-contacts/:id — retorna 204 No Content; 404 se não existir.