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 MultiFileUploadWidgetDoc: VitruvioComponentDoc = {
   component: "MultiFileUploadWidget",
   summary: "Documentacao do componente MultiFileUploadWidget mapeada a partir de exemplos reais de XML.",
   status: "draft",
   context: {
      module: "Vitruvio",
      family: "EntradaDeDados",
      mappedFrom: ["Vitruvio/Paineis", "Vitruvio/Processos"],
      occurrences: { total: 24, paineis: 15, processos: 9 }
   },
   sections: {
      purpose: "Componente de captura e edicao de dados em formularios e filtros.",
      basicUsage: "Usar MultiFileUploadWidget no contexto adequado da tela; as propriedades abaixo foram observadas em exemplos reais do projeto.",
      properties: [
         "action",
         "align",
         "allowFilesWithSameName",
         "attachmentTag",
         "canBeRemovedByAttachmentManager",
         "caption",
         "confirmBeforeDeleteFiles",
         "expandRatio",
         "height",
         "id",
         "maxFiles",
         "panelCaption",
         "removeAttachmentOnDiscard",
         "uploadButtonCaption",
         "visible",
         "width"
      ],
      propertyValues: {
         "action": ["SAVE_AS_PROCESS_ATTACHMENT", "SAVE_AS_TASK_ATTACHMENT"],
         "align": ["BOTTOM_LEFT", "TOP_LEFT", "TOP_RIGHT"],
         "allowFilesWithSameName": ["false"],
         "attachmentTag": ["", "anexos_cards_kanban", "atvMkt", "C_ANALISE", "C_ORIGEM", "C_SANITARIO", "processo_despesa"],
         "canBeRemovedByAttachmentManager": ["false"],
         "caption": ["Anexos"],
         "confirmBeforeDeleteFiles": ["false"],
         "expandRatio": ["0.8", "1"],
         "height": ["190px", "200px", "220px", "50%"],
         "id": ["anexoConta", "anexosCardKanban", "C_ANALISE", "C_ORIGEM", "C_SANITARIO", "mfuAnexos", "multi_anexo", "notaFiscalUpload", "upload_KtDW"],
         "maxFiles": ["1", "10", "30", "5"],
         "panelCaption": ["Anexar", "Certificados de Análise", "Certificados de Origem", "Certificados de Sanitário", "Nota Fiscal - Obrigatório", "Upload do arquivo", "Upload excel"],
         "removeAttachmentOnDiscard": ["true"],
         "uploadButtonCaption": ["Subir Certificados de Análise", "Subir Certificados de Origem", "Subir Certificados Sanitário"],
         "visible": ["true"],
         "width": ["100%", "50%"]
      },
      propertyValueTypes: {
         "action": "enum",
         "align": "enum",
         "allowFilesWithSameName": "boolean",
         "attachmentTag": "enum",
         "canBeRemovedByAttachmentManager": "boolean",
         "caption": "text",
         "confirmBeforeDeleteFiles": "boolean",
         "expandRatio": "numeric",
         "height": "numeric",
         "id": "enum",
         "maxFiles": "numeric",
         "panelCaption": "text",
         "removeAttachmentOnDiscard": "boolean",
         "uploadButtonCaption": "text",
         "visible": "boolean",
         "width": "numeric"
      },
      events: [

      ],
      examples: [
         "Vitruvio/Paineis/Cadastro de Elementos.xml:850",
         "Vitruvio/Paineis/hml - kanban proj.xml:1549",
         "Vitruvio/Paineis/Liberação de pagamentos - Acompanhamento.xml:1171",
         "Vitruvio/Paineis/Kanban - Gestão de Projetos - Análise.xml:2005",
         "Vitruvio/Paineis/Importar Histórico Paripassu Auditoria.xml:94",
         "Vitruvio/Paineis/teste pagamento.xml:1124",
         "Vitruvio/Paineis/Kanban - Senior.xml:1691",
         "Vitruvio/Paineis/Testes.xml:1146",
         "Vitruvio/Paineis/Kanban - Gestão de Projetos.xml:3141",
         "Vitruvio/Paineis/Pagamento.xml:734",
         "Vitruvio/Paineis/liberar pagto - hml.xml:1194",
         "Vitruvio/Paineis/Liberação Teste.xml:1143"
      ],
      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 MultiFileUploadWidgetDoc;
