Skip to content

API de Campos

Endpoints para gerenciamento de campos dinâmicos.

globalFieldConfiguration.getAll

Lista todas as configurações globais de campos.

Tipo: Query (GET)
Autenticação: Não requerida

Response

typescript
Array<{
  id: string;
  fieldKey: string;
  fieldName: string;
  fieldType: "TEXT" | "TEXTAREA" | "NUMBER" | "DATE" | "SELECT" | "BOOLEAN";
  section: string;
  required: boolean;
  visible: boolean;
  sortOrder: number;
  isSystem: boolean;
  minLength?: number;
  maxLength?: number;
  min?: number;
  max?: number;
  pattern?: string;
  selectOptions?: string[];
}>

globalFieldConfiguration.create

Cria novo campo global.

Tipo: Mutation (POST)
Autenticação: Admin/Super apenas

Input

typescript
{
  fieldKey: string;
  fieldName: string;
  fieldType: "TEXT" | "TEXTAREA" | "NUMBER" | "DATE" | "SELECT" | "BOOLEAN";
  section: string;
  required?: boolean;
  visible?: boolean;
  sortOrder?: number;
  minLength?: number;
  maxLength?: number;
  selectOptions?: string[];  // Obrigatório para SELECT
}

Validações

  • fieldKey único
  • selectOptions obrigatório para tipo SELECT
  • Admin/Super permissão

globalFieldConfiguration.update

Atualiza campo existente.

Tipo: Mutation (POST)
Autenticação: Admin/Super apenas

Input

typescript
{
  id: string;
  fieldName?: string;
  section?: string;
  required?: boolean;
  visible?: boolean;
  sortOrder?: number;
  // ... outras propriedades
}

Restrições

  • Campos do sistema (isSystem: true) não podem ser editados
  • Tipo de campo não pode ser alterado se em uso
  • fieldKey não pode ser alterado

globalFieldConfiguration.delete

Deleta campo personalizado.

Tipo: Mutation (POST)
Autenticação: Admin/Super apenas

Input

typescript
{
  id: string;
}

Validações

  • Campo não pode ser de sistema
  • Campo não pode estar em uso em documentos
  • Retorna erro com contagem se em uso

Erro

json
{
  "error": {
    "code": "CONFLICT",
    "message": "Não é possível remover este campo pois está vinculado a 45 documento(s)"
  }
}

fieldSettings.getAll

Retorna configurações de campo para usuário específico.

Tipo: Query (GET)
Autenticação: Obrigatória

Input

typescript
{
  userId?: string;  // Opcional, usa usuário autenticado se não fornecido
}

Response

typescript
Array<{
  id: string;
  userId: string;
  fieldConfigId: string;
  visible: boolean;
  required: boolean;
  customLabel?: string;
  fieldConfig: {
    id: string;
    fieldKey: string;
    fieldName: string;
    fieldType: string;
    section: string;
    sortOrder: number;
  }
}>

fieldSettings.updateFieldConfiguration

Atualiza configuração de campo para usuário.

Tipo: Mutation (POST)
Autenticação: Obrigatória

Input

typescript
{
  fieldConfigId: string;
  visible?: boolean;
  required?: boolean;
  customLabel?: string;
}

fieldSettings.bulkUpdate

Atualização em lote de configurações.

Tipo: Mutation (POST)
Autenticação: Obrigatória

Input

typescript
{
  updates: Array<{
    fieldConfigId: string;
    visible?: boolean;
    required?: boolean;
  }>
}

Tipos de Campo

TEXT

  • minLength, maxLength
  • pattern (regex)

TEXTAREA

  • minLength, maxLength

NUMBER

  • min, max

DATE

  • Formato ISO 8601 (YYYY-MM-DD)

SELECT

  • selectOptions (array de strings, obrigatório)

BOOLEAN

  • true/false

Exemplos

Criar Campo de Texto

typescript
await trpc.globalFieldConfiguration.create.mutate({
  fieldKey: "numeroProcesso",
  fieldName: "Número do Processo",
  fieldType: "TEXT",
  section: "IDENTIFICATION",
  required: false,
  visible: true,
  sortOrder: 5,
  pattern: "^\\d{4}/\\d{4}$"
});

Criar Campo Select

typescript
await trpc.globalFieldConfiguration.create.mutate({
  fieldKey: "prioridade",
  fieldName: "Prioridade",
  fieldType: "SELECT",
  section: "OTHER",
  selectOptions: ["Baixa", "Média", "Alta", "Urgente"]
});

Atualizar Visibilidade

typescript
await trpc.fieldSettings.updateFieldConfiguration.mutate({
  fieldConfigId: "field-uuid",
  visible: false
});

Sistema de Gestão de Arquivos Digitais