Agentes
Agentes representam pessoas, coletivos e organizações culturais no ecossistema do Mapas Culturais.
Um Agente é a entidade central de perfil no Mapas Culturais. Todo usuário que se cadastra na plataforma recebe automaticamente um perfil de agente. Agentes podem ser donos de espaços, criar eventos, conduzir projetos e se inscrever em oportunidades.
Indivíduos
Pessoas físicas envolvidas em atividades culturais, como artistas, produtores, curadores e pesquisadores.
Coletivos
Grupos informais e coletivos culturais que atuam em conjunto sem uma estrutura jurídica formal.
Organizações
Pessoas jurídicas, como ONGs, fundações, empresas e instituições públicas.
Tipos de agente
A entidade usa um campo numérico de tipo (_type). Os rótulos e IDs exatos são configurados por instalação por meio do sistema de taxonomias e tipos de entidade. Administradores podem definir nomes de tipos e restringir quais usuários podem alterar o tipo de um agente.
Apenas administradores podem alterar o tipo de um agente após a criação. Usuários comuns recebem o tipo 2 (coletivo/organização) quando tentam definir um tipo para o qual não têm permissão.
Campos principais
| Campo | Descrição |
|---|---|
name | Nome de exibição do agente. Obrigatório. |
shortDescription | Resumo curto, com até 400 caracteres. Obrigatório. |
longDescription | Descrição completa, com suporte a texto rico. |
type | Identificador numérico do tipo (individual, coletivo, organização). |
location | Ponto geográfico PostGIS. Fica oculto do público a menos que publicLocation seja true. |
publicLocation | Indica se a localização do agente é visível para quem não é proprietário. |
status | 1 = publicado, 0 = rascunho, -2 = arquivado, -9 = desabilitado, -10 = lixeira. |
createTimestamp | Momento em que o agente foi criado. Somente leitura. |
updateTimestamp | Momento da última modificação do agente. Somente leitura. |
Campos adicionais, como e-mail, telefone, site, documento e área de atuação, são armazenados como metadados e podem variar conforme a configuração da instalação.
Geolocalização
Agentes suportam geolocalização opcional via PostGIS. A localização é armazenada tanto em uma coluna point quanto em uma coluna geography para consultas espaciais. A flag publicLocation controla a visibilidade: se for false, as coordenadas são retornadas como (0,0) para usuários sem acesso a dados privados.
// A localização só é exposta se o agente tiver publicLocation = true
// ou se quem estiver visualizando tiver permissão para ver dados privados
function getLocation() {
if ($this->publicLocation || $this->canUser('viewPrivateData')) {
return $this->location;
} else {
return new \MapasCulturais\Types\GeoPoint(0, 0);
}
}Múltiplos agentes por usuário
Uma mesma conta de usuário pode gerenciar múltiplos perfis de agente. Um deles é designado como perfil do usuário, a identidade principal daquela conta.
Relações com outras entidades
Agentes são a entidade central de conexão da plataforma. Eles são proprietários de, ou participam de, todos os demais tipos de entidade:
Espaços
Um agente pode possuir zero ou mais espaços. Os espaços referenciam seu agente proprietário por agent_id.
Eventos
Um agente pode possuir zero ou mais eventos. Os eventos referenciam seu proprietário por agent_id.
Projetos
Um agente pode possuir zero ou mais projetos. Os projetos referenciam seu proprietário por agent_id.
Oportunidades
Um agente pode possuir oportunidades e também pode se relacionar com outras oportunidades como colaborador ou avaliador.
Além da titularidade, agentes participam de relações entre agentes (AgentAgentRelation). São vínculos muitos-para-muitos que representam papéis como colaborador, parceiro ou vínculo institucional.
Completude de perfil
O módulo ProfileCompletion acompanha quanto do perfil de um agente foi preenchido. Ele calcula uma porcentagem de completude com base na presença de campos importantes, como nome, descrição curta, descrição longa, imagem de avatar, localização e tags. Um indicador visual é exibido na interface para incentivar o preenchimento.
Selos e verificação
Agentes podem receber selos de administradores ou de responsáveis por oportunidades. Esses selos servem para certificar ou verificar agentes, por exemplo confirmando identidade, vínculo institucional ou participação em um programa.
As relações de selo são armazenadas em AgentSealRelation. Certos selos podem travar campos, impedindo que o agente modifique dados que já foram verificados. A lista de campos travados é calculada a partir das relações de selo ativas.
// Selos podem travar campos do agente para impedir alterações
function getLockedFields() {
$locked_field_seals = (array) $this->lockedFieldSeals;
return !empty($locked_field_seals) ? array_keys($locked_field_seals) : [];
}Tags e taxonomias
Agentes suportam classificação taxonômica por meio de relações de termos (AgentTermRelation). Tags, áreas de atuação e outros vocabulários são vinculados por esse sistema.
Criando um agente
Acesse a plataforma e entre com sua conta. Se ainda não tiver uma conta, faça o cadastro primeiro. Um agente de perfil de usuário será criado automaticamente.
Vá até o painel e selecione Meus Agentes no menu de navegação.
Clique em Novo Agente, escolha o tipo do agente (individual, coletivo ou organização) e preencha os campos obrigatórios: nome e descrição curta.
Adicione uma descrição longa, imagem de avatar, tags, informações de contato e localização geográfica. O indicador de completude mostra seu progresso.
Altere o status de Rascunho para Publicado para tornar o agente visível no catálogo público.
Ciclo de status
O agente de perfil do usuário não pode ser arquivado nem removido de forma independente. Tentar fazer isso retorna um erro de permissão, a menos que a própria conta de usuário esteja sendo excluída.
Esse material é fruto do Programa de Difusão Nacional - Funarte Redes das Artes, realizado pelo Laboratório do Futuro (entidade vinculada à Universidade Federal do Ceará) no ano de 2025.