def seconds_to_iso(value)
      return self.class.new('PT0S') if value.zero?

      sign_str = value < 0 ? '-' : ''
      value = value.abs

      y, y_mod = decompose_atom(value, years)
      m, m_mod = decompose_atom(y_mod, months)
      d, d_mod = decompose_atom(m_mod, days)
      h, h_mod = decompose_atom(d_mod, hours)
      mi, mi_mod = decompose_atom(h_mod, minutes)
      s = Seconds.new(mi_mod)

      date = to_date_s(sign_str, y, m, d)
      time = to_time_s(h, mi, s)

      self.class.new(date + time)
    end
def seconds_to_iso(value)
      return self.class.new('PT0S') if value.zero?

      sign_str = value < 0 ? '-' : ''
      value = value.abs

      y, y_mod = decompose_atom(value, years)
      m, m_mod = decompose_atom(y_mod, months)
      d, d_mod = decompose_atom(m_mod, days)
      h, h_mod = decompose_atom(d_mod, hours)
      mi, mi_mod = decompose_atom(h_mod, minutes)
      s = Seconds.new(mi_mod)

      date = to_date_s(sign_str, y, m, d)
      time = to_time_s(h, mi, s)

      self.class.new(date + time)
    end
@param [Numeric] value The seconds to promote

 @return [ISO8601::Duration]
 rubocop:disable Metrics/AbcSize