diff --git a/packages/local-private/packages/nylas-private-salesforce/lib/models/salesforce-object.es6 b/packages/local-private/packages/nylas-private-salesforce/lib/models/salesforce-object.es6 index 262ad14d0..e047193b0 100644 --- a/packages/local-private/packages/nylas-private-salesforce/lib/models/salesforce-object.es6 +++ b/packages/local-private/packages/nylas-private-salesforce/lib/models/salesforce-object.es6 @@ -70,6 +70,30 @@ class SalesforceObject extends Model { modelKey: 'rawData', jsonKey: 'rawData', }), + + isSearchIndexed: Attributes.Boolean({ + queryable: true, + modelKey: 'isSearchIndexed', + jsonKey: 'is_search_indexed', + defaultValue: false, + loadFromColumn: true, + }), + + // This corresponds to the rowid in the FTS table. We need to use the FTS + // rowid when updating and deleting items in the FTS table because otherwise + // these operations would be way too slow on large FTS tables. + searchIndexId: Attributes.Number({ + modelKey: 'searchIndexId', + jsonKey: 'search_index_id', + }), + } + + static sortOrderAttribute = () => { + return SalesforceObject.attributes.name + } + + static naturalSortOrder = () => { + return SalesforceObject.sortOrderAttribute().descending() } static additionalSQLiteConfig = { diff --git a/packages/local-private/packages/nylas-private-salesforce/lib/search/salesforce-search-indexer.es6 b/packages/local-private/packages/nylas-private-salesforce/lib/search/salesforce-search-indexer.es6 index e1e1873ec..59c9944a0 100644 --- a/packages/local-private/packages/nylas-private-salesforce/lib/search/salesforce-search-indexer.es6 +++ b/packages/local-private/packages/nylas-private-salesforce/lib/search/salesforce-search-indexer.es6 @@ -2,6 +2,11 @@ import { ModelSearchIndexer } from 'nylas-exports'; import SalesforceObject from '../models/salesforce-object' class SalesforceSearchIndexer extends ModelSearchIndexer { + + get MaxIndexSize() { + return 10000 + } + get ConfigKey() { return "salesforce.searchIndexVersion" }