fix: trim alert indexes

This commit is contained in:
Jake Barnby
2026-05-16 23:14:34 +12:00
parent db7210eb69
commit 90b7d6ac26
2 changed files with 23 additions and 48 deletions
+6 -48
View File
@@ -1243,27 +1243,6 @@ $platformCollections = [
'lengths' => [Database::LENGTH_KEY, 64, 64],
'orders' => [Database::ORDER_ASC, Database::ORDER_ASC, Database::ORDER_ASC],
],
[
'$id' => ID::custom('_key_resource_read'),
'type' => Database::INDEX_KEY,
'attributes' => ['resourceType', 'resourceId', 'read'],
'lengths' => [64, Database::LENGTH_KEY, 0],
'orders' => [Database::ORDER_ASC, Database::ORDER_ASC, Database::ORDER_ASC],
],
[
'$id' => ID::custom('_key_projectId'),
'type' => Database::INDEX_KEY,
'attributes' => ['projectId'],
'lengths' => [Database::LENGTH_KEY],
'orders' => [Database::ORDER_ASC],
],
[
'$id' => ID::custom('_key_projectInternalId'),
'type' => Database::INDEX_KEY,
'attributes' => ['projectInternalId'],
'lengths' => [0],
'orders' => [Database::ORDER_ASC],
],
[
'$id' => ID::custom('_key_project'),
'type' => Database::INDEX_KEY,
@@ -1274,37 +1253,16 @@ $platformCollections = [
[
'$id' => ID::custom('_key_project_resource'),
'type' => Database::INDEX_KEY,
'attributes' => ['projectInternalId', 'resourceType', 'resourceId'],
'lengths' => [0, 64, Database::LENGTH_KEY],
'orders' => [Database::ORDER_ASC, Database::ORDER_ASC, Database::ORDER_ASC],
'attributes' => ['projectId', 'projectInternalId', 'resourceType', 'resourceId', 'resourceInternalId'],
'lengths' => [Database::LENGTH_KEY, 0, 64, Database::LENGTH_KEY, 0],
'orders' => [Database::ORDER_ASC, Database::ORDER_ASC, Database::ORDER_ASC, Database::ORDER_ASC, Database::ORDER_ASC],
],
[
'$id' => ID::custom('_key_project_parent_resource'),
'type' => Database::INDEX_KEY,
'attributes' => ['projectInternalId', 'parentResourceType', 'parentResourceId'],
'lengths' => [0, 64, Database::LENGTH_KEY],
'orders' => [Database::ORDER_ASC, Database::ORDER_ASC, Database::ORDER_ASC],
],
[
'$id' => ID::custom('_key_resource_type'),
'type' => Database::INDEX_KEY,
'attributes' => ['resourceType', 'resourceId', 'type'],
'lengths' => [64, Database::LENGTH_KEY, 64],
'orders' => [Database::ORDER_ASC, Database::ORDER_ASC, Database::ORDER_ASC],
],
[
'$id' => ID::custom('_key_resource_channel'),
'type' => Database::INDEX_KEY,
'attributes' => ['resourceType', 'resourceId', 'channel'],
'lengths' => [64, Database::LENGTH_KEY, 64],
'orders' => [Database::ORDER_ASC, Database::ORDER_ASC, Database::ORDER_ASC],
],
[
'$id' => ID::custom('_key_resource_messageId'),
'type' => Database::INDEX_KEY,
'attributes' => ['resourceType', 'resourceId', 'messageId'],
'lengths' => [64, Database::LENGTH_KEY, Database::LENGTH_KEY],
'orders' => [Database::ORDER_ASC, Database::ORDER_ASC, Database::ORDER_ASC],
'attributes' => ['projectId', 'projectInternalId', 'parentResourceType', 'parentResourceId', 'parentResourceInternalId'],
'lengths' => [Database::LENGTH_KEY, 0, 64, Database::LENGTH_KEY, 0],
'orders' => [Database::ORDER_ASC, Database::ORDER_ASC, Database::ORDER_ASC, Database::ORDER_ASC, Database::ORDER_ASC],
],
],
],
@@ -70,5 +70,22 @@ class MigrationVersionsTest extends TestCase
}
$this->assertArrayHasKey('resourceInternalId', $attributes);
$this->assertArrayHasKey('parentResourceInternalId', $attributes);
$indexes = [];
foreach ($collection->getAttribute('indexes', []) as $index) {
$id = $index instanceof Document ? $index->getAttribute('$id') : ($index['$id'] ?? '');
$indexes[$id] = $index instanceof Document ? $index->getAttribute('attributes') : ($index['attributes'] ?? []);
}
$this->assertSame([
'_key_messageId',
'_key_recipient',
'_key_project',
'_key_project_resource',
'_key_project_parent_resource',
], \array_keys($indexes));
$this->assertSame(['projectId', 'projectInternalId'], $indexes['_key_project']);
$this->assertSame(['projectId', 'projectInternalId', 'resourceType', 'resourceId', 'resourceInternalId'], $indexes['_key_project_resource']);
$this->assertSame(['projectId', 'projectInternalId', 'parentResourceType', 'parentResourceId', 'parentResourceInternalId'], $indexes['_key_project_parent_resource']);
}
}