export type VitruvioComponentDoc = {
   component: string;
   summary: string;
   status: "draft" | "review" | "ready";
   context: {
      module: string;
      family: string;
      mappedFrom: string[];
      occurrences: {
         total: number;
         paineis: number;
         processos: number;
      };
   };
   sections: {
      purpose: string;
      basicUsage: string;
      properties: string[];
      propertyValues: { [property: string]: string[] };
      propertyValueTypes: { [property: string]: "boolean" | "enum" | "numeric" | "text" | "mixed" };
      events: string[];
      examples: string[];
      notes: string[];
   };
};

const DBSearchFieldDoc: VitruvioComponentDoc = {
   component: "DBSearchField",
   summary: "Documentacao do componente DBSearchField mapeada a partir de exemplos reais de XML.",
   status: "draft",
   context: {
      module: "Vitruvio",
      family: "BancoDeDados",
      mappedFrom: ["Vitruvio/Paineis", "Vitruvio/Processos"],
      occurrences: { total: 1364, paineis: 916, processos: 448 }
   },
   sections: {
      purpose: "Componente orientado a dados com integracao de datasource SQL e bind de parametros.",
      basicUsage: "Usar DBSearchField no contexto adequado da tela; as propriedades abaixo foram observadas em exemplos reais do projeto.",
      properties: [
         "align",
         "allowNullSelection",
         "caption",
         "description",
         "draggable",
         "enabled",
         "expandRatio",
         "height",
         "id",
         "immediate",
         "key-field-search-enabled",
         "key-field-search-width",
         "keyCode",
         "readOnly",
         "required",
         "requiredMessage",
         "restrictAcessToCompanyMembers",
         "searchCaption",
         "searchViewDescription",
         "searchViewHeight",
         "searchViewResizable",
         "searchViewRows",
         "searchViewTitle",
         "searchViewWidth",
         "searchViewwidth",
         "setCompany",
         "setCompanyExternalId",
         "type",
         "updatable",
         "visible",
         "width"
      ],
      propertyValues: {
         "align": ["BOTTOM_LEFT", "BOTTOM_RIGHT", "MIDDLE_CENTER", "MIDDLE_LEFT", "TOP_CENTER", "TOP_LEFT", "TOP_RIGHT"],
         "allowNullSelection": ["false"],
         "caption": ["Adicionar Fornecedor", "Adicionar Loja", "Agendamento", "Agendamentos de Processo", "Agendamentos de Relatório", "Agendamentos de Script", "Agente que gerou notificação", "Agrupador", "Analista que recebeu notificação", "Assunto:*", "Ação Promocional", "Ação promocional", "Banco", "Buscar Frete", "Buscar Nota Fiscal do Fornecedor selecionado", "__TRUNCADO__"],
         "description": [" Vincular o Fornecedor Adiantamento deste motivo. ", "Buscar dados Bancários da Empresa no Superus", "Comprador do contrato", "Define o fornecedor da doação para ser enviado na integração", "Fornecedor do contrato", "Fornecedor: ", "Loja selecionada", "Loja selecionavel varia de acordo coma a empresa selecionada", "Loja/Setor", "Loja:", "Loja: ", "O filtro será aplicado após informar algo em seus filtros", "Operação utilizada para transferência de produtos entre lojas.", "Operação: ", "Prestador", "__TRUNCADO__"],
         "draggable": ["false"],
         "enabled": ["false", "true"],
         "expandRatio": [".2", ".25", ".3", ".35", ".4", ".5", ".6", ".7", ".8", "0", "0.1", "0.12", "0.2", "0.25", "0.3", "__TRUNCADO__"],
         "height": ["100%"],
         "id": ["acaoPromocional", "agendamento", "agrupador", "auditoriaField", "BANCO_WIN", "cambioPedido", "categoria", "categoriaEcommerce", "categoriaOriginal", "categoriaPacote", "cbFornecedor", "cbProcesso", "cbUsuario", "cbxGrupoSegundaContagem", "ccNivel1", "__TRUNCADO__"],
         "immediate": ["false", "true"],
         "key-field-search-enabled": ["false", "true"],
         "key-field-search-width": ["0px", "100%", "100px", "200px"],
         "keyCode": ["ENTER"],
         "readOnly": ["false"],
         "required": ["false", "true"],
         "requiredMessage": ["", "Informe o Tipo do Veículo", "Informe um Agendamento", "Informe um fornecedor para visulizar seus produtos.", "Necessário informar um fornecedor para o agendamento do processo.", "Necessário informar um país para o agendamento do processo.", "Necessário informar um produto.", "Necessário informar uma nota emitida para o andamento do processo.", "Obrigatório informar uma loja para realizar abertura do processo", "Selecione uma matrícula", "É\n    obrigatório selecionar um produto", "É obrigatório a loja de origem", "É obrigatório informar a conexão", "É obrigatório informar Loja Origem Produção", "É obrigatório informar o número do contrato. Verifique!", "__TRUNCADO__"],
         "restrictAcessToCompanyMembers": ["false", "true"],
         "searchCaption": ["Busca por Fornecedor", "Descrição da Marca", "Descrição do beneficiário", "Descrição do Equipamento", "Descrição do erro", "Descrição do Local", "Descrição do Modelo", "Descrição do setor", "DRE", "Escolha um agrupador", "Escolha um Alerta", "Escolha um ano", "Escolha um centro de custo", "Escolha um Centro de custo", "Escolha um DRE", "__TRUNCADO__"],
         "searchViewDescription": ["Pesquise aqui o fornecedor desejado.", "Pesquise aqui o produto desejado.", "Por favor informe parâmetros para a pesquisa.", "Por favor informe um critério para a pesquisa", "Por favor informe um critério para a pesquisa.", "Selecione a ação promocional", "Selecione o Fornecedor", "Selecione o Processo", "Selecione o Produto", "Selecione um Banco", "Selecione um certificado", "Selecione um certificado para alterar suas informações"],
         "searchViewHeight": ["100%", "1200", "50%", "55%", "60%", "65%", "70%", "75%", "80%", "85%", "90%", "95%"],
         "searchViewResizable": ["false", "true"],
         "searchViewRows": ["10", "100", "17", "250", "30"],
         "searchViewTitle": ["Fornecedores", "Lista de ações", "Lista de Fornecedor", "Lista de Processos", "Lista de Produtos", "Localizar processo", "Localize um processo", "Lojas", "Operações", "Pesquisa centro de custo nível 2", "Pesquisa centro de custo nível 4", "Pesquisa centro de custo nível 5", "Pesquisa de centro de custo", "Pesquisa de Centro de Custos", "Pesquisa de contas", "__TRUNCADO__"],
         "searchViewWidth": ["100%", "110%", "50%", "60%", "65%", "70%", "75%", "80%", "85%", "90%", "95%"],
         "searchViewwidth": ["100%"],
         "setCompany": ["false", "true"],
         "setCompanyExternalId": ["false", "true"],
         "type": ["number", "string"],
         "updatable": ["true"],
         "visible": ["false", "true"],
         "width": ["100%", "25%", "30%", "40%", "50%", "500px", "60%", "600", "600px", "70%", "700px", "75%", "80%", "800px", "90%", "__TRUNCADO__"]
      },
      propertyValueTypes: {
         "align": "enum",
         "allowNullSelection": "boolean",
         "caption": "text",
         "description": "text",
         "draggable": "boolean",
         "enabled": "boolean",
         "expandRatio": "text",
         "height": "numeric",
         "id": "text",
         "immediate": "boolean",
         "key-field-search-enabled": "boolean",
         "key-field-search-width": "numeric",
         "keyCode": "enum",
         "readOnly": "boolean",
         "required": "boolean",
         "requiredMessage": "text",
         "restrictAcessToCompanyMembers": "boolean",
         "searchCaption": "text",
         "searchViewDescription": "text",
         "searchViewHeight": "numeric",
         "searchViewResizable": "boolean",
         "searchViewRows": "numeric",
         "searchViewTitle": "text",
         "searchViewWidth": "numeric",
         "searchViewwidth": "numeric",
         "setCompany": "boolean",
         "setCompanyExternalId": "boolean",
         "type": "enum",
         "updatable": "boolean",
         "visible": "boolean",
         "width": "numeric"
      },
      events: [

      ],
      examples: [
         "Vitruvio/Paineis/imp - Pônica - aux - Ações(Previsão_Real).xml:346",
         "Vitruvio/Paineis/Impressão de etiqueta LJ06 WS.xml:429",
         "Vitruvio/Paineis/Cadastro de Usuários.xml:512",
         "Vitruvio/Paineis/Manutenção de Gôndolas.xml:219",
         "Vitruvio/Paineis/Cadastro - Metas.xml:405",
         "Vitruvio/Paineis/03 - Registro Temporário de Boletos BB.xml:328",
         "Vitruvio/Paineis/Kanban - Cadastro de Projetos.xml:440",
         "Vitruvio/Paineis/Kanban - Cadastro de Projetos.xml:518",
         "Vitruvio/Paineis/Kanban - Cadastro de Projetos.xml:627",
         "Vitruvio/Paineis/FIFO.xml:2001",
         "Vitruvio/Paineis/CD - Cadastro de Regras de Priorização WMS.xml:116",
         "Vitruvio/Paineis/CD - Cadastro de Regras de Priorização WMS.xml:507"
      ],
      notes: [
         "Mapeamento automatico baseado em uso observado nos XMLs de paineis e processos.",
         "Valores ruidosos/textos muito longos sao filtrados para facilitar consulta.",
         "propertyValueTypes classifica o perfil observado da propriedade (boolean, enum, numeric, text ou mixed).",
         "Validar com documentacao oficial do Vitruvio quando houver divergencia funcional."
      ]
   }
};

export default DBSearchFieldDoc;
