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 DBTwinColSelectDoc: VitruvioComponentDoc = {
   component: "DBTwinColSelect",
   summary: "Documentacao do componente DBTwinColSelect mapeada a partir de exemplos reais de XML.",
   status: "draft",
   context: {
      module: "Vitruvio",
      family: "BancoDeDados",
      mappedFrom: ["Vitruvio/Paineis", "Vitruvio/Processos"],
      occurrences: { total: 477, paineis: 389, processos: 88 }
   },
   sections: {
      purpose: "Componente orientado a dados com integracao de datasource SQL e bind de parametros.",
      basicUsage: "Usar DBTwinColSelect no contexto adequado da tela; as propriedades abaixo foram observadas em exemplos reais do projeto.",
      properties: [
         "align",
         "allowFilter",
         "allowNullSelection",
         "caption",
         "description",
         "draggable",
         "enabled",
         "expandRatio",
         "height",
         "id",
         "immediate",
         "leftCaption",
         "multivalue",
         "required",
         "requiredMessage",
         "requireFilter",
         "rightCaption",
         "rows",
         "searchCaption",
         "type",
         "updatable",
         "visible",
         "width"
      ],
      propertyValues: {
         "align": ["MIDDLE_CENTER", "MIDDLE_LEFT", "TOP_CENTER", "TOP_LEFT"],
         "allowFilter": ["false", "true"],
         "allowNullSelection": ["false", "true"],
         "caption": ["Administradores do Kanban", "Agenda", "Aprovação Comercial", "Aprovação Marketing", "Assunto:", "Ativo", "Campos", "Cargo", "Categoria", "Categoria Meta", "Categorias", "Check Stands para coletar:", "Checklist:", "Colaboradores Estratégicos", "Colunas Visíveis", "__TRUNCADO__"],
         "description": ["", "Paineis extras que o usuario poderá ter acesso.", "Selecione as empresas habilitadas", "Selecione as empresas que utilizarão o checklist", "Selecione os grupos habilitados", "Selecione os marcadores que serão utilizados no checklist", "Selecione os setores que do checklist", "Selecione os setores que utilizarão o checklist", "Selecione os usuários para geração", "Selecione os usuários que serão vinculados a essa impressora", "Usuários com permissão administrativa"],
         "draggable": ["true"],
         "enabled": ["false"],
         "expandRatio": ["0.1", "0.3", "0.4", "0.5", "0.6", "0.7", "0.8", "1", "1.0", "1.00", "1.5"],
         "height": ["100%", "50%"],
         "id": ["camposUsuario", "cbxAprovaRappi", "cbxStatusComercial", "colunasTabela", "ConfigDisp", "creditoPresumido", "dbcAdminsKanban", "dbcCoordenador", "dbcLoja", "dbcTecnico", "dbcTipoManutencao", "dbDias", "dbFicha", "dbItensLojas", "dbLojas", "__TRUNCADO__"],
         "immediate": ["true"],
         "leftCaption": ["Usuários disponíveis"],
         "multivalue": ["true"],
         "required": ["false", "true"],
         "requiredMessage": ["Requerido", "Selecione ao menos uma ficha", "É obrigatório a loja de origem"],
         "requireFilter": ["false", "true"],
         "rightCaption": ["Usuários selecionados"],
         "rows": ["10", "11", "12", "15", "25", "3", "4", "5", "6", "7", "8"],
         "searchCaption": ["Comprador", "Filtrar", "Setores", "true"],
         "type": ["number", "string"],
         "updatable": ["true"],
         "visible": ["false", "true"],
         "width": ["100%", "500px", "70%", "90%", "95%"]
      },
      propertyValueTypes: {
         "align": "enum",
         "allowFilter": "boolean",
         "allowNullSelection": "boolean",
         "caption": "text",
         "description": "text",
         "draggable": "boolean",
         "enabled": "boolean",
         "expandRatio": "numeric",
         "height": "numeric",
         "id": "text",
         "immediate": "boolean",
         "leftCaption": "text",
         "multivalue": "boolean",
         "required": "boolean",
         "requiredMessage": "text",
         "requireFilter": "boolean",
         "rightCaption": "text",
         "rows": "numeric",
         "searchCaption": "text",
         "type": "enum",
         "updatable": "boolean",
         "visible": "boolean",
         "width": "numeric"
      },
      events: [

      ],
      examples: [
         "Vitruvio/Paineis/Cadastro de Usuários.xml:734",
         "Vitruvio/Paineis/Cadastro de Usuários.xml:753",
         "Vitruvio/Paineis/Cadastro de Usuários.xml:768",
         "Vitruvio/Paineis/CD - Cadastro de Regras de Priorização WMS.xml:487",
         "Vitruvio/Paineis/Venda produto Unidade.xml:142",
         "Vitruvio/Paineis/Análise de Movimentação de Produtos.xml:453",
         "Vitruvio/Paineis/Análise de Movimentação de Produtos.xml:467",
         "Vitruvio/Paineis/Ativos X Finalizados (Loja).xml:54",
         "Vitruvio/Paineis/hml - kanban proj.xml:1136",
         "Vitruvio/Paineis/hml - kanban proj.xml:1151",
         "Vitruvio/Paineis/Análise Importações Abertas - grid.xml:74",
         "Vitruvio/Paineis/Checklists - Conformes e não conformes.xml:208"
      ],
      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 DBTwinColSelectDoc;
