async getAll(options) {
        // Create a collection with applied filters
        const itemCollection = this.#LinkRedirect.forge();
        
        // Apply default and custom filters from the options
        if (options.filter) {
            itemCollection.applyDefaultAndCustomFilters({filter: options.filter});
        }
        
        // Apply ordering
        itemCollection.query((qb) => {
            qb.orderByRaw('`count__clicks` DESC, `to` DESC');
        });
        
        // Fetch the collection with the applied query modifications
        const collection = await itemCollection.fetchAll({withRelated: ['count.clicks']});

        const result = [];

        for (const model of collection.models) {
            const link = this.#linkRedirectRepository.fromModel(model);
            
            result.push(
                new FullPostLink({
                    post_id: model.get('post_id'),
                    link,
                    count: {
                        clicks: model.get('count__clicks')
                    }
                })
            );
        }
        
        return result;
    }
@param {*} options
@returns {Promise<InstanceType<FullPostLink>[]>}