async getAllByType(type, currency = 'usd') {
        let milestone = null;

        if (type === 'arr') {
            milestone = await this.#MilestoneModel.findAll({filter: `currency:${currency}+type:arr`, order: 'created_at ASC, value DESC'}, {require: false});
        } else {
            milestone = await this.#MilestoneModel.findAll({filter: 'type:members', order: 'created_at ASC, value DESC'}, {require: false});
        }

        if (!milestone || !milestone?.models?.length) {
            return [];
        }

        const milestones = await Promise.all(milestone.models.map(model => this.#modelToMilestone(model)));

        // Enforce ordering by value as Bookshelf seems to ignore it
        return milestones.sort((a, b) => b.value - a.value);
    }
@param {'arr'|'members'} type
@param {string} [currency]

@returns {Promise<Milestone[]>}