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 SubFormProgressWidgetDoc: VitruvioComponentDoc = {
   component: "SubFormProgressWidget",
   summary: "Documentacao do componente SubFormProgressWidget mapeada a partir de exemplos reais de XML.",
   status: "draft",
   context: {
      module: "Vitruvio",
      family: "Visualizacao",
      mappedFrom: ["Vitruvio/Paineis", "Vitruvio/Processos"],
      occurrences: { total: 106, paineis: 29, processos: 77 }
   },
   sections: {
      purpose: "Componente para exibicao de informacoes, resultados e feedback visual.",
      basicUsage: "Usar SubFormProgressWidget no contexto adequado da tela; as propriedades abaixo foram observadas em exemplos reais do projeto.",
      properties: [
         "allowProcessCancel",
         "allowTaskReopening",
         "calculateTaskExecutionTimesBy",
         "formImplementation",
         "id",
         "subFormKey"
      ],
      propertyValues: {
         "allowProcessCancel": ["true"],
         "allowTaskReopening": ["false", "true"],
         "calculateTaskExecutionTimesBy": ["TASK_COMPLETE_TIME"],
         "formImplementation": ["WEB_MOBILE"],
         "id": ["pgWidget", "pgWidget2", "pgWidgetCarga", "pgWidgetConf", "pgWidgetDestino", "pgWidgetOrigem", "pgWidgetRotativo", "sfpAcompanharConferencia", "sfpAcompanharConferenciaFiscal", "sfpAcompanharInclusao", "sfpAcompanharReconferencia", "sfpAcompanharReConferencia", "status", "statusSubformConferencia", "statusSubformConferenciaFiscal"],
         "subFormKey": ["auditoria", "coletaItens", "coletaPatrimonios", "coletaPatrimonios2", "conferenciaColetorItens", "conferenciaItens", "gravaProdutos", "organizacaoItens", "produtos", "produtosValidacao", "questionario", "separacaoItens", "sfColeta", "subform_auditoria_sep", "subform_conferencia_sep", "__TRUNCADO__"]
      },
      propertyValueTypes: {
         "allowProcessCancel": "boolean",
         "allowTaskReopening": "boolean",
         "calculateTaskExecutionTimesBy": "enum",
         "formImplementation": "enum",
         "id": "enum",
         "subFormKey": "mixed"
      },
      events: [

      ],
      examples: [
         "Vitruvio/Paineis/Painel de auditoria operacional.xml:973",
         "Vitruvio/Paineis/Painel de coleta de validade guiada.xml:1579",
         "Vitruvio/Paineis/Ponta de Gôndola.xml:1171",
         "Vitruvio/Paineis/Acompanhamento de Atividades.xml:242",
         "Vitruvio/Paineis/Acompanhamento de Atividades.xml:266",
         "Vitruvio/Paineis/Acompanhamento Atividades.xml:258",
         "Vitruvio/Paineis/acompanhamento_andamentos hml.xml:243",
         "Vitruvio/Paineis/Acompanhamento de Ponta de Gôndola.xml:445",
         "Vitruvio/Paineis/Auditoria de Picking.xml:251",
         "Vitruvio/Paineis/Auditoria Produtos Recebidos - Restaurante_Entrada.xml:114",
         "Vitruvio/Paineis/Gestão da Expedição - CD.xml:105",
         "Vitruvio/Paineis/Gestão da Expedição - CD.xml:176"
      ],
      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 SubFormProgressWidgetDoc;
