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 DesktopPanelDoc: VitruvioComponentDoc = {
   component: "DesktopPanel",
   summary: "Documentacao do componente DesktopPanel mapeada a partir de exemplos reais de XML.",
   status: "draft",
   context: {
      module: "Vitruvio",
      family: "Layout",
      mappedFrom: ["Vitruvio/Paineis", "Vitruvio/Processos"],
      occurrences: { total: 9, paineis: 0, processos: 9 }
   },
   sections: {
      purpose: "Componente de organizacao visual da tela para estruturar conteudo e navegacao.",
      basicUsage: "Usar DesktopPanel no contexto adequado da tela; as propriedades abaixo foram observadas em exemplos reais do projeto.",
      properties: [
         "align",
         "external",
         "forceFieldsRender",
         "forceLayoutsRender",
         "height",
         "id",
         "layoutId",
         "panelKey",
         "visible"
      ],
      propertyValues: {
         "align": ["TOP_CENTER"],
         "external": ["true"],
         "forceFieldsRender": ["", "f_produto, rede, f_loja, idAba", "parProcesso", "parProduto, parLoja", "parTabela"],
         "forceLayoutsRender": ["", "layoutPrincipal"],
         "height": ["100%", "500px", "600px"],
         "id": ["deskVendasDetalhes", "informacoesVendas", "layoutImpressoraMob", "painel_manutencao", "parPanelAlteracao", "parPanelPedidos", "parPanelPedidos1"],
         "layoutId": ["layoutImpressora", "layoutPrincipal", "parPanelAlteracaoTabela", "parPanelPedidosLayout", "parPanelPedidosLayoutAjustes", "pnlListaVendas", "pnlVendas"],
         "panelKey": ["configuracao_impressoras_teste", "detalhes_produtos", "mn_pick", "pnlAprovacao", "pnlAprovacaoDiretoria", "pnlAprovacaoDiretoriaMargem", "vendas_detalhada"],
         "visible": ["false"]
      },
      propertyValueTypes: {
         "align": "enum",
         "external": "boolean",
         "forceFieldsRender": "mixed",
         "forceLayoutsRender": "enum",
         "height": "numeric",
         "id": "enum",
         "layoutId": "enum",
         "panelKey": "enum",
         "visible": "boolean"
      },
      events: [

      ],
      examples: [
         "Vitruvio/Processos/CD - Auditoria de Picking/form_web_mobile.xml:298",
         "Vitruvio/Processos/Cadastro de Produtos/form_web_mobile.xml:814",
         "Vitruvio/Processos/Pré Entrada - Hortaliças/form_web_mobile.xml:2564",
         "Vitruvio/Processos/Importação/form_web_mobile.xml:164",
         "Vitruvio/Processos/Importação/form_web_mobile.xml:330",
         "Vitruvio/Processos/Expedição para o Parceiro/form_web_mobile.xml:169",
         "Vitruvio/Processos/Perda e Transferência de Impróprios -1/form_web_mobile.xml:1511",
         "Vitruvio/Processos/Aprovação/form_web_mobile.xml:983",
         "Vitruvio/Processos/Pré Entrada V2/form_web_mobile.xml:3836"
      ],
      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 DesktopPanelDoc;
