Omnigrejas API

v1.3 - Seguir, Gamificação & Upload de Mídia

Bem-vindo à Omnigrejas API

Sistema completo de gestão de Igrejas(Saas) com novos recursos de email

A Omnigrejas API é uma solução completa para gestão de igrejas, oferecendo funcionalidades abrangentes para administração de membros, eventos, finanças, comunicação, alianças entre igrejas, agendamentos independentes, cartões de membro, sistema de seguir usuários, gamificação automática e upload de mídia para posts.

Base URL

https://api.omnigrejas.com/api/v1

Autenticação

Bearer Token via Sanctum

📱 App Mobile Flutter

Documentação completa para desenvolvimento do aplicativo mobile

Ver Documentação Mobile

🆕 Novos Recursos de Email

Sistema completo de comunicação por email

NOVO

Email de Boas-Vindas

Enviado automaticamente após registro bem-sucedido

  • • 🎨 Template personalizado
  • • 🌍 Conteúdo em português
  • • 📱 Design responsivo
  • • 🚀 Link direto para login

Sistema de Reset de Senha

Recuperação segura de senha via email

  • • 🔐 Tokens seguros (SHA-256)
  • • ⏰ Expiração automática (60 min)
  • • 📊 Rate limiting inteligente
  • • 🚫 Revogação de sessões antigas

📋 Endpoints Implementados:

POST /v1/auth/forgot-password Solicitar reset
POST /v1/auth/reset-password Executar reset

Autenticação

Níveis de Acesso(inicias minúsculas):

admin pastor ministro obreiro membro diacono anonymous

Endpoints para autenticação de usuários, registro, login, gerenciamento de tokens e recuperação de senha.

POST

Registrar Usuário

/v1/auth/register

Cria uma nova conta de usuário no sistema.

Parâmetros:

  • name: Nome completo do usuário
  • email: E-mail único
  • password: Senha (mín. 8 caracteres)
  • password_confirmation: Senha (o mesmo password)

Usuários & Igrejas

Gerenciamento de usuários do sistema e cadastro de igrejas.

GET Visualizar Usuário
/v1/users/{id}

Visualiza dados do próprio perfil

PUT Atualizar Usuário
/v1/users/{id}

Atualiza dados do próprio perfil

GET Listar Usuários
/v1/users

Lista todos os usuários (Admin)

POST Criar Usuário
/v1/users

Cria novo usuário (Admin)

DELETE Excluir Usuário
/v1/users/{id}

Remove usuário (Admin)

GET Foto do Usuário
/v1/users/photo/{userId}

Acessar foto de perfil de um usuário

POST Upload de Imagem
/v1/upload-image

Upload de imagens para Supabase Storage

Membros & Ministérios

Gestão completa de membros da igreja e organização de ministérios.

GET Listar Membros
/v1/igreja-membros
GET Listar por Igreja
/v1/igrejas/{igreja_id}/membros
GET Visualizar Membro
/v1/igreja-membros/{id}
POST Cadastrar Membro
/v1/igreja-membros
PUT Atualizar Membro
/v1/igreja-membros/{id}
DELETE Remover Membro
/v1/igreja-membros/{id}

Financeiro

Controle financeiro completo com categorias, movimentações e auditoria.

GET Listar Categorias
/v1/financeiro-categorias
POST Criar Categoria
/v1/financeiro-categorias
PUT Atualizar Categoria
/v1/financeiro-categorias/{id}
DELETE Excluir Categoria
/v1/financeiro-categorias/{id}

Eventos & Escalas

Gestão de eventos da igreja, escalas de serviço e cultos padrão.

GET Listar Eventos
/v1/eventos

Lista todos os eventos

GET Visualizar Evento
/v1/eventos/{id}

Visualiza detalhes do evento

POST Criar Evento
/v1/eventos

Cria novo evento

PUT Atualizar Evento
/v1/eventos/{id}

Atualiza dados do evento

DELETE Excluir Evento
/v1/eventos/{id}

Remove evento do sistema

Social

Funcionalidades sociais da plataforma: posts, reações e comentários.

GET Listar Posts (Público)
/v1/posts

Visitantes podem ver posts

GET Visualizar Post (Público)
/v1/posts/{id}

Visitantes podem ver detalhes

POST Criar Post
/v1/posts

Requer autenticação

PUT Atualizar Post
/v1/posts/{id}

Requer autenticação

DELETE Excluir Post
/v1/posts/{id}

Requer autenticação

Cursos & Discipulado

Sistema de ensino e discipulado com cursos, conteúdos e acompanhamento de progresso.

GET Listar Cursos
/v1/cursos
POST Criar Curso
/v1/cursos
PUT Atualizar Curso
/v1/cursos/{id}
DELETE Excluir Curso
/v1/cursos/{id}

Relatórios & Recursos

Sistema de relatórios e gestão de recursos da igreja.

GET Listar Relatórios
/v1/relatorios-cache
POST Gerar Relatório
/v1/relatorios-cache
GET Visualizar Relatório
/v1/relatorios-cache/{id}
DELETE Excluir Relatório
/v1/relatorios-cache/{id}

Doações & Voluntários

Sistema de doações online e gestão de trabalho voluntário na igreja.

GET Listar Doações
/v1/doacoes-online
POST Processar Doação
/v1/doacoes-online
GET Visualizar Doação
/v1/doacoes-online/{id}
PUT Atualizar Status
/v1/doacoes-online/{id}

Atendimento & Oração

Sistema de atendimento pastoral e gestão de pedidos de oração.

GET Listar Atendimentos
/v1/atendimentos-pastorais
POST Agendar Atendimento
/v1/atendimentos-pastorais
GET Visualizar Atendimento
/v1/atendimentos-pastorais/{id}
PUT Atualizar Atendimento
/v1/atendimentos-pastorais/{id}
DELETE Cancelar Atendimento
/v1/atendimentos-pastorais/{id}

Sistema de Seguir

Sistema completo de conexões sociais entre usuários, permitindo seguir outros membros, receber notificações sobre suas atividades e visualizar um feed personalizado.

POST

Seguir Usuário

/v1/user-follows

Permite seguir outro usuário da plataforma.

Parâmetros:

  • followed_id: ID do usuário a ser seguido
DELETE

Deixar de Seguir

/v1/user-follows/{followedId}

Remove o vínculo de seguir com um usuário.

Parâmetros da URL:

  • {followedId}: ID do usuário que estava sendo seguido
GET

Verificar Status

/v1/user-follows/check/{userId}

Verifica se está seguindo um usuário específico.

Response:

{ "dados": { "user_id": "uuid", "esta_seguindo": true, "seguidores_count": 15, "seguindo_count": 8 } }
GET

Sugestões

/v1/user-follows/suggestions

Sugere usuários para seguir baseado em conexões.

Chats & Mensagens

Sistema completo de comunicação interna com chats de igreja, mensagens privadas e notificações.

GET

Listar Alianças Disponíveis

/v1/alianca-community

Lista alianças disponíveis para o usuário (líderes ou comunidade).

Parâmetros de Query:

  • tipo: 'lideres' ou 'comunidade' (opcional)
  • GET v1/alianca-community/?tipo=lideres
POST

Enviar Mensagem

/v1/alianca-community

Envia mensagem para aliança de líderes ou comunidade.

Parâmetros:

  • alianca_id: ID da aliança
  • tipo: 'lideres' ou 'comunidade'
  • mensagem: Conteúdo da mensagem
  • anexos: Array de anexos (opcional)
GET

Ver Mensagens da Aliança

/v1/alianca-community/{aliancaId}

Visualiza mensagens de uma aliança específica.

Parâmetros de Query:

  • tipo: 'lideres' ou 'comunidade'
  • page: Página para paginação
DELETE

Eliminar Mensagem

/v1/alianca-community/{mensagemId}

Remove mensagem da aliança (autor ou admin).

Permissões:

  • • ✅ Autor da mensagem pode eliminar
  • • ✅ Administradores podem eliminar qualquer mensagem
  • • 🔄 Anexos são automaticamente removidos do Supabase

🆕 Funcionalidades da Comunidade de Alianças

Participação Aberta

Membros da comunidade podem participar das alianças sem serem líderes oficiais.

Mensagens Separadas

Mensagens de líderes e comunidade são armazenadas em tabelas distintas.

Marcação Automática

Mensagens são automaticamente marcadas como lidas ao serem visualizadas.

Suporte a Anexos

Permite anexar arquivos às mensagens com armazenamento no Supabase.

📋 Simulações de JSON

GET
Listar Alianças Disponíveis
GET /v1/alianca-community?tipo=lideres
Response (200 OK):

{
"dados": {
    "lideres": [
    {
        "id": "uuid-alianca-1",
        "nome": "Aliança Evangélica Nacional",
        "sigla": "AEN",
        "descricao": "Aliança nacional de igrejas evangélicas",
        "tipo": "lideres",
        "categoria": "Evangélica",
        "status": "ativo",
        "min_aderentes": 5,
        "aderentes_count": 12,
        "created_at": "2025-01-15T10:00:00Z",
        "igrejas": [
        {
            "id": 1,
            "nome": "Igreja Batista Central",
            "sigla": "IBC",
            "logo_url": "https://supabase.com/storage/igrejas/logo1.jpg"
        }
        ]
    }
    ],
    "comunidade": [
    {
        "id": "uuid-alianca-2",
        "nome": "Comunidade Jovens em Cristo",
        "sigla": "CJC",
        "descricao": "Comunidade de jovens das igrejas locais",
        "tipo": "comunidade",
        "categoria": "Juventude",
        "status": "ativo",
        "min_aderentes": 10,
        "aderentes_count": 25,
        "created_at": "2025-02-01T14:30:00Z",
        "igrejas": [
        {
            "id": 1,
            "nome": "Igreja Batista Central",
            "sigla": "IBC",
            "logo_url": "https://supabase.com/storage/igrejas/logo1.jpg"
        },
        {
            "id": 2,
            "nome": "Primeira Igreja Presbiteriana",
            "sigla": "PIP",
            "logo_url": "https://supabase.com/storage/igrejas/logo2.jpg"
        }
        ]
    }
    ]
        }
}
                                            
GET
Ver Mensagens da Aliança
GET /v1/alianca-community/{aliancaId}?tipo=comunidade
Response (200 OK):

    {
"dados": {
    "alianca_id": "uuid-alianca-2",
    "tipo": "comunidade",
    "mensagens": {
    "current_page": 1,
    "data": [
        {
        "id": "uuid-msg-1",
        "uuid": "uuid-msg-1",
        "alianca_id": "uuid-alianca-2",
        "remetente_id": "uuid-membro-1",
        "tipo_mensagem": "texto",
        "mensagem": "Olá comunidade! Vamos nos reunir amanhã para o estudo bíblico.",
        "anexos": null,
        "lida_em": "2025-01-20T16:45:00Z",
        "created_at": "2025-01-20T15:30:00Z",
        "updated_at": "2025-01-20T15:30:00Z",
        "remetente": {
            "id": "uuid-membro-1",
            "user": {
            "id": "uuid-user-1",
            "name": "João Silva",
            "email": "joao@email.com",
            "photo_url": "https://supabase.com/storage/users/photo1.jpg"
            }
        }
        },
        {
        "id": "uuid-msg-2",
        "uuid": "uuid-msg-2",
        "alianca_id": "uuid-alianca-2",
        "remetente_id": "uuid-membro-2",
        "tipo_mensagem": "imagem",
        "mensagem": "Foto do encontro de ontem!",
        "anexos": [
            {
            "nome_original": "encontro_jovens.jpg",
            "caminho": "aliancas/uuid-alianca-2/imagens/encontro_jovens.jpg",
            "tipo": "image",
            "tamanho": 2048576,
            "mime_type": "image/jpeg",
            "url": "https://supabase.com/storage/aliancas/uuid-alianca-2/imagens/encontro_jovens.jpg"
            }
        ],
        "lida_em": null,
        "created_at": "2025-01-20T18:15:00Z",
        "updated_at": "2025-01-20T18:15:00Z",
        "remetente": {
            "id": "uuid-membro-2",
            "user": {
            "id": "uuid-user-2",
            "name": "Maria Santos",
            "email": "maria@email.com",
            "photo_url": "https://supabase.com/storage/users/photo2.jpg"
            }
        }
        }
    ],
    "first_page_url": "http://api.omnigrejas.com/v1/alianca-community/uuid-alianca-2?page=1",
    "from": 1,
    "last_page": 1,
    "last_page_url": "http://api.omnigrejas.com/v1/alianca-community/uuid-alianca-2?page=1",
    "next_page_url": null,
    "path": "http://api.omnigrejas.com/v1/alianca-community/uuid-alianca-2",
    "per_page": 50,
    "prev_page_url": null,
    "to": 2,
    "total": 2
    }
}
}
POST
Enviar Mensagem
POST /v1/alianca-community
Request Body:
{
  "alianca_id": "uuid-alianca-2",
  "tipo": "comunidade",
  "mensagem": "Vamos orar juntos pela nossa comunidade!",
  "anexos": [
    {
      "name": "oracao.pdf",
      "type": "application/pdf",
      "size": 1024000
    }
  ]
}
Response (201 Created):
{
  "message": "Mensagem enviada com sucesso",
  "dados": {
    "alianca_id": "uuid-alianca-2",
    "tipo": "comunidade",
    "mensagem": "Vamos orar juntos pela nossa comunidade!",
    "enviada_em": "2025-01-21T09:30:00Z"
  }
}
DELETE
Eliminar Mensagem
DELETE /v1/alianca-community/{mensagemId}?tipo=comunidade
Response (200 OK):
{
  "message": "Mensagem eliminada com sucesso",
  "dados": {
    "alianca_id": "uuid-alianca-2",
    "mensagem_id": "uuid-msg-1",
    "tipo": "comunidade",
    "eliminada_em": "2025-01-21T10:15:00Z"
  }
}
Permissões:
  • • ✅ Autor da mensagem pode eliminar
  • • ✅ Administradores podem eliminar qualquer mensagem
  • • 🔄 Anexos são automaticamente removidos do Supabase

Gamificação

Sistema de pontuação e conquistas para incentivar o engajamento dos membros.

GET Listar Pontos
/v1/engajamento-pontos
POST Atribuir Pontos
/v1/engajamento-pontos
GET Visualizar Pontuação
/v1/engajamento-pontos/{id}
PUT Atualizar Pontos
/v1/engajamento-pontos/{id}

Marketplace

Sistema de marketplace para produtos e serviços da comunidade de Igrejas(Saas).

GET Listar Produtos
/v1/marketplace-produtos
POST Criar Produto
/v1/marketplace-produtos
GET Visualizar Produto
/v1/marketplace-produtos/{id}
PUT Atualizar Produto
/v1/marketplace-produtos/{id}
DELETE Excluir Produto
/v1/marketplace-produtos/{id}

Alianças de Igrejas

Sistema de alianças e federações entre igrejas, com controle de participação e mensagens compartilhadas.

GET Listar Categorias
/v1/categorias-igrejas
POST Criar Categoria
/v1/categorias-igrejas

Agendamentos

Sistema de agendamentos independentes para reuniões, consultas e acompanhamentos.

GET Listar Agendamentos
/v1/agendamentos
POST Criar Agendamento
/v1/agendamentos
GET Visualizar Agendamento
/v1/agendamentos/{id}
PUT Atualizar Agendamento
/v1/agendamentos/{id}

Cartões de Membro

Sistema completo de emissão e controle de cartões de membro da igreja.

GET Listar Cartões
/v1/cartao-membro
POST Emitir Cartão
/v1/cartao-membro

Assinaturas (SaaS)

Sistema de assinaturas e billing para o modelo SaaS da plataforma.

GET Listar Módulos
/v1/modulos
GET Listar Pacotes
/v1/pacotes
GET Permissões do Pacote
/v1/pacote-permissoes