Pular para o conteúdo principal

Referência da API

IDataSet

Interface central em packages/coreflow/lib/src/contracts/.

Método / PropriedadeTipoDescrição
stateDataSetStateEstado atual: Browse, Edit, Insert, Saving, Closed
currentRecordMap<String, dynamic>?Registro posicionado
recordsList<Map<String, dynamic>>Todos os registros carregados
isFieldModified(field)boolDetecta se campo foi alterado (delta)
open()Future<void>Carrega dados da fonte
edit() / insert()voidMuda estado para Edit/Insert
post()Future<void>Valida e persiste registro
cancel() / delete()void / FutureDescarta alterações / Remove registro
first(), prior(), next(), last()voidNavegação entre registros

FieldMetadata

Em packages/coreflow/lib/src/metadata/field_metadata.dart.

PropriedadeTipoDescrição
nameStringNome interno (chave no Map de dados)
labelStringRótulo exibido na UI
requiredboolCampo obrigatório
maxLengthint?Tamanho máximo
defaultValuedynamicValor padrão no OnNewRecord
readOnlyboolSomente leitura
maskString?Máscara de formatação
validatorsList<FieldValidator>Validadores customizados
lookupLookupConfig?Configuração de seletor

RoutinePermissions

Em packages/coreflow_permissions/.

RoutinePermissions.admin()    // acesso total
RoutinePermissions.operator() // insert, edit, delete, print
RoutinePermissions.viewer() // somente leitura
PropriedadeTipoDescrição
canView / canInsert / canEdit / canDelete / canPrintboolPermissões de ação
hiddenFieldsList<String>Campos ocultos para o perfil
readOnlyFieldsList<String>Campos somente leitura
insertDeniedFieldsList<String>Campos bloqueados na inserção

axial_rest_client — IRestClient

Package Dart puro em ERP-Axial/packages/axial_rest_client/.

Future<RestResponse> get(String path, {Map<String, String>? queryParams, Map<String, String>? headers});
Future<RestResponse> post(String path, {required Map<String, dynamic> body, Map<String, String>? headers});
Future<RestResponse> put(String path, {required Map<String, dynamic> body, Map<String, String>? headers});
Future<RestResponse> delete(String path, {Map<String, String>? headers});
Future<RestResponse> patch(String path, {Map<String, dynamic>? body, Map<String, String>? headers});

RestError (sealed): NetworkError | TimeoutError | HttpError | ParseError

Contratos arquiteturais

  • workbench_shell não pode importar nenhum coreflow_* — integração exclusivamente via app_composition.dart
  • coreflow_flutter não importa coreflow_form (layering unidirecional)
  • axial_rest_client não pode importar coreflow_*, workbench_shell ou Flutter SDK
  • Guardrail tests em test/architecture/ validam essas regras automaticamente a cada CI