Inscrições
Inscrições são candidaturas enviadas por agentes culturais para oportunidades, acompanhando todo o ciclo do rascunho à decisão final.
Uma inscrição é uma candidatura enviada por um agente cultural para uma oportunidade. Ela registra as respostas da pessoa proponente aos campos configurados da oportunidade, os arquivos anexados e as relações entre agentes no momento do envio. As inscrições percorrem um ciclo de status definido, da criação até a decisão final.
Ciclo de status da inscrição
| Código | Nome | Descrição |
|---|---|---|
0 | Rascunho | Está sendo preenchida pela pessoa proponente. Ainda não enviada. |
1 | Enviada (pendente) | Enviada e aguardando avaliação. |
2 | Inválida | Marcada como inválida por um avaliador ou administrador. |
3 | Não aprovada | Avaliada e não selecionada. |
8 | Suplente | Está na lista de espera. |
10 | Aprovada / selecionada | Selecionada pela oportunidade. |
Registration::STATUS_DRAFT = 0; // Entity::STATUS_DRAFT
Registration::STATUS_SENT = 1; // Entity::STATUS_ENABLED
Registration::STATUS_INVALID = 2;
Registration::STATUS_NOTAPPROVED = 3;
Registration::STATUS_WAITLIST = 8;
Registration::STATUS_APPROVED = 10;A constante STATUS_SENT equivale a 1, o mesmo valor de Entity::STATUS_ENABLED. O campo status da inscrição usa 0 (rascunho) como valor padrão na criação.
Campos principais
| Campo | Descrição |
|---|---|
number | Número legível da inscrição, com prefixo configurável. Gerado automaticamente na criação. |
category | Categoria selecionada, escolhida na lista registrationCategories da oportunidade. |
proponentType | Tipo de proponente escolhido a partir de registrationProponentTypes. |
range | Faixa ou categoria de apoio escolhida em registrationRanges. |
owner | Agente que envia a inscrição. Obrigatório. |
opportunity | Oportunidade à qual esta inscrição pertence. Obrigatória. Imutável após a criação. |
status | Código de status atual, conforme a tabela acima. |
sentTimestamp | Momento em que a inscrição foi enviada. Definido automaticamente em send(). |
agentsData | Snapshot JSON dos dados dos agentes capturados no momento do envio. |
score | Pontuação numérica calculada a partir das avaliações técnicas. |
eligible | Indica se a inscrição passou pelas verificações de elegibilidade. |
consolidatedResult | Resultado final em texto produzido pelo método de avaliação. |
editableUntil | Prazo até o qual a pessoa proponente pode editar campos específicos após o envio. |
editableFields | Lista de campos que a pessoa proponente pode editar após o envio. |
Campos da inscrição
Oportunidades configuram quais informações as pessoas candidatas devem fornecer por meio de:
RegistrationFieldConfiguration— campos de formulário, como texto, seleção, checkbox, data e númeroRegistrationFileConfiguration— exigências de upload de arquivoRegistrationStep— grupos nomeados de campos para formulários em múltiplas etapas
As respostas dos campos são armazenadas como metadados de entidade com chaves prefixadas por field_. O sistema de visibilidade de campos suporta:
- visibilidade por categoria — campos mostrados apenas para candidaturas de uma categoria específica
- visibilidade por tipo de proponente — campos mostrados apenas para determinado tipo de proponente
- visibilidade por faixa — campos mostrados apenas para quem concorre em uma faixa específica
- campos condicionais — campos exibidos apenas quando outro campo possui um valor específico
// Verifica se um campo deve ser exibido para a inscrição atual
if ($registration->isFieldVisisble($fieldConfig)) {
// renderiza o campo
}Envio da inscrição
Quando a pessoa proponente chama send(), a plataforma:
- Valida todos os campos obrigatórios, anexos e relações entre agentes.
- Captura um snapshot JSON dos dados do agente proprietário e dos agentes relacionados em
agentsData. - Captura um snapshot do espaço vinculado, se houver, em
_spaceData. - Define
statuscomoSTATUS_SENTe registrasentTimestamp. - Dispara a recriação do cache de permissões.
$registration->send();Depois de enviada, a oportunidade e o agente proprietário de uma inscrição não podem mais ser alterados. Tentar modificar opportunity após a criação é ignorado silenciosamente.
Relações de agente nas inscrições
Inscrições podem ter múltiplos agentes relacionados além do proprietário principal. Essas relações são configuradas por RegistrationAgentRelation e definidas nas próprias regras da oportunidade. Grupos comuns incluem:
owner— agente principal da candidatura, sempre obrigatóriocoletivo— agente coletivo associadoinstituicao— agente institucional associado
Cada agente relacionado precisa confirmar participação, com status da relação ≥ 0, antes que a inscrição possa ser enviada.
Relação com espaço
Se a oportunidade exigir um espaço, a pessoa proponente vincula um por RegistrationSpaceRelation. O proprietário do espaço precisa autorizar o vínculo. A plataforma valida:
- se o espaço é obrigatório (
useSpaceRelationIntituicao = 'required') - se o espaço vinculado já foi autorizado (
status≥ 0)
Fluxo de avaliação
A pessoa proponente envia a inscrição (status → Enviada).
Avaliadores são atribuídos às inscrições de forma automática ou manual. Cada avaliador é membro da comissão definida em EvaluationMethodConfiguration.
Cada membro da comissão cria ou atualiza um registro RegistrationEvaluation com sua análise. As avaliações têm um ciclo próprio: Rascunho → Avaliada (STATUS_EVALUATED = 1) → Enviada (STATUS_SENT = 2).
Após cada avaliação ser salva ou atualizada, a plataforma recalcula o resultado consolidado com base no método de avaliação da oportunidade e o armazena em consolidatedResult.
Um administrador define o status final, como aprovada, suplente, não aprovada ou inválida, com base nos resultados consolidados.
RegistrationEvaluation
Uma RegistrationEvaluation registra a avaliação individual de um avaliador sobre uma inscrição.
| Campo | Descrição |
|---|---|
registration | Inscrição que está sendo avaliada. |
user | Conta de usuário do avaliador. |
evaluationData | Objeto JSON com as respostas do avaliador, estruturado conforme o método de avaliação. |
result | Resultado textual calculado para essa avaliação individual. |
status | 0 = rascunho, 1 = avaliada, 2 = enviada para a comissão. |
isTiebreaker | Indica se a avaliação foi enviada para desempate. |
committee | Nome do grupo de comissão ao qual o avaliador pertence. |
sentTimestamp | Momento em que a avaliação foi enviada. |
// Envia todas as avaliações do usuário atual
$opportunity->sendUserEvaluations($user);Distribuição de avaliadores
A plataforma suporta exceções de distribuição por inscrição:
valuersIncludeList— IDs de usuário que obrigatoriamente devem avaliar essa inscrição, independentemente da distribuição padrãovaluersExcludeList— IDs de usuário que não devem avaliar essa inscriçãovaluers— lista final calculada de avaliadores atribuídos
Edição após o envio
Gestores da oportunidade podem permitir que a pessoa proponente edite campos específicos após o envio, configurando editableUntil e editableFields. As alterações são enviadas via sendEditableFields().
// Concede direito de edição após o envio
$registration->editableUntil = new DateTime('2024-06-30 23:59:59');
$registration->editableFields = ['field_123', 'field_456'];
$registration->save();Selos em caso de aprovação
Quando uma oportunidade publica seus resultados, inscrições aprovadas disparam a atribuição automática de selos aos agentes relevantes, como proprietário, coletivo e instituição, com base na configuração registrationSeals.
Exportação
O módulo Spreadsheets fornece exportação de inscrições e dados de avaliação. As exportações podem ser geradas por fase da oportunidade e filtradas por status.
Prestação de contas
O módulo OpportunityAccountability estende o fluxo de inscrições para acompanhar a entrega de relatórios de prestação de contas e documentos financeiros pelas pessoas aprovadas após o período de execução.
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.