/**
 * Tabela 35 — Parâmetros b, p para pontes (NBR 6123:2023, sec. 11.2.2).
 * Velocidade média horária V_it = 0,65 · Vo · S1 · b · (z/10)^p
 *
 * Fonte: NBR 6123:2023, p. 80 (Tabela 35).
 * Última auditoria: 2026-07-07 — valores conferidos com PDF oficial.
 *
 * PDF página 92.
 *
 * Valores oficiais (categoria → p, bₘ):
 *   I:   p=0,10 / bₘ=1,25
 *   II:  p=0,16 / bₘ=1,00
 *   III: p=0,20 / bₘ=0,85
 *   IV:  p=0,25 / bₘ=0,68
 *   V:   p=0,35 / bₘ=0,44
 *
 * ⚠️ Correção: o código antigo tratava p e b como função da altura z,
 *    mas a Tabela 35 fornece valores constantes por categoria.
 */

const TABLE_35: Readonly<
  Record<'I' | 'II' | 'III' | 'IV' | 'V', { readonly p: number; readonly bm: number }>
> = {
  I: { p: 0.10, bm: 1.25 },
  II: { p: 0.16, bm: 1.00 },
  III: { p: 0.20, bm: 0.85 },
  IV: { p: 0.25, bm: 0.68 },
  V: { p: 0.35, bm: 0.44 },
};

export function getBridgeParams(
  _z: number,
  category: 'I' | 'II' | 'III' | 'IV' | 'V',
): { b: number; p: number } {
  const { p, bm } = TABLE_35[category];
  return { b: bm, p };
}

/** Tabela 36 — Taxas de amortecimento estrutural ξ (em %) para pontes
 *
 * Fonte: NBR 6123:2023, p. 84 (Tabela 36).
 * Última auditoria: 2026-07-07 — valores conferidos com PDF oficial.
 * PDF página 96.
 */
export interface BridgeDampingEntry {
  material: string;
  detail: string;
  xiPercent: number;
}

export const BRIDGE_DAMPING: readonly BridgeDampingEntry[] = [
  { material: 'Aço', detail: 'Chapas soldadas, pavimento asfáltico', xiPercent: 0.8 },
  { material: 'Aço', detail: 'Chapas soldadas, pavimento em concreto', xiPercent: 1.0 },
  { material: 'Aço', detail: 'Peças parafusadas (ligação por atrito)', xiPercent: 1.5 },
  { material: 'Aço', detail: 'Peças rebitadas', xiPercent: 1.5 },
  { material: 'Concreto armado', detail: '—', xiPercent: 2.5 },
  { material: 'Concreto protendido', detail: 'Protensão completa', xiPercent: 2.0 },
  { material: 'Concreto protendido', detail: 'Protensão parcial', xiPercent: 2.5 },
  { material: 'Mistas aço-concreto', detail: 'Vigas', xiPercent: 1.8 },
  { material: 'Mistas aço-concreto', detail: 'Vigas treliçadas', xiPercent: 2.0 },
  { material: 'Ligas de alumínio', detail: '—', xiPercent: 2.0 },
  { material: 'Madeira', detail: '—', xiPercent: 8.0 },
  { material: 'Material compósito', detail: 'Matriz polimérica + fibras', xiPercent: 6.0 },
] as const;