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 OptionGroupDoc: VitruvioComponentDoc = {
   component: "OptionGroup",
   summary: "Documentacao do componente OptionGroup mapeada a partir de exemplos reais de XML.",
   status: "draft",
   context: {
      module: "Vitruvio",
      family: "Infraestrutura",
      mappedFrom: ["Vitruvio/Paineis", "Vitruvio/Processos"],
      occurrences: { total: 2052, paineis: 1122, processos: 930 }
   },
   sections: {
      purpose: "Componente de suporte para configuracao, integracao e comportamento da tela.",
      basicUsage: "Usar OptionGroup no contexto adequado da tela; as propriedades abaixo foram observadas em exemplos reais do projeto.",
      properties: [
         "align",
         "aling",
         "allowNullSelection",
         "caption",
         "default",
         "defaultValue",
         "description",
         "disposition",
         "enabled",
         "expandRatio",
         "height",
         "id",
         "immediate",
         "orientation",
         "readOnly",
         "required",
         "requiredMessage",
         "searchCaption",
         "type",
         "updatable",
         "visible",
         "width"
      ],
      propertyValues: {
         "align": ["BOTTOM_CENTER", "BOTTOM_LEFT", "BOTTOM_RIGHT", "MIDDLE_CENTER", "MIDDLE_LEFT", "MIDDLE_RIGHT", "TOP_CENTER", "TOP_LEFT", "TOP_RIGHT"],
         "aling": ["MIDDLE_LEFT"],
         "allowNullSelection": ["false", "true"],
         "caption": ["", " Cumprirá Aviso Prévio?", "2ª Contagem?", "3ª Contagem?", ":", "A reclamação do cliente tem procedência?", "Abortar Processo?", "Abrangência", "Aceita a Data de Agendamento do Parceiro?", "Aceita Alterações?", "Aceita Replanejar", "Aceitar?", "Acréscimo de Preço", "Adicionar Parceiro", "Agrupa inventário?", "__TRUNCADO__"],
         "default": ["Reprovado"],
         "defaultValue": ["0"],
         "description": ["Abrangências dos produtos", "Ao Marcar essa opção, a data de validade será obrigatória. ", "Ao Marcar essa opção, a data de validade será visível. ", "Ao Marcar essa opção, a quantidade de itens será solicitada. ", "Define a modalidade de auditoria que será aplicada.", "Define a modalidade de carga que será aplicada.", "Define como será calculada a sugestão com base na receita.", "Define como será calculada a sugestão em latas.", "Define como será calculada a sugestão em telas.", "Define como será calculada a sugestão em unidades.", "Define o critério utilizado para calcular a Sugestão.", "Define qual tabela de contagem será utilizada no processo", "Define se a produção do item será registrada na Seção.", "Define se o item será incluído na expedição.", "Define se o produto será contado em unidade ou quilogramas", "__TRUNCADO__"],
         "disposition": ["horizontal", "vertical"],
         "enabled": ["false", "true"],
         "expandRatio": [".06", ".1", ".2", ".25", ".3", ".4", ".5", ".7", ".8", "0", "0.0", "0.05", "0.1", "0.15", "0.2", "__TRUNCADO__"],
         "height": ["100%", "50%"],
         "id": ["abortar_processo", "Abrangencia", "abrangencia", "AbrangenciaNovo", "acao", "acaosupervisor", "aceita", "aceitacao", "aceitaData", "Aceitar", "AceitarAbaixoMargemZero", "AceitarCotacao", "AceitarReplaneja", "aceite_agenda", "aceite_comprador", "__TRUNCADO__"],
         "immediate": ["true"],
         "orientation": ["vertical"],
         "readOnly": ["true"],
         "required": ["false", "true"],
         "requiredMessage": ["Acréscimo de Preço", "Aprovado E-commerce", "Aprovado Express", "Define se o produto será contado em unidade ou quilogramas", "Determina se gera inventário no ERP", "Determina se irá desconsiderar a contagem do PCP", "Determinar o que fazer quando a ação expirar", "Obriga a leitura de ean a ean para coleta", "Obriga o preenchimento da validade", "Obriga o preenchimento se gera ou não ordem de produção", "Permite o preenchimento da validade", "Permite ou não um conferente realizar mais de 1 conferência", "Status da Atividade", "Valida Estoque"],
         "searchCaption": ["Categoria de Serviço", "Conclusão sobre a procedência", "Já Possui Patrimônio?", "NR12", "Período", "Possui Cadastro", "Prioridade", "Produto vencido", "Quantidade de assinaturas", "Setor do Problema", "Sobre a Loja", "Sobre o produto", "Tem Patrimônio", "Tipo de Atividade", "Tipo de categoria", "__TRUNCADO__"],
         "type": ["number", "string"],
         "updatable": ["true"],
         "visible": ["false", "true", "visible"],
         "width": ["", "100%", "50%", "90%"]
      },
      propertyValueTypes: {
         "align": "enum",
         "aling": "enum",
         "allowNullSelection": "boolean",
         "caption": "text",
         "default": "enum",
         "defaultValue": "numeric",
         "description": "text",
         "disposition": "enum",
         "enabled": "boolean",
         "expandRatio": "text",
         "height": "numeric",
         "id": "text",
         "immediate": "boolean",
         "orientation": "enum",
         "readOnly": "boolean",
         "required": "boolean",
         "requiredMessage": "text",
         "searchCaption": "text",
         "type": "enum",
         "updatable": "boolean",
         "visible": "enum",
         "width": "numeric"
      },
      events: [

      ],
      examples: [
         "Vitruvio/Paineis/imp - Pônica - aux - Ações(Previsão_Real).xml:440",
         "Vitruvio/Paineis/Impressão de etiqueta LJ06 WS.xml:461",
         "Vitruvio/Paineis/Impressão de etiqueta LJ06 WS.xml:494",
         "Vitruvio/Paineis/Cadastro de Usuários.xml:595",
         "Vitruvio/Paineis/Cadastro - Metas.xml:413",
         "Vitruvio/Paineis/Kanban - Cadastro de Projetos.xml:479",
         "Vitruvio/Paineis/Kanban - Cadastro de Projetos.xml:483",
         "Vitruvio/Paineis/Kanban - Cadastro de Projetos.xml:633",
         "Vitruvio/Paineis/Cadastro de Subtipos - Chamado Suporte TI.xml:159",
         "Vitruvio/Paineis/Expedição - Ranking - Área Climatizada - CX.xml:687",
         "Vitruvio/Paineis/Expedição - Ranking - Área Climatizada - CX.xml:695",
         "Vitruvio/Paineis/Cadastro de Elementos.xml:472"
      ],
      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 OptionGroupDoc;
