Regras de negócio · Entrevistas

RN-ENTREVISTAS-001 · Pessoa cliente fixa

Condição: cadastrar uma entrevista.

Resultado: a pessoa cliente deve existir e estar no alcance de leitura do usuário. Sua identificação permanece fixa após a criação. O nome e a unidade de origem são copiados no cadastro da entrevista.


RN-ENTREVISTAS-002 · Encaminhamento por núcleos

Condição: cadastrar a entrevista ou enviar núcleos na edição.

Resultado: informar ao menos um núcleo existente. As siglas são normalizadas para maiúsculas e deduplicadas. Uma lista que fique vazia após a normalização é recusada. Na edição, a lista enviada substitui integralmente a anterior.


RN-ENTREVISTAS-003 · Classificação pelo assunto

Condição: informar ou alterar o assunto.

Resultado: o assunto deve pertencer ao catálogo. O Hub deriva o nome e a área correspondentes. Enviar subjectSlug: null na edição remove assunto, nome e área. O núcleo sugerido pela área não restringe a escolha de núcleos existentes.


RN-ENTREVISTAS-004 · Data do atendimento e relato

Condição: registrar ou corrigir os dados do atendimento.

Resultado: a data deve ser uma data civil existente em YYYY-MM-DD. Sua ausência na criação usa o dia corrente em America/Recife. O relato admite até 100.000 caracteres e pode ser limpo por string vazia. As marcas de estudo inicial e pesquisa de recurso são independentes e começam falsas quando não informadas.


RN-ENTREVISTAS-005 · Atualização parcial

Condição: editar a entrevista.

Resultado: campos ausentes preservam o valor atual. A edição permite núcleos, assunto, relato, data e marcas; pessoa cliente, autor, dados copiados da pessoa e situação não são alterados por essa operação. Mudanças efetivas registram evento na mesma transação; uma edição sem mudança não acrescenta evento.


RN-ENTREVISTAS-006 · Situações e transições

Condição: criar a entrevista ou solicitar uma mudança de situação.

Resultado: a criação usa ABERTA. Mudanças seguem a tabela abaixo; a transição para o próprio estado e os pares ausentes são recusados.

Situação atualDestinos
ABERTAEM_ANALISE, ARQUIVADA
EM_ANALISEABERTA, CONCLUIDA_COM_DIREITO, CONCLUIDA_SEM_DIREITO, ARQUIVADA
CONCLUIDA_COM_DIREITOEM_ANALISE
CONCLUIDA_SEM_DIREITOEM_ANALISE
ARQUIVADAABERTA

A justificativa é opcional e admite até 500 caracteres. Reaberturas de situações concluídas ou arquivadas exigem autorização adicional. A ficha recebe allowedStatusTransitions já calculado para o usuário.


RN-ENTREVISTAS-007 · Acesso e capacidades

Condição: consultar ou executar uma operação sobre uma entrevista.

Resultado: a API verifica a identidade e o alcance do registro. Entrevista inexistente, excluída ou fora do alcance recebe a mesma resposta de registro não encontrado. A ficha informa canDelete e allowedStatusTransitions; essas capacidades orientam as ações exibidas e não dispensam a validação no servidor.

As operações de criação, edição, situação e exclusão exigem usuário pessoal autenticado. A matriz detalhada de perfis e vínculos permanece pendente de revisão.


RN-ENTREVISTAS-008 · Exclusão lógica

Condição: usuário com capacidade de exclusão solicita a retirada da entrevista.

Resultado: o Hub registra instante e autor da exclusão e o evento correspondente na mesma transação. A linha permanece armazenada, mas sai das listagens e das leituras do registro. Arquivamento é uma mudança de situação e não substitui a exclusão lógica.


RN-ENTREVISTAS-009 · Busca e filtros

Condição: consultar a listagem.

Resultado: os filtros restringem o alcance já autorizado. Filtros de eixos diferentes combinam em E; várias situações combinam em OU entre si. A ordenação usa cadastro decrescente e identificador decrescente como desempate.

A busca ignora caixa e acento, exige todas as palavras consideradas e usa até seis palavras. Termos com menos de dois caracteres não restringem a lista. Nome da pessoa, nome e slug do assunto e siglas dos núcleos participam da busca; o relato não participa. O período filtra createdAt, não consultationDate.


RN-ENTREVISTAS-010 · Leitura documental

Condição: consultar as juntadas relacionadas à entrevista.

Resultado: a entrevista deve ser legível. A leitura da juntada não concede acesso ao documento; o resumo do documento é null quando o arquivo não é legível pelo usuário.


RN-ENTREVISTAS-011 · Resumo da entrevista

Condição: usuário pessoal autenticado solicita um resumo de entrevista legível.

Resultado: o serviço usa o relato e o histórico legível, guarda o texto gerado e o reutiliza até sua invalidação. Escritas que registram eventos da entrevista invalidam o resumo na mesma transação. Em falha de geração, a nova tentativa é manual.


RN-ENTREVISTAS-012 · Acervo externo por pessoa

Condição: consultar entrevistas do espelho Projuris.

Resultado: o acesso parte de uma pessoa local legível e depende da integração disponível. Com a integração habilitada, uma pessoa sem código Projuris recebe uma página vazia. Registros excluídos do espelho não são apresentados. Os dados externos mantêm seus rótulos e identificadores próprios.


RN-ENTREVISTAS-013 · Título e entrevistador opcionais

Condição: o usuário registra ou edita uma entrevista.

Estado: em implementação na API.

Resultado: title e interviewerUserId podem ser informados, mas não são obrigatórios.


RN-ENTREVISTAS-014 · Profissionalização do relato só grava após confirmação

Condição: o usuário pede a profissionalização do relato da entrevista.

Estado: em implementação na API.

Resultado: POST /v1/consultations/{id}/notes/professionalize devolve uma prévia do texto revisado sem salvar. O relato só é gravado depois que o usuário confirma a prévia e a envia por PATCH /v1/consultations/{id}.


RN-ENTREVISTAS-015 · Código da entrevista

Condição: uma entrevista é criada.

Estado: em implementação na API.

Resultado: o servidor atribui code no formato ENT-AAAA-NNN…, em sequência de no mínimo três dígitos dentro do ano da data da entrevista; o código é único e não é informado pelo usuário. As entrevistas existentes recebem código na mesma sequência.

Camadas do domínio