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 DBTableDoc: VitruvioComponentDoc = {
   component: "DBTable",
   summary: "Documentacao do componente DBTable mapeada a partir de exemplos reais de XML.",
   status: "draft",
   context: {
      module: "Vitruvio",
      family: "BancoDeDados",
      mappedFrom: ["Vitruvio/Paineis", "Vitruvio/Processos"],
      occurrences: { total: 2730, paineis: 1844, processos: 886 }
   },
   sections: {
      purpose: "Componente orientado a dados com integracao de datasource SQL e bind de parametros.",
      basicUsage: "Usar DBTable no contexto adequado da tela; as propriedades abaixo foram observadas em exemplos reais do projeto.",
      properties: [
         "align",
         "allowHideColumns",
         "alwaysSelectable",
         "autoRefreshSeconds",
         "autoSelectTextInEditableFieldFocus",
         "borderless",
         "cache",
         "caption",
         "columnSortMode",
         "compact",
         "debugSQL",
         "description",
         "draggable",
         "drawFilterButton",
         "drawRefreshButton",
         "editable",
         "editAsync",
         "editDisposition",
         "enabled",
         "expand-ratio",
         "expandRatio",
         "exportaXLSX",
         "exportCSV",
         "exportPDF",
         "exportXLS",
         "frozenColumns",
         "gridSelectable",
         "height",
         "heigth",
         "id",
         "immediate",
         "keepOldStateDays",
         "keepState",
         "maxSelectedItens",
         "mobileAllowed",
         "multivalue",
         "required",
         "requiredFilter",
         "requireFilter",
         "resolution",
         "rowCacheRate",
         "rowHeight",
         "rows",
         "scrollEditableGridOnUserFocus",
         "searchCaption",
         "selectable",
         "showRowCount",
         "stateScope",
         "type",
         "updatable",
         "useGridComponent",
         "visible",
         "width"
      ],
      propertyValues: {
         "align": ["BOTTOM_CENTER", "BOTTOM_LEFT", "BOTTOM_RIGHT", "MIDDLE_CENTER", "MIDDLE_LEFT", "MIDDLE_RIGHT", "TOP_CENTER", "TOP_LEFT", "TOP_RIGHT"],
         "allowHideColumns": ["false", "true"],
         "alwaysSelectable": ["false", "true"],
         "autoRefreshSeconds": ["1", "10", "120", "3", "30", "60"],
         "autoSelectTextInEditableFieldFocus": ["true"],
         "borderless": ["false", "true"],
         "cache": ["false"],
         "caption": ["", " ", "Abastecimento por comprador", "Abastecimento por Dispositivo", "Acompanhamento", "Acompanhamento da alocação no CD", "Acompanhamento Mês", "Acompanhamento Semana", "Alocação", "Alterar Política", "Andamento dos Processos de Importação", "Anotações disponíveis", "Anotações Registradas", "ANTERIOR À OPERAÇÃO", "Análises do período selecionado:", "__TRUNCADO__"],
         "columnSortMode": ["DEFAULT_DISABLED", "DEFAULT_ENABLED", "FORCE_DISABLED"],
         "compact": ["false", "true"],
         "debugSQL": ["false", "true"],
         "description": ["Aqui é possivel acompanhar a alocação dos itens no CD", "Clique no motivo para poder alterá-lo", "Informativo", "Marcas:", "Selecione uma linha dos processos acima para visualizar seus detalhes", "Verifique as repostas dos checklists"],
         "draggable": ["true"],
         "drawFilterButton": ["true"],
         "drawRefreshButton": ["false", "true"],
         "editable": ["false", "true"],
         "editAsync": ["false"],
         "editDisposition": ["INLINE", "MODAL"],
         "enabled": ["false", "true"],
         "expand-ratio": ["1"],
         "expandRatio": [".25", ".3", ".7", ".75", "0", "0.1", "0.2", "0.3", "0.5", "0.6", "0.7", "0.8", "0.9", "1", "1.0", "__TRUNCADO__"],
         "exportaXLSX": ["true"],
         "exportCSV": ["false", "true"],
         "exportPDF": ["true"],
         "exportXLS": ["false", "true"],
         "frozenColumns": ["1", "2", "3", "4", "5", "8", "9"],
         "gridSelectable": ["false", "true"],
         "height": ["100%", "20%", "200", "30%", "300", "300px", "306px", "350px", "400", "50%", "517px", "80%", "90%", "95%"],
         "heigth": ["100%"],
         "id": ["acompanhamento_mes", "acompanhamento_semana", "agendamento", "aniversario_compacta1", "arquivos", "assinaturas", "blackfriday_compacta1", "blackfriday_compacta2", "bloqueadosRessuprimentos", "CAMPOS_RELATORIO", "centrocustoAgrup", "centroCustoRateio", "coletaPendente", "coletas", "coletas2", "__TRUNCADO__"],
         "immediate": ["false", "true"],
         "keepOldStateDays": ["90"],
         "keepState": ["false", "true"],
         "maxSelectedItens": ["1", "1000", "10000", "20", "200", "300", "30000", "500", "5000", "50000"],
         "mobileAllowed": ["true"],
         "multivalue": ["false", "true"],
         "required": ["false", "true"],
         "requiredFilter": ["true"],
         "requireFilter": ["false", "true"],
         "resolution": ["fixed"],
         "rowCacheRate": ["10", "15", "150", "20"],
         "rowHeight": ["20px", "32px", "33px", "35px", "50px"],
         "rows": ["1", "10", "100", "11", "12", "13", "14", "15", "16", "17", "18", "2", "20", "200", "21", "__TRUNCADO__"],
         "scrollEditableGridOnUserFocus": ["true"],
         "searchCaption": ["Buscar", "teste", "true"],
         "selectable": ["false", "true"],
         "showRowCount": ["false", "true"],
         "stateScope": ["INSTANCE", "PROCESS_KEY"],
         "type": ["date", "number", "string"],
         "updatable": ["false", "true"],
         "useGridComponent": ["false", "true"],
         "visible": ["false", "true"],
         "width": ["100%", "50%", "95%", "97%", "99%"]
      },
      propertyValueTypes: {
         "align": "enum",
         "allowHideColumns": "boolean",
         "alwaysSelectable": "boolean",
         "autoRefreshSeconds": "numeric",
         "autoSelectTextInEditableFieldFocus": "boolean",
         "borderless": "boolean",
         "cache": "boolean",
         "caption": "text",
         "columnSortMode": "enum",
         "compact": "boolean",
         "debugSQL": "boolean",
         "description": "text",
         "draggable": "boolean",
         "drawFilterButton": "boolean",
         "drawRefreshButton": "boolean",
         "editable": "boolean",
         "editAsync": "boolean",
         "editDisposition": "enum",
         "enabled": "boolean",
         "expand-ratio": "numeric",
         "expandRatio": "mixed",
         "exportaXLSX": "boolean",
         "exportCSV": "boolean",
         "exportPDF": "boolean",
         "exportXLS": "boolean",
         "frozenColumns": "numeric",
         "gridSelectable": "boolean",
         "height": "numeric",
         "heigth": "numeric",
         "id": "text",
         "immediate": "boolean",
         "keepOldStateDays": "numeric",
         "keepState": "boolean",
         "maxSelectedItens": "numeric",
         "mobileAllowed": "boolean",
         "multivalue": "boolean",
         "required": "boolean",
         "requiredFilter": "boolean",
         "requireFilter": "boolean",
         "resolution": "enum",
         "rowCacheRate": "numeric",
         "rowHeight": "numeric",
         "rows": "numeric",
         "scrollEditableGridOnUserFocus": "boolean",
         "searchCaption": "text",
         "selectable": "boolean",
         "showRowCount": "boolean",
         "stateScope": "enum",
         "type": "enum",
         "updatable": "boolean",
         "useGridComponent": "boolean",
         "visible": "boolean",
         "width": "numeric"
      },
      events: [

      ],
      examples: [
         "Vitruvio/Paineis/imp - Pônica - aux - Ações(Previsão_Real).xml:731",
         "Vitruvio/Paineis/imp - Pônica - aux - Ações(Previsão_Real).xml:809",
         "Vitruvio/Paineis/imp - Pônica - aux - Ações(Previsão_Real).xml:862",
         "Vitruvio/Paineis/Ficha Azul_ Cadastro de Tipo.xml:147",
         "Vitruvio/Paineis/Relatório de Transferências.xml:274",
         "Vitruvio/Paineis/imp - Pônica - aux - Detalhes Pré Pedido.xml:347",
         "Vitruvio/Paineis/Cadastro de Usuários.xml:454",
         "Vitruvio/Paineis/Acompanhamento dos produtos da NL.xml:321",
         "Vitruvio/Paineis/Manutenção de Gôndolas.xml:726",
         "Vitruvio/Paineis/Cadastro - Metas.xml:342",
         "Vitruvio/Paineis/Resultados da Geração de Dados abastecimento.xml:89",
         "Vitruvio/Paineis/03 - Registro Temporário de Boletos BB.xml:279"
      ],
      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 DBTableDoc;
