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 FieldDoc: VitruvioComponentDoc = {
   component: "Field",
   summary: "Documentacao do componente Field mapeada a partir de exemplos reais de XML.",
   status: "draft",
   context: {
      module: "Vitruvio",
      family: "EntradaDeDados",
      mappedFrom: ["Vitruvio/Paineis", "Vitruvio/Processos"],
      occurrences: { total: 390, paineis: 241, processos: 149 }
   },
   sections: {
      purpose: "Componente de captura e edicao de dados em formularios e filtros.",
      basicUsage: "Usar Field no contexto adequado da tela; as propriedades abaixo foram observadas em exemplos reais do projeto.",
      properties: [
         "aggregate",
         "caption",
         "name",
         "property",
         "propertyName",
         "ref"
      ],
      propertyValues: {
         "aggregate": ["COUNT", "CUSTOM", "SUM"],
         "caption": ["&#931; CAIXAS", "Ano", "Destino", "Desvio", "Dia", "Entrou no CD", "EstoqueFinal", "Meta", "Mês", "MêsAno", "Qtde", "Realizado", "Recebimento", "Valor", "Área"],
         "name": ["ANO", "AREA", "CAIXAS", "CALCULADO", "CENTROCUSTO", "CONTA", "DATA", "DESVIO", "DIA", "DISPOSITIVO", "ESTOQUEFINAL", "FORNECEDOR", "LOJA", "MES", "META", "__TRUNCADO__"],
         "property": ["0", "1", "CATEGORIA", "CODIGO_TIPO"],
         "propertyName": ["ANO", "bpmn_key", "CARACTERISTICA", "CATEGORIA", "CHAVE_HIDROMETRO", "CHAVE_IMP_PED", "CODIGO", "CODIGO_ESCALA", "CODIGO_MARCA", "CODIGO_SETOR", "CODIGO_TIPO", "CODPAISES", "COMPRADOR", "CONFERIDO", "CONFIGURACAO", "__TRUNCADO__"],
         "ref": ["ano", "businessKey", "caracteristica", "caracteristica1", "caracteristica2", "categoriaEcommerce", "cbbStatus", "cbxTipoAbertos", "cbxTipoGerados", "ccnivel1", "ccnivel1_novo", "ccnivel2", "codigo_escala_vinculo", "comprador", "ConfigDisp", "__TRUNCADO__"]
      },
      propertyValueTypes: {
         "aggregate": "enum",
         "caption": "text",
         "name": "mixed",
         "property": "enum",
         "propertyName": "text",
         "ref": "text"
      },
      events: [

      ],
      examples: [
         "Vitruvio/Paineis/Relatório de Transferências.xml:65",
         "Vitruvio/Paineis/Manutenção de Gôndolas.xml:164",
         "Vitruvio/Paineis/Manutenção de Gôndolas.xml:174",
         "Vitruvio/Paineis/Manutenção de Gôndolas.xml:184",
         "Vitruvio/Paineis/Relatório de Colaboradores por Escala.xml:78",
         "Vitruvio/Paineis/Dashboard Fornecedor Importação.xml:275",
         "Vitruvio/Paineis/Dashboard Fornecedor Importação.xml:764",
         "Vitruvio/Paineis/Dashboard Fornecedor Importação.xml:765",
         "Vitruvio/Paineis/Parâmetros.xml:1388",
         "Vitruvio/Paineis/Definição do pesquisador na concorrência.xml:358",
         "Vitruvio/Paineis/Definição do pesquisador na concorrência.xml:369",
         "Vitruvio/Paineis/Definição do pesquisador na concorrência.xml:380"
      ],
      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 FieldDoc;
