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 ImageWidgetDoc: VitruvioComponentDoc = {
   component: "ImageWidget",
   summary: "Documentacao do componente ImageWidget mapeada a partir de exemplos reais de XML.",
   status: "draft",
   context: {
      module: "Vitruvio",
      family: "Visualizacao",
      mappedFrom: ["Vitruvio/Paineis", "Vitruvio/Processos"],
      occurrences: { total: 431, paineis: 255, processos: 176 }
   },
   sections: {
      purpose: "Componente para exibicao de informacoes, resultados e feedback visual.",
      basicUsage: "Usar ImageWidget no contexto adequado da tela; as propriedades abaixo foram observadas em exemplos reais do projeto.",
      properties: [
         "align",
         "caption",
         "expandRatio",
         "height",
         "id",
         "immediate",
         "visible",
         "width"
      ],
      propertyValues: {
         "align": ["BOTTOM_CENTER", "BOTTOM_LEFT", "MIDDLE_CENTER", "MIDDLE_LEFT", "MIDDLE_RIGHT", "TOP_CENTER", "TOP_LEFT", "TOP_RIGHT"],
         "caption": ["", "Em promoção", "FIFO", "Fora de promoção", "Foto Pallet", "Imagem do produto", "Imagem do Produto", "ImageWidget", "Preview (100x100):", "Preview (400x400):", "Produto", "Visualização Atual"],
         "expandRatio": [".1", "0", "0.0", "0.05", "0.08", "0.09", "0.1", "0.15", "0.2", "0.20", "0.4", "0.5", "0.8", "1", "1.5"],
         "height": ["100", "100%", "100px", "105px", "106px", "108px", "112px", "117px", "120px", "127px", "128px", "130px", "142px", "150", "150px", "__TRUNCADO__"],
         "id": ["farolBranco", "farolCinza", "farolVerde", "farolVerm", "foto", "foto1", "foto2", "foto_pallet", "icone", "iconeNovo", "image2", "image3", "imagemBalanca", "imagemContagem", "imagemProduto", "__TRUNCADO__"],
         "immediate": ["true"],
         "visible": ["false", "true"],
         "width": ["100", "100%", "100px", "120px", "128px", "130px", "136px", "140px", "142px", "150", "150px", "160px", "170px", "180px", "186px", "__TRUNCADO__"]
      },
      propertyValueTypes: {
         "align": "enum",
         "caption": "text",
         "expandRatio": "enum",
         "height": "numeric",
         "id": "text",
         "immediate": "boolean",
         "visible": "boolean",
         "width": "numeric"
      },
      events: [

      ],
      examples: [
         "Vitruvio/Paineis/imp - Pônica - aux - Detalhes Pré Pedido.xml:141",
         "Vitruvio/Paineis/Cadastro de Subtipos - Chamado Suporte TI.xml:290",
         "Vitruvio/Paineis/Expedição - Ranking - Área Climatizada - CX.xml:62",
         "Vitruvio/Paineis/Expedição - Ranking - Área Climatizada - CX.xml:271",
         "Vitruvio/Paineis/Expedição - Ranking - Área Climatizada - CX.xml:478",
         "Vitruvio/Paineis/Casos Encerrados Mantis.xml:70",
         "Vitruvio/Paineis/Acompanhamento Pedidos.xml:105",
         "Vitruvio/Paineis/Estoque em Tempo Real.xml:19",
         "Vitruvio/Paineis/Voucher Alimentação Senior Dialog.xml:1273",
         "Vitruvio/Paineis/Acompanhamento das Entregas.xml:64",
         "Vitruvio/Paineis/21 - Contratos - Saldos Trocas e Perdas.xml:160",
         "Vitruvio/Paineis/Picking.xml:214"
      ],
      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 ImageWidgetDoc;
