/**
 * Tabela 11 — Cpe para telhados múltiplos, assimétricos, de tramos
 * iguais, com água menor inclinada de 60° e h ≤ a' (NBR 6123:2023).
 *
 * Fonte: NBR 6123:2023, p. 25 (Tabela 11).
 * Última auditoria: 2026-07-08 — valores exatos do PDF implementados.
 */

export interface AsymmetricMultiSpanCpe {
  a_star: number;
  b_star: number;
  c_star: number;
  d_star: number;
  m_star: number;
  n_star: number;
  x_star: number;
  z_star: number;
  b1: number;
  b2: number;
  b3: number;
}

const ALPHA_0 = {
  a_star: +0.6,
  b_star: -0.7,
  c_star: -0.7,
  d_star: -0.4,
  m_star: -0.3,
  n_star: -0.2,
  x_star: -0.1,
  z_star: -0.3,
};

const ALPHA_180 = {
  a_star: -0.5,
  b_star: -0.3,
  c_star: -0.3,
  d_star: -0.3,
  m_star: -0.4,
  n_star: -0.6,
  x_star: -0.6,
  z_star: -0.1,
};

export function getAsymmetricMultiSpanCpeNBR6123(
  windAngle: 0 | 90 | 180 = 0,
): AsymmetricMultiSpanCpe {
  const base = windAngle === 180 ? ALPHA_180 : ALPHA_0;
  return {
    ...base,
    b1: -0.8,
    b2: -0.6,
    b3: -0.2,
  };
}