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 DecimalFieldDoc: VitruvioComponentDoc = {
   component: "DecimalField",
   summary: "Documentacao do componente DecimalField mapeada a partir de exemplos reais de XML.",
   status: "draft",
   context: {
      module: "Vitruvio",
      family: "EntradaDeDados",
      mappedFrom: ["Vitruvio/Paineis", "Vitruvio/Processos"],
      occurrences: { total: 2773, paineis: 993, processos: 1780 }
   },
   sections: {
      purpose: "Componente de captura e edicao de dados em formularios e filtros.",
      basicUsage: "Usar DecimalField no contexto adequado da tela; as propriedades abaixo foram observadas em exemplos reais do projeto.",
      properties: [
         "align",
         "caption",
         "currencyField",
         "decimalSeparator",
         "description",
         "enable",
         "enabled",
         "expand-ratio",
         "expandRatio",
         "focusNextFieldOnValueChange",
         "format",
         "groupingSeparator",
         "height",
         "id",
         "immediate",
         "keyCode",
         "maximumValue",
         "maxLength",
         "mininumValue",
         "minLength",
         "nextFocusOnEnter",
         "readOnly",
         "readonly",
         "required",
         "requiredMessage",
         "selectTextOnFocus",
         "type",
         "updatable",
         "visible",
         "width"
      ],
      propertyValues: {
         "align": ["BOTTOM_LEFT", "MIDDLE_CENTER", "MIDDLE_LEFT", "MIDDLE_RIGHT", "TOP_CENTER", "TOP_LEFT", "TOP_RIGHT"],
         "caption": [" ", "%", "% Frete", "% Imposto", "% IPI", "% Rateio acima de:", "% Rateio:", "% Tolerância", "% Variação ShelfLife", "&#931; Parceiro", "&#931; Peso Bruto", "&#931; Peso Liquído", "&#931; Quant. Total", "&#931; Quant. Total Cxs.", "&#931; Quant. Total Un.", "__TRUNCADO__"],
         "currencyField": ["true"],
         "decimalSeparator": [",", "."],
         "description": ["Adicional Bandeiras - Já incluído no Valor a Pagar!", "Ajuste de Desconto C. Fio HFP", "Ajuste de Desconto C. Fio HP", "Base de cálculo do contrato.", "Componente Encargo kW HFP", "Componente Encargo kW HP", "Componente Encargo kWh HFP - tarifa", "Componente Encargo kWh HFP - valor", "Componente Encargo kWh HP - tarifa", "Componente Encargo kWh HP - valor", "Componente Fio kW HFP", "Componente Fio kW HFP - tarifa/preço", "Componente Fio kW HFP - valor", "Componente Fio kW HFP s/ ICMS - tarifa/preço", "Componente Fio kW HFP s/ ICMS - valor", "__TRUNCADO__"],
         "enable": ["false"],
         "enabled": ["false", "true"],
         "expand-ratio": ["0.2"],
         "expandRatio": [".2", ".25", ".3", ".37", ".38", ".5", "0", "0.1", "0.10", "0.13", "0.15", "0.2", "0.3", "0.30", "0.4", "__TRUNCADO__"],
         "focusNextFieldOnValueChange": ["true"],
         "format": ["", "#", "###", "####", "#####", "####.000", "####0.00", "####0.0000", "###,###", "###,###,###,##0.00", "###,###,###,##0.000", "###,###.##0.000", "###,###.00", "###,###.000", "###,###0.00", "__TRUNCADO__"],
         "groupingSeparator": [",", "."],
         "height": ["100%"],
         "id": ["acrescimo", "addcompetencia", "ADICIONAR", "adicionar", "AJUSTEDESCCOMFIOHFP", "AJUSTEDESCCOMFIOHP", "aliquotaII", "aliquotaNF", "aliquotaSubvencao", "altura", "alturaImagemEcommerce", "alturaImagemEcommerceProdComposto", "alturaImagemProduto", "aprovacaoCoordenador", "aprovacaoGerencia", "__TRUNCADO__"],
         "immediate": ["false", "true"],
         "keyCode": ["ENTER"],
         "maximumValue": ["0.99", "100", "100.00", "1000", "10000", "100000", "1000000", "200", "30", "300000", "350", "999", "9999", "99999", "9999999", "__TRUNCADO__"],
         "maxLength": ["10", "13", "3", "5", "50"],
         "mininumValue": ["-99999999", "0", "0.00", "0.000", "0.001", "0.01", "1"],
         "minLength": ["0"],
         "nextFocusOnEnter": ["true"],
         "readOnly": ["false", "true"],
         "readonly": ["true"],
         "required": ["false", "true"],
         "requiredMessage": ["Percentual aceitavel da Validade para o recebimento do produto"],
         "selectTextOnFocus": ["true"],
         "type": ["decimal"],
         "updatable": ["true"],
         "visible": ["false", "true"],
         "width": ["10%", "100%", "140px", "15%", "150px", "20%", "200px", "25%", "35%", "40%", "49%", "50", "50%", "70px", "80%", "__TRUNCADO__"]
      },
      propertyValueTypes: {
         "align": "enum",
         "caption": "text",
         "currencyField": "boolean",
         "decimalSeparator": "enum",
         "description": "text",
         "enable": "boolean",
         "enabled": "boolean",
         "expand-ratio": "numeric",
         "expandRatio": "mixed",
         "focusNextFieldOnValueChange": "boolean",
         "format": "text",
         "groupingSeparator": "enum",
         "height": "numeric",
         "id": "text",
         "immediate": "boolean",
         "keyCode": "enum",
         "maximumValue": "numeric",
         "maxLength": "numeric",
         "mininumValue": "numeric",
         "minLength": "numeric",
         "nextFocusOnEnter": "boolean",
         "readOnly": "boolean",
         "readonly": "boolean",
         "required": "boolean",
         "requiredMessage": "text",
         "selectTextOnFocus": "boolean",
         "type": "enum",
         "updatable": "boolean",
         "visible": "boolean",
         "width": "numeric"
      },
      events: [

      ],
      examples: [
         "Vitruvio/Paineis/Impressão de etiqueta LJ06 WS.xml:430",
         "Vitruvio/Paineis/Impressão de etiqueta LJ06 WS.xml:431",
         "Vitruvio/Paineis/Manutenção de Gôndolas.xml:231",
         "Vitruvio/Paineis/Cadastro - Metas.xml:501",
         "Vitruvio/Paineis/Kanban - Cadastro de Projetos.xml:520",
         "Vitruvio/Paineis/Kanban - Cadastro de Projetos.xml:521",
         "Vitruvio/Paineis/Cadastro de Subtipos - Chamado Suporte TI.xml:145",
         "Vitruvio/Paineis/PCP - Análise de Receitas.xml:390",
         "Vitruvio/Paineis/PCP - Análise de Receitas.xml:394",
         "Vitruvio/Paineis/PCP - Análise de Receitas.xml:404",
         "Vitruvio/Paineis/PCP - Análise de Receitas.xml:408",
         "Vitruvio/Paineis/PCP - Análise de Receitas.xml:420"
      ],
      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 DecimalFieldDoc;
