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 MoneyFieldDoc: VitruvioComponentDoc = {
   component: "MoneyField",
   summary: "Documentacao do componente MoneyField mapeada a partir de exemplos reais de XML.",
   status: "draft",
   context: {
      module: "Vitruvio",
      family: "EntradaDeDados",
      mappedFrom: ["Vitruvio/Paineis", "Vitruvio/Processos"],
      occurrences: { total: 26, paineis: 0, processos: 26 }
   },
   sections: {
      purpose: "Componente de captura e edicao de dados em formularios e filtros.",
      basicUsage: "Usar MoneyField no contexto adequado da tela; as propriedades abaixo foram observadas em exemplos reais do projeto.",
      properties: [
         "allowNegative",
         "caption",
         "expandRatio",
         "format",
         "id",
         "maximumValue",
         "readOnly",
         "required",
         "type",
         "visible",
         "width"
      ],
      propertyValues: {
         "allowNegative": ["true"],
         "caption": ["Preço", "Preço Venda", "Preço*", "Resposta", "Valor (Intervalo)"],
         "expandRatio": ["1"],
         "format": ["###,##0.0", "###,##0.00", "###,##0.000", "#,##0.00"],
         "id": ["precoconc", "precoConf", "precoconf", "precovenda", "respostaintervalo"],
         "maximumValue": ["1000000"],
         "readOnly": ["true"],
         "required": ["true"],
         "type": ["decimal"],
         "visible": ["false", "true"],
         "width": ["100%"]
      },
      propertyValueTypes: {
         "allowNegative": "boolean",
         "caption": "text",
         "expandRatio": "numeric",
         "format": "enum",
         "id": "enum",
         "maximumValue": "numeric",
         "readOnly": "boolean",
         "required": "boolean",
         "type": "enum",
         "visible": "boolean",
         "width": "numeric"
      },
      events: [

      ],
      examples: [
         "Vitruvio/Processos/Checklist Manutenção/form_web_mobile.xml:1397",
         "Vitruvio/Processos/Checklist Manutenção/form_web_mobile.xml:2261",
         "Vitruvio/Processos/Checklist Fab. Própria/form_web_mobile.xml:1515",
         "Vitruvio/Processos/Checklist Fab. Própria/form_web_mobile.xml:2407",
         "Vitruvio/Processos/Ruptura - Produtos Sem Giro/form_web_mobile.xml:232",
         "Vitruvio/Processos/Ruptura - Produtos Sem Giro/form_web_mobile.xml:288",
         "Vitruvio/Processos/Auditoria Troca de Placa Meu Verdemar/form_web_mobile.xml:340",
         "Vitruvio/Processos/Auditoria Troca de Placa Meu Verdemar/form_web_mobile.xml:442",
         "Vitruvio/Processos/process_pool1/form_web_mobile.xml:195",
         "Vitruvio/Processos/Auditoria de Gôndola/form_web_mobile.xml:2215",
         "Vitruvio/Processos/Auditoria de Gôndola/form_web_mobile.xml:2432",
         "Vitruvio/Processos/Auditoria de Gôndola/form_web_mobile.xml:3625"
      ],
      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 MoneyFieldDoc;
