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 FileUploadWidgetDoc: VitruvioComponentDoc = {
   component: "FileUploadWidget",
   summary: "Documentacao do componente FileUploadWidget mapeada a partir de exemplos reais de XML.",
   status: "draft",
   context: {
      module: "Vitruvio",
      family: "EntradaDeDados",
      mappedFrom: ["Vitruvio/Paineis", "Vitruvio/Processos"],
      occurrences: { total: 141, paineis: 71, processos: 70 }
   },
   sections: {
      purpose: "Componente de captura e edicao de dados em formularios e filtros.",
      basicUsage: "Usar FileUploadWidget no contexto adequado da tela; as propriedades abaixo foram observadas em exemplos reais do projeto.",
      properties: [
         "action",
         "align",
         "attachmentId",
         "attachmentName",
         "attachmentTag",
         "canBeRemovedByAttachmentManager",
         "caption",
         "cssAlign",
         "expandRatio",
         "id",
         "maxSize",
         "panelCaption",
         "removeAttachmentOnDiscard",
         "showMessageOnFileLoadComplete",
         "usePanel",
         "visible",
         "width"
      ],
      propertyValues: {
         "action": ["SAVE_AS_PROCESS_ATTACHMENT", "SAVE_AS_TASK_ATTACHMENT"],
         "align": ["BOTTOM_RIGHT", "MIDDLE_CENTER", "MIDDLE_LEFT", "TOP_LEFT", "TOP_RIGHT"],
         "attachmentId": ["arquivo_envio_contest1", "arquivo_envio_contest2", "cadastro_transfacil_site", "CadastroOtimo", "CadastroTransfacil", "documento_original", "fuwImagemProduto", "guiaST", "image_cupom", "image_ecommerce", "image_ecommerce_fornecedor", "image_ecommerce_prodComposto", "image_rel_conferencia", "import_file", "origem_digitalizacao", "__TRUNCADO__"],
         "attachmentName": ["Arquivo da terceirizada", "Arquivo de importação", "Arquivo de Importação de Pedidos Cesta de Natal", "Arquivo de origem da digitacaolizacao", "arquivo_envio_contest1_", "arquivo_envio_contest2_", "ArquivoCadastroOtimo", "ArquivoCadastroTransfacil", "ArquivoSaldoOtimo", "ArquivoSaldoTransfacil", "Cadastro da Transfácil Site", "Documento original", "GuiaST", "Imagem Cupom incluída fiscal", "Imagem E-Commerce Fornecedor", "__TRUNCADO__"],
         "attachmentTag": ["anexoEtiqueta", "anexoEtiquetaNova", "conteste_bhbus", "conteste_otimo", "digitalizacao_automatica", "gpBL", "gpCertA", "gpCertO", "gpCertS", "gpGuia", "gpImageCupom", "gpImageEcommerce", "gpImageEcommerceProdComposto", "gpImageProduto", "gpImagerel_conferencia", "__TRUNCADO__"],
         "canBeRemovedByAttachmentManager": ["false", "true"],
         "caption": ["Anexar Imagem Cupom", "Anexar Imagem E-commerce", "Anexar Imagem Produto Composto", "Anexar PDF da Frete", "Anexar PDF da nota fiscal", "Anexar PDF Sintegra", "Anexar Rel conferência", "Anexar XML da nota fiscal", "Anexo Etiqueta modelo", "Anexo Etiqueta nova", "Anexo Invoice", "Anexo Proforma", "Arquivo", "Arquivo exportado do mobile", "Arquivos", "__TRUNCADO__"],
         "cssAlign": ["top: 100px; left: 700px;"],
         "expandRatio": [".3", ".6", "0.4", "0.5", "0.7", "0.8", "0.9", "1", "1.0", "2", "3"],
         "id": ["anexoEtiqueta", "anexoEtiquetaNova", "anexoId", "arquivo", "arquivoImportacao", "arquivoUpload", "BL", "C_ANALISE", "C_ORIGEM", "C_SANITARIO", "certificadoUpload", "csvOtimoCadastro", "csvOtimoSaldo", "csvTransfacilCadastro", "csvTransfacilSaldo", "__TRUNCADO__"],
         "maxSize": ["100000000", "10485760", "152428800", "20971520", "349920000", "449920000", "5242880", "52428800"],
         "panelCaption": ["Documento", "Guia ST (somente .pdf)", "Imagem Cupom", "Imagem E-Commerce", "Imagem E-commerce", "Imagem Produto Composto", "Imagem Rel conferência", "Recibo da Guia ST (somente .pdf)", "Upload de imagem"],
         "removeAttachmentOnDiscard": ["false", "true"],
         "showMessageOnFileLoadComplete": ["true"],
         "usePanel": ["false", "true"],
         "visible": ["false", "true"],
         "width": ["100%", "400px", "50%", "60%"]
      },
      propertyValueTypes: {
         "action": "enum",
         "align": "enum",
         "attachmentId": "mixed",
         "attachmentName": "mixed",
         "attachmentTag": "mixed",
         "canBeRemovedByAttachmentManager": "boolean",
         "caption": "text",
         "cssAlign": "mixed",
         "expandRatio": "enum",
         "id": "text",
         "maxSize": "numeric",
         "panelCaption": "text",
         "removeAttachmentOnDiscard": "boolean",
         "showMessageOnFileLoadComplete": "boolean",
         "usePanel": "boolean",
         "visible": "boolean",
         "width": "numeric"
      },
      events: [

      ],
      examples: [
         "Vitruvio/Paineis/CD - Cadastro de Regras de Priorização WMS.xml:652",
         "Vitruvio/Paineis/Importação de Produtos Para Inventário.xml:35",
         "Vitruvio/Paineis/Parâmetros.xml:426",
         "Vitruvio/Paineis/Parâmetros.xml:779",
         "Vitruvio/Paineis/Aux - Abastecimento - Inventários.xml:645",
         "Vitruvio/Paineis/Gestao de Imagens - MKT Miniaturas.xml:236",
         "Vitruvio/Paineis/Importação Arquivo Rateio - Centro de Custos.xml:83",
         "Vitruvio/Paineis/Notificação - Mobile.xml:42",
         "Vitruvio/Paineis/NFe Certificados.xml:208",
         "Vitruvio/Paineis/Painel de coleta de validade guiada.xml:229",
         "Vitruvio/Paineis/Validação Imagens Marketing 2.xml:77",
         "Vitruvio/Paineis/Reprocessamento de Cupons.xml:98"
      ],
      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 FileUploadWidgetDoc;
