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 DBComboBoxDoc: VitruvioComponentDoc = {
   component: "DBComboBox",
   summary: "Documentacao do componente DBComboBox mapeada a partir de exemplos reais de XML.",
   status: "draft",
   context: {
      module: "Vitruvio",
      family: "BancoDeDados",
      mappedFrom: ["Vitruvio/Paineis", "Vitruvio/Processos"],
      occurrences: { total: 2600, paineis: 1660, processos: 940 }
   },
   sections: {
      purpose: "Componente orientado a dados com integracao de datasource SQL e bind de parametros.",
      basicUsage: "Usar DBComboBox no contexto adequado da tela; as propriedades abaixo foram observadas em exemplos reais do projeto.",
      properties: [
         "align",
         "allowFilter",
         "allowNullSelection",
         "caption",
         "description",
         "enabled",
         "expandRatio",
         "height",
         "heigth",
         "id",
         "immediate",
         "multivalue",
         "multivalue-clear-button-caption",
         "multivalue-show-clear-button",
         "readOnly",
         "refreshOnChange",
         "required",
         "requiredMessage",
         "restrictAcessToCompanyMembers",
         "searchCaption",
         "searchViewHeight",
         "searchViewWidth",
         "setCompany",
         "setCompanyExternalId",
         "setProcessTag",
         "type",
         "updatable",
         "visible",
         "width"
      ],
      propertyValues: {
         "align": ["BOTTOM_CENTER", "BOTTOM_LEFT", "BOTTOM_RIGHT", "MIDDLE_CENTER", "MIDDLE_LEFT", "MIDDLE_RIGHT", "TOP_CENTER", "TOP_LEFT", "TOP_RIGHT"],
         "allowFilter": ["true"],
         "allowNullSelection": ["false", "true"],
         "caption": ["Aberto por", "Administradora", "Agendamentos de Checklist TI", "Agrupador", "Agrupador FIFO", "Agrupador:", "Agrupamento", "Aliquota", "Aliquota IPI", "Aliquota IS", "Alíquota", "Alíquota Diferida", "Ano", "Anos", "Aplicador:", "__TRUNCADO__"],
         "description": ["", "Atividade da sprint do projeto", "Categoria do produto", "Comprador vinculado ao contrato", "Determina a área de atuação do tipo de acordo.", "Determina local para direcionamento da verba dentro do conta corrente.", "Determina o tipo de contrato de acordo com a atuação.", "Determina qual será o evento realizado após ativação do contrato.", "Empresa associada ao setor", "Empresa do contrato", "Filtra checklist por loja", "Filtra processos por loja", "Grupo do produto", "Informe a Loja", "Informe aqui o bloqueio desejado", "__TRUNCADO__"],
         "enabled": ["false", "true"],
         "expandRatio": [".15", ".2", ".25", ".33", ".4", ".45", ".5", ".6", ".7", ".8", ".9", "0", "0.1", "0.15", "0.16", "__TRUNCADO__"],
         "height": ["100%", "30px"],
         "heigth": ["100%"],
         "id": ["acaoComercial", "acaoPromocional", "agrupador", "Agrupador", "agrupadorDestino", "agrupadorOrigem", "AgrupadorOrigem", "aliquota", "aliquota_ipi", "aliquotaRestaurante", "ano", "anos", "area", "assignee", "auditoria", "__TRUNCADO__"],
         "immediate": ["false", "true"],
         "multivalue": ["false", "true"],
         "multivalue-clear-button-caption": ["Limpar"],
         "multivalue-show-clear-button": ["false", "true"],
         "readOnly": ["true"],
         "refreshOnChange": ["true"],
         "required": ["false", "true"],
         "requiredMessage": ["", "Define a categoria a ser feita a manutenção no setor", "Define a Conta Contábil a ser utlizada na integração", "Define a Conta Corrente a ser utlizada na integração", "Define a Conta Financeira a ser utlizada na integração", "Define a Coordenador", "Define a Forma de Pagamento a ser utlizada na integração", "Define a loja a ser feita a parametrização", "Define a loja a ser feita a replicação das informações", "Define a loja a ser feita configuração", "Define a loja a ser feita meta", "Define a Meta", "Define a Pesagem da configuração", "Define a Pesagem da Meta", "Define a Área da configuração", "__TRUNCADO__"],
         "restrictAcessToCompanyMembers": ["true"],
         "searchCaption": ["Descrição do Equipamento"],
         "searchViewHeight": ["90%"],
         "searchViewWidth": ["95%"],
         "setCompany": ["true"],
         "setCompanyExternalId": ["true"],
         "setProcessTag": ["false", "true"],
         "type": ["number", "string"],
         "updatable": ["false", "true"],
         "visible": ["false", "true"],
         "width": ["100%", "20%", "200", "200px", "240px", "250px", "280px", "30%", "300", "300px", "330px", "350px", "400", "45%", "50%", "__TRUNCADO__"]
      },
      propertyValueTypes: {
         "align": "enum",
         "allowFilter": "boolean",
         "allowNullSelection": "boolean",
         "caption": "text",
         "description": "text",
         "enabled": "boolean",
         "expandRatio": "text",
         "height": "numeric",
         "heigth": "numeric",
         "id": "text",
         "immediate": "boolean",
         "multivalue": "boolean",
         "multivalue-clear-button-caption": "text",
         "multivalue-show-clear-button": "boolean",
         "readOnly": "boolean",
         "refreshOnChange": "boolean",
         "required": "boolean",
         "requiredMessage": "text",
         "restrictAcessToCompanyMembers": "boolean",
         "searchCaption": "text",
         "searchViewHeight": "numeric",
         "searchViewWidth": "numeric",
         "setCompany": "boolean",
         "setCompanyExternalId": "boolean",
         "setProcessTag": "boolean",
         "type": "enum",
         "updatable": "boolean",
         "visible": "boolean",
         "width": "numeric"
      },
      events: [

      ],
      examples: [
         "Vitruvio/Paineis/imp - Pônica - aux - Ações(Previsão_Real).xml:457",
         "Vitruvio/Paineis/imp - Pônica - aux - Ações(Previsão_Real).xml:472",
         "Vitruvio/Paineis/imp - Pônica - aux - Ações(Previsão_Real).xml:486",
         "Vitruvio/Paineis/Impressão de etiqueta LJ06 WS.xml:343",
         "Vitruvio/Paineis/Impressão de etiqueta LJ06 WS.xml:360",
         "Vitruvio/Paineis/Impressão de etiqueta LJ06 WS.xml:377",
         "Vitruvio/Paineis/Impressão de etiqueta LJ06 WS.xml:394",
         "Vitruvio/Paineis/Impressão de etiqueta LJ06 WS.xml:508",
         "Vitruvio/Paineis/Impressão de etiqueta LJ06 WS.xml:519",
         "Vitruvio/Paineis/Relatório de Transferências.xml:67",
         "Vitruvio/Paineis/Relatório de Transferências.xml:77",
         "Vitruvio/Paineis/Relatório de Transferências.xml:91"
      ],
      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 DBComboBoxDoc;
