@ttt-productions/ttt-core 0.79.39 → 0.79.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/dist/doc-schemas/chat-sync.d.ts +81 -9
  2. package/dist/doc-schemas/chat-sync.d.ts.map +1 -1
  3. package/dist/doc-schemas/chat-sync.js +39 -8
  4. package/dist/doc-schemas/chat-sync.js.map +1 -1
  5. package/dist/doc-schemas/content.d.ts +12 -6
  6. package/dist/doc-schemas/content.d.ts.map +1 -1
  7. package/dist/doc-schemas/content.js +65 -4
  8. package/dist/doc-schemas/content.js.map +1 -1
  9. package/dist/doc-schemas/media-activation-jobs.d.ts +1 -1
  10. package/dist/doc-schemas/media-assets.d.ts +6 -6
  11. package/dist/doc-schemas/registry.d.ts +93 -21
  12. package/dist/doc-schemas/registry.d.ts.map +1 -1
  13. package/dist/doc-schemas/safety/evidence.d.ts +4 -4
  14. package/dist/doc-schemas/work-project.d.ts +1 -1
  15. package/dist/paths/collection-refs.d.ts +3 -0
  16. package/dist/paths/collection-refs.d.ts.map +1 -1
  17. package/dist/paths/collection-refs.js +9 -0
  18. package/dist/paths/collection-refs.js.map +1 -1
  19. package/dist/paths/path-builders.d.ts +2 -0
  20. package/dist/paths/path-builders.d.ts.map +1 -1
  21. package/dist/paths/path-builders.js +4 -0
  22. package/dist/paths/path-builders.js.map +1 -1
  23. package/dist/schemas/admin.d.ts +8 -9
  24. package/dist/schemas/admin.d.ts.map +1 -1
  25. package/dist/schemas/admin.js +2 -2
  26. package/dist/schemas/admin.js.map +1 -1
  27. package/dist/schemas/hall-library.d.ts +14 -1
  28. package/dist/schemas/hall-library.d.ts.map +1 -1
  29. package/dist/schemas/hall-library.js +37 -12
  30. package/dist/schemas/hall-library.js.map +1 -1
  31. package/dist/schemas/notification.d.ts +1 -1
  32. package/dist/types/admin-ops.d.ts +4 -3
  33. package/dist/types/admin-ops.d.ts.map +1 -1
  34. package/dist/types/admin-ops.js.map +1 -1
  35. package/dist/upload-variables/update-episode-media-variables.d.ts +1 -1
  36. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"collection-refs.d.ts","sourceRoot":"","sources":["../../src/paths/collection-refs.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,eAAe;iCAER,CAAC,MAAM,CAAC;oCACL,CAAC,MAAM,CAAC;uCACL,CAAC,MAAM,CAAC;+BAChB,CAAC,MAAM,CAAC;sCACD,CAAC,MAAM,CAAC;uCACP,CAAC,MAAM,CAAC;kCACb,CAAC,MAAM,CAAC;gCACV,CAAC,MAAM,CAAC;mCACL,CAAC,MAAM,CAAC;uCAGF,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;+CAIzB,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;+CAGjC,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;oDAG5B,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;8DAGvB,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;gDAG/C,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;6CAMpC,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;gCAIhD,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;mCAIrB,CAAC,MAAM,CAAC;8BAEb,CAAC,MAAM,CAAC;8CAEQ,CAAC,MAAM,CAAC;wDAGI,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;2CAG9C,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;yCAGnC,MAAM,UAAU,MAAM,KAAG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;uDAG5D,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;2DAK7B,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;+DAG7B,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;CAE3E,CAAC"}
1
+ {"version":3,"file":"collection-refs.d.ts","sourceRoot":"","sources":["../../src/paths/collection-refs.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,eAAe;iCAER,CAAC,MAAM,CAAC;oCACL,CAAC,MAAM,CAAC;uCACL,CAAC,MAAM,CAAC;+BAChB,CAAC,MAAM,CAAC;sCACD,CAAC,MAAM,CAAC;uCACP,CAAC,MAAM,CAAC;kCACb,CAAC,MAAM,CAAC;gCACV,CAAC,MAAM,CAAC;mCACL,CAAC,MAAM,CAAC;4CAIC,CAAC,MAAM,CAAC;6CACP,CAAC,MAAM,CAAC;uCAGZ,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;+CAIzB,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;+CAGjC,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;oDAG5B,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;8DAGvB,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;gDAG/C,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;6CAMpC,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;gCAIhD,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;mCAIrB,CAAC,MAAM,CAAC;8BAEb,CAAC,MAAM,CAAC;8CAEQ,CAAC,MAAM,CAAC;wDAGI,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;2CAG9C,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;yCAGnC,MAAM,UAAU,MAAM,KAAG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;uDAG5D,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;2DAK7B,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;+DAG7B,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;kEAO9B,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;CAE9E,CAAC"}
@@ -14,6 +14,10 @@ export const COLLECTION_REFS = {
14
14
  auditionBoard: () => [COLLECTIONS.AUDITION_BOARD],
15
15
  followEdges: () => [COLLECTIONS.FOLLOW_EDGES],
16
16
  followCounters: () => [COLLECTIONS.FOLLOW_COUNTERS],
17
+ // Active notification lanes. Both collections are top-level and are selected by
18
+ // notification category; callers never hand-roll their collection names.
19
+ activeUserNotifications: () => [COLLECTIONS.ACTIVE_USER_NOTIFICATIONS],
20
+ activeAdminNotifications: () => [COLLECTIONS.ACTIVE_ADMIN_NOTIFICATIONS],
17
21
  // User subcollections
18
22
  userCraftSkills: (userId) => [COLLECTIONS.USER_PROFILES, userId, USER_SUBCOLLECTIONS.PROFILE_CRAFT_SKILLS],
19
23
  // WorkProject subcollections
@@ -41,5 +45,10 @@ export const COLLECTION_REFS = {
41
45
  // subscribes to the collection; the backend writes the docs).
42
46
  guildInviteConversationFiles: (guildInviteId) => [COLLECTIONS.GUILD_INVITE_CONVERSATIONS, guildInviteId, NESTED_SUBCOLLECTIONS.CONVERSATION_FILES],
43
47
  adminDispatchConversationFiles: (adminDispatchId) => [COLLECTIONS.PENDING_ADMIN_DISPATCHES, adminDispatchId, NESTED_SUBCOLLECTIONS.CONVERSATION_FILES],
48
+ // The admin-support thread's message subcollection. Backend writers mint a new message
49
+ // document with `db.collection(toPath(...)).doc()` so the id is a Firestore auto-id; the
50
+ // admin-dispatch panel subscribes to the same collection. The per-document counterpart is
51
+ // PATH_BUILDERS.adminConversationMessage.
52
+ adminDispatchConversationMessages: (adminDispatchId) => [COLLECTIONS.PENDING_ADMIN_DISPATCHES, adminDispatchId, NESTED_SUBCOLLECTIONS.CONVERSATION_MESSAGES],
44
53
  };
45
54
  //# sourceMappingURL=collection-refs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"collection-refs.js","sourceRoot":"","sources":["../../src/paths/collection-refs.ts"],"names":[],"mappings":"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","sourcesContent":["// Collection reference builders — for collection-level operations.\n//\n// Frontend: collection(db, ...COLLECTION_REFS.userProfiles())\n// Backend: db.collection(toPath(COLLECTION_REFS.userProfiles()))\n\nimport {\n COLLECTIONS,\n USER_SUBCOLLECTIONS,\n WORK_PROJECT_SUBCOLLECTIONS,\n WORK_REALM_SUBCOLLECTIONS,\n NESTED_SUBCOLLECTIONS,\n} from './collections.js';\n\nexport const COLLECTION_REFS = {\n // Top-level collections\n userProfiles: (): [string] => [COLLECTIONS.USER_PROFILES],\n allWorkProjects: (): [string] => [COLLECTIONS.ALL_WORK_PROJECTS],\n publicWorkProjects: (): [string] => [COLLECTIONS.PUBLIC_WORK_PROJECTS],\n workRealms: (): [string] => [COLLECTIONS.WORK_REALMS],\n squareStreetzFeed: (): [string] => [COLLECTIONS.SQUARE_STREETZ_FEED],\n commissionListings: (): [string] => [COLLECTIONS.COMMISSION_LISTINGS],\n auditionBoard: (): [string] => [COLLECTIONS.AUDITION_BOARD],\n followEdges: (): [string] => [COLLECTIONS.FOLLOW_EDGES],\n followCounters: (): [string] => [COLLECTIONS.FOLLOW_COUNTERS],\n\n // User subcollections\n userCraftSkills: (userId: string): [string, string, string] =>\n [COLLECTIONS.USER_PROFILES, userId, USER_SUBCOLLECTIONS.PROFILE_CRAFT_SKILLS],\n\n // WorkProject subcollections\n workProjectTales: (workProjectId: string): [string, string, string] =>\n [COLLECTIONS.ALL_WORK_PROJECTS, workProjectId, WORK_PROJECT_SUBCOLLECTIONS.WORK_PROJECT_TALES],\n\n workProjectTunes: (workProjectId: string): [string, string, string] =>\n [COLLECTIONS.ALL_WORK_PROJECTS, workProjectId, WORK_PROJECT_SUBCOLLECTIONS.WORK_PROJECT_TUNES],\n\n workProjectTelevision: (workProjectId: string): [string, string, string] =>\n [COLLECTIONS.ALL_WORK_PROJECTS, workProjectId, WORK_PROJECT_SUBCOLLECTIONS.WORK_PROJECT_TELEVISION],\n\n workProjectPublicGuildmateUsers: (workProjectId: string): [string, string, string] =>\n [COLLECTIONS.ALL_WORK_PROJECTS, workProjectId, WORK_PROJECT_SUBCOLLECTIONS.PUBLIC_GUILDMATE_USERS],\n\n guildChatChannels: (workProjectId: string): [string, string, string] =>\n [COLLECTIONS.ALL_WORK_PROJECTS, workProjectId, WORK_PROJECT_SUBCOLLECTIONS.GUILD_CHAT_CHANNELS],\n\n // WorkRealm subcollections — the steward's realm shared-file folders. The projection owner\n // lists this collection (bounded by MAX_REALM_FILE_FOLDERS) and the folder-cap /\n // name-uniqueness checks query it; clients never read it directly.\n realmFileFolders: (workRealmId: string): [string, string, string] =>\n [COLLECTIONS.WORK_REALMS, workRealmId, WORK_REALM_SUBCOLLECTIONS.REALM_FILE_FOLDERS],\n\n // SquareStreetz collections\n activePosts: (): [string, string, string] =>\n [COLLECTIONS.SQUARE_STREETZ_FEED, NESTED_SUBCOLLECTIONS.ACTIVE_POSTS, NESTED_SUBCOLLECTIONS.SOCIAL_POSTS],\n\n // HallLibrary collections\n thresholdItems: (): [string] => [COLLECTIONS.THRESHOLD_ITEMS],\n\n hallItems: (): [string] => [COLLECTIONS.HALL_ITEMS],\n\n hallContentChangeRequests: (): [string] => [COLLECTIONS.HALL_CONTENT_CHANGE_REQUESTS],\n\n // Commission/Audition collections\n commissionProposals: (commissionListingId: string): [string, string, string] =>\n [COLLECTIONS.COMMISSION_LISTINGS, commissionListingId, NESTED_SUBCOLLECTIONS.COMMISSION_PROPOSALS],\n\n auditionEntries: (auditionId: string): [string, string, string] =>\n [COLLECTIONS.AUDITION_BOARD, auditionId, NESTED_SUBCOLLECTIONS.AUDITION_ENTRIES],\n\n tuneTracks: (workProjectId: string, tuneId: string): readonly [string, string, string, string, string] =>\n [COLLECTIONS.ALL_WORK_PROJECTS, workProjectId, WORK_PROJECT_SUBCOLLECTIONS.WORK_PROJECT_TUNES, tuneId, NESTED_SUBCOLLECTIONS.TUNE_TRACKS] as const,\n\n moderationCascadeChangedDocs: (cascadeId: string): [string, string, string] =>\n [COLLECTIONS.MODERATION_CASCADE_MANIFESTS, cascadeId, NESTED_SUBCOLLECTIONS.CHANGED_DOCS],\n\n // Conversation Files list for each supported ConversationFileRef scope (the panel\n // subscribes to the collection; the backend writes the docs).\n guildInviteConversationFiles: (guildInviteId: string): [string, string, string] =>\n [COLLECTIONS.GUILD_INVITE_CONVERSATIONS, guildInviteId, NESTED_SUBCOLLECTIONS.CONVERSATION_FILES],\n\n adminDispatchConversationFiles: (adminDispatchId: string): [string, string, string] =>\n [COLLECTIONS.PENDING_ADMIN_DISPATCHES, adminDispatchId, NESTED_SUBCOLLECTIONS.CONVERSATION_FILES],\n} as const;\n"]}
1
+ {"version":3,"file":"collection-refs.js","sourceRoot":"","sources":["../../src/paths/collection-refs.ts"],"names":[],"mappings":"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","sourcesContent":["// Collection reference builders — for collection-level operations.\n//\n// Frontend: collection(db, ...COLLECTION_REFS.userProfiles())\n// Backend: db.collection(toPath(COLLECTION_REFS.userProfiles()))\n\nimport {\n COLLECTIONS,\n USER_SUBCOLLECTIONS,\n WORK_PROJECT_SUBCOLLECTIONS,\n WORK_REALM_SUBCOLLECTIONS,\n NESTED_SUBCOLLECTIONS,\n} from './collections.js';\n\nexport const COLLECTION_REFS = {\n // Top-level collections\n userProfiles: (): [string] => [COLLECTIONS.USER_PROFILES],\n allWorkProjects: (): [string] => [COLLECTIONS.ALL_WORK_PROJECTS],\n publicWorkProjects: (): [string] => [COLLECTIONS.PUBLIC_WORK_PROJECTS],\n workRealms: (): [string] => [COLLECTIONS.WORK_REALMS],\n squareStreetzFeed: (): [string] => [COLLECTIONS.SQUARE_STREETZ_FEED],\n commissionListings: (): [string] => [COLLECTIONS.COMMISSION_LISTINGS],\n auditionBoard: (): [string] => [COLLECTIONS.AUDITION_BOARD],\n followEdges: (): [string] => [COLLECTIONS.FOLLOW_EDGES],\n followCounters: (): [string] => [COLLECTIONS.FOLLOW_COUNTERS],\n\n // Active notification lanes. Both collections are top-level and are selected by\n // notification category; callers never hand-roll their collection names.\n activeUserNotifications: (): [string] => [COLLECTIONS.ACTIVE_USER_NOTIFICATIONS],\n activeAdminNotifications: (): [string] => [COLLECTIONS.ACTIVE_ADMIN_NOTIFICATIONS],\n\n // User subcollections\n userCraftSkills: (userId: string): [string, string, string] =>\n [COLLECTIONS.USER_PROFILES, userId, USER_SUBCOLLECTIONS.PROFILE_CRAFT_SKILLS],\n\n // WorkProject subcollections\n workProjectTales: (workProjectId: string): [string, string, string] =>\n [COLLECTIONS.ALL_WORK_PROJECTS, workProjectId, WORK_PROJECT_SUBCOLLECTIONS.WORK_PROJECT_TALES],\n\n workProjectTunes: (workProjectId: string): [string, string, string] =>\n [COLLECTIONS.ALL_WORK_PROJECTS, workProjectId, WORK_PROJECT_SUBCOLLECTIONS.WORK_PROJECT_TUNES],\n\n workProjectTelevision: (workProjectId: string): [string, string, string] =>\n [COLLECTIONS.ALL_WORK_PROJECTS, workProjectId, WORK_PROJECT_SUBCOLLECTIONS.WORK_PROJECT_TELEVISION],\n\n workProjectPublicGuildmateUsers: (workProjectId: string): [string, string, string] =>\n [COLLECTIONS.ALL_WORK_PROJECTS, workProjectId, WORK_PROJECT_SUBCOLLECTIONS.PUBLIC_GUILDMATE_USERS],\n\n guildChatChannels: (workProjectId: string): [string, string, string] =>\n [COLLECTIONS.ALL_WORK_PROJECTS, workProjectId, WORK_PROJECT_SUBCOLLECTIONS.GUILD_CHAT_CHANNELS],\n\n // WorkRealm subcollections — the steward's realm shared-file folders. The projection owner\n // lists this collection (bounded by MAX_REALM_FILE_FOLDERS) and the folder-cap /\n // name-uniqueness checks query it; clients never read it directly.\n realmFileFolders: (workRealmId: string): [string, string, string] =>\n [COLLECTIONS.WORK_REALMS, workRealmId, WORK_REALM_SUBCOLLECTIONS.REALM_FILE_FOLDERS],\n\n // SquareStreetz collections\n activePosts: (): [string, string, string] =>\n [COLLECTIONS.SQUARE_STREETZ_FEED, NESTED_SUBCOLLECTIONS.ACTIVE_POSTS, NESTED_SUBCOLLECTIONS.SOCIAL_POSTS],\n\n // HallLibrary collections\n thresholdItems: (): [string] => [COLLECTIONS.THRESHOLD_ITEMS],\n\n hallItems: (): [string] => [COLLECTIONS.HALL_ITEMS],\n\n hallContentChangeRequests: (): [string] => [COLLECTIONS.HALL_CONTENT_CHANGE_REQUESTS],\n\n // Commission/Audition collections\n commissionProposals: (commissionListingId: string): [string, string, string] =>\n [COLLECTIONS.COMMISSION_LISTINGS, commissionListingId, NESTED_SUBCOLLECTIONS.COMMISSION_PROPOSALS],\n\n auditionEntries: (auditionId: string): [string, string, string] =>\n [COLLECTIONS.AUDITION_BOARD, auditionId, NESTED_SUBCOLLECTIONS.AUDITION_ENTRIES],\n\n tuneTracks: (workProjectId: string, tuneId: string): readonly [string, string, string, string, string] =>\n [COLLECTIONS.ALL_WORK_PROJECTS, workProjectId, WORK_PROJECT_SUBCOLLECTIONS.WORK_PROJECT_TUNES, tuneId, NESTED_SUBCOLLECTIONS.TUNE_TRACKS] as const,\n\n moderationCascadeChangedDocs: (cascadeId: string): [string, string, string] =>\n [COLLECTIONS.MODERATION_CASCADE_MANIFESTS, cascadeId, NESTED_SUBCOLLECTIONS.CHANGED_DOCS],\n\n // Conversation Files list for each supported ConversationFileRef scope (the panel\n // subscribes to the collection; the backend writes the docs).\n guildInviteConversationFiles: (guildInviteId: string): [string, string, string] =>\n [COLLECTIONS.GUILD_INVITE_CONVERSATIONS, guildInviteId, NESTED_SUBCOLLECTIONS.CONVERSATION_FILES],\n\n adminDispatchConversationFiles: (adminDispatchId: string): [string, string, string] =>\n [COLLECTIONS.PENDING_ADMIN_DISPATCHES, adminDispatchId, NESTED_SUBCOLLECTIONS.CONVERSATION_FILES],\n\n // The admin-support thread's message subcollection. Backend writers mint a new message\n // document with `db.collection(toPath(...)).doc()` so the id is a Firestore auto-id; the\n // admin-dispatch panel subscribes to the same collection. The per-document counterpart is\n // PATH_BUILDERS.adminConversationMessage.\n adminDispatchConversationMessages: (adminDispatchId: string): [string, string, string] =>\n [COLLECTIONS.PENDING_ADMIN_DISPATCHES, adminDispatchId, NESTED_SUBCOLLECTIONS.CONVERSATION_MESSAGES],\n} as const;\n"]}
@@ -16,6 +16,8 @@ export declare const PATH_BUILDERS: {
16
16
  readonly userAuditionVote: (userId: string, auditionId: string) => [string, string, string, string];
17
17
  readonly userNotificationHistoryEntry: (userId: string, notificationId: string) => [string, string, string, string];
18
18
  readonly userNotificationHistory: (userId: string) => [string, string, string];
19
+ readonly activeUserNotification: (notificationId: string) => [string, string];
20
+ readonly activeAdminNotification: (notificationId: string) => [string, string];
19
21
  readonly workProject: (workProjectId: string) => [string, string];
20
22
  readonly publicWorkProject: (workProjectId: string) => [string, string];
21
23
  readonly hallSubmissionReservation: (workProjectId: string) => [string, string, string, string];
@@ -1 +1 @@
1
- {"version":3,"file":"path-builders.d.ts","sourceRoot":"","sources":["../../src/paths/path-builders.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"path-builders.d.ts","sourceRoot":"","sources":["../../src/paths/path-builders.ts"],"names":[],"mappings":"AAKA,OAAO,EAQL,KAAK,qBAAqB,EAC3B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,eAAO,MAAM,aAAa;mCAEF,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;+BAI7B,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;2CAIb,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;+CAGrB,MAAM,WAAW,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;sCAGnE,MAAM,gBAAgB,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;uCAG9D,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;oCAG5C,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;8CAM/B,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;uCAMhD,MAAM,cAAc,oBAAoB,YAAY,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;yCAK3E,oBAAoB,YAAY,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;gCAGlE,MAAM,UAAU,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;wCAGjE,MAAM,cAAc,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;oDAIjD,MAAM,kBAAkB,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;+CAItE,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;sDAK1B,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;uDAGxB,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;0CAItC,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;gDAGnB,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;wDAKjB,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;8CAGnD,MAAM,UAAU,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;0CAG7D,MAAM,UAAU,MAAM,aAAa,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;2CAI3F,MAAM,UAAU,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;8CAG9D,MAAM,UAAU,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;wCAG/D,MAAM,UAAU,MAAM,WAAW,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;oDAG9E,MAAM,gBAAgB,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;gDAGnE,MAAM,gBAAgB,MAAM,aAAa,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;iDAIjG,MAAM,gBAAgB,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;uDAGjE,MAAM,OAAO,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;6DAGhD,MAAM,OAAO,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;6CAGtE,MAAM,oBAAoB,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;uCAGzE,MAAM,oBAAoB,MAAM,cAAc,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;6CAGjG,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;+CAGvB,MAAM,sBAAsB,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;kCAIlF,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;kCAG3C,CAAC,MAAM,EAAE,MAAM,CAAC;4CAKJ,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;8CAIvB,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;oCAGnC,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;wCASrB,MAAM,iBAAiB,qBAAqB,UAAU,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;2CAM5F,MAAM,mBAAmB,eAAe,UAAU,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;4CAQ1F,MAAM,iBAAiB,qBAAqB,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;yDAG1D,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;sDAI5B,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;uDAGxB,MAAM,wBAAwB,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;oCAI1F,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;yCAGpB,MAAM,mBAAmB,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;sCAIrE,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;4CAKnB,MAAM,qBAAqB,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;8CAIlE,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;yDAGd,MAAM,0BAA0B,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;0CAGxF,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;0DAMT,MAAM,sBAAsB,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;8DAGjE,MAAM,sBAAsB,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;uCAG5F,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;gDAKhB,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;+CAI1C,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;gDAGxC,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;0DAM/B,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;2CAGxD,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;kDAIlB,MAAM,YAAY,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;uCAItE,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;6CAGnB,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;iCAGrC,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;0CAGhB,MAAM,UAAU,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;oDAG/B,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;sDAGvB,MAAM,gBAAgB,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;yDAI5D,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;wDAG1B,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;kCAG/C,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;mCAGxB,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;0CAGlB,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;wCAG3B,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;yCAIxB,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;gDAIlB,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;4CAG7B,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;sDAIf,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;2CAGpC,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;gDAGpB,MAAM,WAAW,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;sCAGpE,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;wCAGvB,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;mDAGd,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;iDAG3B,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;kDAGxB,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;4DAGf,MAAM,gBAAgB,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;8CAK7E,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;yDAId,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;wCAK5C,CAAC,MAAM,EAAE,MAAM,CAAC;mDAIH,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;kDAI1B,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;uDAIpB,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;8CAKlC,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;gDAIvB,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;4CAG7B,MAAM,gBAAgB,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;sCAMrE,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;4CAGnC,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;qCAGhD,MAAM,eAAe,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;8BAIvE,CAAC,MAAM,EAAE,MAAM,CAAC;gCAGd,CAAC,MAAM,EAAE,MAAM,CAAC;kCAGd,CAAC,MAAM,EAAE,MAAM,CAAC;sCAGZ,CAAC,MAAM,EAAE,MAAM,CAAC;0CAGZ,CAAC,MAAM,EAAE,MAAM,CAAC;uCAGnB,CAAC,MAAM,EAAE,MAAM,CAAC;8BAGzB,CAAC,MAAM,EAAE,MAAM,CAAC;gCAGd,CAAC,MAAM,EAAE,MAAM,CAAC;uCAGT,CAAC,MAAM,EAAE,MAAM,CAAC;8BAGzB,CAAC,MAAM,EAAE,MAAM,CAAC;kCAGZ,CAAC,MAAM,EAAE,MAAM,CAAC;0CAMR,CAAC,MAAM,EAAE,MAAM,CAAC;gDAMV,CAAC,MAAM,EAAE,MAAM,CAAC;8CAIhB,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;gDAIvB,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;uCAGlC,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;+CAGjB,MAAM,YAAY,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;gDAI1D,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;2CAGtC,MAAM,cAAc,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;4CAI5D,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;+CAG9B,MAAM,cAAc,MAAM,UAAU,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;8CAG9F,MAAM,OAAO,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;+CAIrD,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;qDAG3B,MAAM,OAAO,MAAM,aAAa,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;kDAG5F,MAAM,gBAAgB,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;sDAG3D,MAAM,gBAAgB,MAAM,UAAU,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;yDAK5F,MAAM,gBAAgB,MAAM,aAAa,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;uDAMpG,MAAM,gBAAgB,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;oDAGlF,MAAM,WAAW,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;wDAKtD,MAAM,cAAc,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;yDAK5D,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;wDAKlC,MAAM,gBAAgB,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;yDAK9D,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;+CAG3C,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;wCAKhC,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;mDAGd,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;mDAIzB,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;oEAGR,MAAM,aAAa,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;4DAGpE,MAAM,SAAS,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;kDAIlE,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;wCAGnC,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;4CAGrB,MAAM,UAAU,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;mDAGlD,MAAM,cAAc,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;wCAGxE,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;yCAIxB,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;kDAGhB,MAAM,WAAW,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;8CAI9D,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;4DAIX,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;2CAK1C,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;2CAI3B,CAAC,MAAM,EAAE,MAAM,CAAC;8CAIX,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;mCAKpC,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;iDAIX,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;qCAKrC,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;4CAIlB,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;4CAGzB,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;qDAIhB,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;+CAG/C,MAAM,gBAAgB,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;gDAI9D,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;sDAI3B,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;qDAGlC,MAAM,cAAc,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;sDAK5D,MAAM,cAAc,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;kDAGjF,MAAM,YAAY,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;6CAGhE,MAAM,cAAc,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;wDAKlD,MAAM,cAAc,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;0DAK3D,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;oDAK/B,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;gCAG7C,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;8CAGX,MAAM,gBAAgB,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;+CAI9D,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;2CAGrC,MAAM,aAAa,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;4CAI3D,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;4CAIjC,MAAM,WAAW,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;6CAIzD,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;6CAGjC,MAAM,YAAY,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;uCAGjE,MAAM,UAAU,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;yCAGvD,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;qCAG7B,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;wCAGtB,MAAM,iBAAiB,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;mCAKrE,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;gCAI9B,CAAC,MAAM,CAAC;gDAIU,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;oCAKvC,CAAC,MAAM,EAAE,MAAM,CAAC;qCAGf,CAAC,MAAM,EAAE,MAAM,CAAC;qDAGA,CAAC,MAAM,EAAE,MAAM,CAAC;CAE9C,CAAC"}
@@ -31,6 +31,10 @@ export const PATH_BUILDERS = {
31
31
  userNotificationHistoryEntry: (userId, notificationId) => [COLLECTIONS.USER_PROFILES, userId, USER_SUBCOLLECTIONS.NOTIFICATION_HISTORY, notificationId],
32
32
  // Collection of archived personal notifications (parent of userNotificationHistoryEntry).
33
33
  userNotificationHistory: (userId) => [COLLECTIONS.USER_PROFILES, userId, USER_SUBCOLLECTIONS.NOTIFICATION_HISTORY],
34
+ // Active notification cards. Category chooses the lane; these builders keep the
35
+ // category config, direct-card writers, and archive flow on the same collection names.
36
+ activeUserNotification: (notificationId) => [COLLECTIONS.ACTIVE_USER_NOTIFICATIONS, notificationId],
37
+ activeAdminNotification: (notificationId) => [COLLECTIONS.ACTIVE_ADMIN_NOTIFICATIONS, notificationId],
34
38
  // ===== WORK PATHS =====
35
39
  workProject: (workProjectId) => [COLLECTIONS.ALL_WORK_PROJECTS, workProjectId],
36
40
  publicWorkProject: (workProjectId) => [COLLECTIONS.PUBLIC_WORK_PROJECTS, workProjectId],
@@ -1 +1 @@
1
- {"version":3,"file":"path-builders.js","sourceRoot":"","sources":["../../src/paths/path-builders.ts"],"names":[],"mappings":"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","sourcesContent":["// Document path builders — returns tuples of path segments.\n//\n// Frontend (Web SDK): doc(db, ...PATH_BUILDERS.userProfile(userId))\n// Backend (Admin SDK): db.doc(toPath(PATH_BUILDERS.userProfile(userId)))\n\nimport {\n COLLECTIONS,\n USER_SUBCOLLECTIONS,\n WORK_PROJECT_SUBCOLLECTIONS,\n WORK_REALM_SUBCOLLECTIONS,\n NESTED_SUBCOLLECTIONS,\n SPECIAL_DOCS,\n HALL_ITEM_SUBCOLLECTION_BY_WORK_TYPE,\n type HallItemSubcollection,\n} from './collections.js';\nimport type { FollowableTargetType } from '../schemas/social.js';\nimport type { WorkProjectType } from '../types/content.js';\n\nexport const PATH_BUILDERS = {\n // ===== USER PATHS =====\n userProfile: (userId: string): [string, string] =>\n [COLLECTIONS.USER_PROFILES, userId],\n\n // Backend-mirrored public identity projection (publicUsers/{uid}).\n publicUser: (uid: string): [string, string] =>\n [COLLECTIONS.PUBLIC_USERS, uid],\n\n // Per-user account-deletion / erasure request, keyed by uid.\n accountDeletionRequest: (uid: string): [string, string] =>\n [COLLECTIONS.ACCOUNT_DELETION_REQUESTS, uid],\n\n userMentionHistoryEntry: (userId: string, entryId: string): [string, string, string, string] =>\n [COLLECTIONS.USER_PROFILES, userId, USER_SUBCOLLECTIONS.MENTION_HISTORY, entryId],\n\n userCraftSkill: (userId: string, craftSkillId: string): [string, string, string, string] =>\n [COLLECTIONS.USER_PROFILES, userId, USER_SUBCOLLECTIONS.PROFILE_CRAFT_SKILLS, craftSkillId],\n\n userPrivateData: (userId: string): [string, string, string, string] =>\n [COLLECTIONS.USER_PROFILES, userId, USER_SUBCOLLECTIONS.PRIVATE_DATA, userId],\n\n userMetadata: (userId: string): [string, string, string, string] =>\n [COLLECTIONS.USER_PROFILES, userId, USER_SUBCOLLECTIONS.USER_METADATA, SPECIAL_DOCS.NOTIFICATION_SETTINGS],\n\n // Per-user Hall viewing-state doc (hall-viewing-experience Area 2, ruled 2026-07-04):\n // userProfiles/{uid}/privateData/hallLibraryPreferences. Fixed-id privateData subdoc,\n // same shape as userMetadata above.\n hallLibraryPreferences: (userId: string): [string, string, string, string] =>\n [COLLECTIONS.USER_PROFILES, userId, USER_SUBCOLLECTIONS.PRIVATE_DATA, SPECIAL_DOCS.HALL_LIBRARY_PREFERENCES],\n\n // Generic follow edge: top-level `followEdges/{followerUid__targetType__targetId}`.\n // Deterministic ID = O(1) follow-status check + dedupe; a composite index on\n // (targetType, targetId) makes the same collection the reverse follower index.\n followEdge: (followerUid: string, targetType: FollowableTargetType, targetId: string): [string, string] =>\n [COLLECTIONS.FOLLOW_EDGES, `${followerUid}__${targetType}__${targetId}`],\n\n // Denormalized follower-count doc for a followable target: `followCounters/{targetType__targetId}`.\n // Backend-maintained (incremented in the follow/unfollow transaction); never written by clients.\n followCounter: (targetType: FollowableTargetType, targetId: string): [string, string] =>\n [COLLECTIONS.FOLLOW_COUNTERS, `${targetType}__${targetId}`],\n\n userLike: (userId: string, postId: string): [string, string, string, string, string, string] =>\n [COLLECTIONS.USER_PROFILES, userId, USER_SUBCOLLECTIONS.USER_LIKES, NESTED_SUBCOLLECTIONS.LIKE_HISTORY, NESTED_SUBCOLLECTIONS.SQUARE_STREETZ_LIKES, postId],\n\n userAuditionVote: (userId: string, auditionId: string): [string, string, string, string] =>\n [COLLECTIONS.USER_PROFILES, userId, USER_SUBCOLLECTIONS.AUDITION_VOTES, auditionId],\n\n // Archived personal notification history (userProfiles/{uid}/notificationHistory/{id}).\n userNotificationHistoryEntry: (userId: string, notificationId: string): [string, string, string, string] =>\n [COLLECTIONS.USER_PROFILES, userId, USER_SUBCOLLECTIONS.NOTIFICATION_HISTORY, notificationId],\n\n // Collection of archived personal notifications (parent of userNotificationHistoryEntry).\n userNotificationHistory: (userId: string): [string, string, string] =>\n [COLLECTIONS.USER_PROFILES, userId, USER_SUBCOLLECTIONS.NOTIFICATION_HISTORY],\n\n // ===== WORK PATHS =====\n workProject: (workProjectId: string): [string, string] =>\n [COLLECTIONS.ALL_WORK_PROJECTS, workProjectId],\n\n publicWorkProject: (workProjectId: string): [string, string] =>\n [COLLECTIONS.PUBLIC_WORK_PROJECTS, workProjectId],\n\n // The Work's single hall-entry reservation (fixed doc id — one reservation per Work),\n // claimed create-only inside the first threshold submit's transaction.\n hallSubmissionReservation: (workProjectId: string): [string, string, string, string] =>\n [COLLECTIONS.ALL_WORK_PROJECTS, workProjectId, WORK_PROJECT_SUBCOLLECTIONS.HALL_SUBMISSION_RESERVATION, SPECIAL_DOCS.HALL_SUBMISSION_RESERVATION],\n\n workProjectTale: (workProjectId: string, taleId: string): [string, string, string, string] =>\n [COLLECTIONS.ALL_WORK_PROJECTS, workProjectId, WORK_PROJECT_SUBCOLLECTIONS.WORK_PROJECT_TALES, taleId],\n\n taleChapter: (workProjectId: string, taleId: string, chapterId: string): [string, string, string, string, string, string] =>\n [COLLECTIONS.ALL_WORK_PROJECTS, workProjectId, WORK_PROJECT_SUBCOLLECTIONS.WORK_PROJECT_TALES, taleId, NESTED_SUBCOLLECTIONS.TALE_CHAPTERS, chapterId],\n\n // Collection of chapters under a tale (parent of taleChapter).\n taleChapters: (workProjectId: string, taleId: string): [string, string, string, string, string] =>\n [COLLECTIONS.ALL_WORK_PROJECTS, workProjectId, WORK_PROJECT_SUBCOLLECTIONS.WORK_PROJECT_TALES, taleId, NESTED_SUBCOLLECTIONS.TALE_CHAPTERS],\n\n workProjectTune: (workProjectId: string, tuneId: string): [string, string, string, string] =>\n [COLLECTIONS.ALL_WORK_PROJECTS, workProjectId, WORK_PROJECT_SUBCOLLECTIONS.WORK_PROJECT_TUNES, tuneId],\n\n tuneTrack: (workProjectId: string, tuneId: string, trackId: string): [string, string, string, string, string, string] =>\n [COLLECTIONS.ALL_WORK_PROJECTS, workProjectId, WORK_PROJECT_SUBCOLLECTIONS.WORK_PROJECT_TUNES, tuneId, NESTED_SUBCOLLECTIONS.TUNE_TRACKS, trackId],\n\n workProjectTelevision: (workProjectId: string, televisionId: string): [string, string, string, string] =>\n [COLLECTIONS.ALL_WORK_PROJECTS, workProjectId, WORK_PROJECT_SUBCOLLECTIONS.WORK_PROJECT_TELEVISION, televisionId],\n\n televisionEpisode: (workProjectId: string, televisionId: string, episodeId: string): [string, string, string, string, string, string] =>\n [COLLECTIONS.ALL_WORK_PROJECTS, workProjectId, WORK_PROJECT_SUBCOLLECTIONS.WORK_PROJECT_TELEVISION, televisionId, NESTED_SUBCOLLECTIONS.TELEVISION_EPISODES, episodeId],\n\n // Collection of episodes under a television item (parent of televisionEpisode).\n televisionEpisodes: (workProjectId: string, televisionId: string): [string, string, string, string, string] =>\n [COLLECTIONS.ALL_WORK_PROJECTS, workProjectId, WORK_PROJECT_SUBCOLLECTIONS.WORK_PROJECT_TELEVISION, televisionId, NESTED_SUBCOLLECTIONS.TELEVISION_EPISODES],\n\n workProjectGuildmateUser: (workProjectId: string, uid: string): [string, string, string, string] =>\n [COLLECTIONS.ALL_WORK_PROJECTS, workProjectId, WORK_PROJECT_SUBCOLLECTIONS.GUILDMATE_USERS, uid],\n\n workProjectPublicGuildmateUser: (workProjectId: string, uid: string): [string, string, string, string] =>\n [COLLECTIONS.ALL_WORK_PROJECTS, workProjectId, WORK_PROJECT_SUBCOLLECTIONS.PUBLIC_GUILDMATE_USERS, uid],\n\n workFileFolder: (workProjectId: string, workFileFolderId: string): [string, string, string, string] =>\n [COLLECTIONS.ALL_WORK_PROJECTS, workProjectId, WORK_PROJECT_SUBCOLLECTIONS.WORK_FILE_FOLDERS, workFileFolderId],\n\n workFile: (workProjectId: string, workFileFolderId: string, workFileId: string): [string, string, string, string, string, string] =>\n [COLLECTIONS.ALL_WORK_PROJECTS, workProjectId, WORK_PROJECT_SUBCOLLECTIONS.WORK_FILE_FOLDERS, workFileFolderId, NESTED_SUBCOLLECTIONS.WORK_FILES, workFileId],\n\n stakeShareAuditEvent: (eventId: string): [string, string] =>\n [COLLECTIONS.STAKE_SHARE_AUDIT_EVENTS, eventId],\n\n guildChatChannel: (workProjectId: string, guildChatChannelId: string): [string, string, string, string] =>\n [COLLECTIONS.ALL_WORK_PROJECTS, workProjectId, WORK_PROJECT_SUBCOLLECTIONS.GUILD_CHAT_CHANNELS, guildChatChannelId],\n\n // ===== SQUARE PATHS =====\n activePost: (postId: string): [string, string, string, string] =>\n [COLLECTIONS.SQUARE_STREETZ_FEED, NESTED_SUBCOLLECTIONS.ACTIVE_POSTS, NESTED_SUBCOLLECTIONS.SOCIAL_POSTS, postId],\n\n trendingPosts: (): [string, string] =>\n [COLLECTIONS.SQUARE_STREETZ_FEED, NESTED_SUBCOLLECTIONS.TRENDING_POSTS],\n\n // Server-only durable Square announcement outbox job. jobId is DETERMINISTIC —\n // ALWAYS derive it via buildSquareAnnouncementJobId (doc-schemas/square-announcement-jobs.ts).\n squareAnnouncementJob: (jobId: string): [string, string] =>\n [COLLECTIONS.SQUARE_ANNOUNCEMENT_JOBS, jobId],\n\n // ===== HALL PATHS =====\n thresholdItem: (thresholdItemId: string): [string, string] =>\n [COLLECTIONS.THRESHOLD_ITEMS, thresholdItemId],\n\n hallItem: (hallItemId: string): [string, string] =>\n [COLLECTIONS.HALL_ITEMS, hallItemId],\n\n // Published hall sub-item projection (chapter/track/episode). The subcollection segment\n // is constrained to the canonical HALL_ITEM_SUBCOLLECTIONS values (hallItemTales /\n // hallItemTunes / hallItemTelevision) — derive it from\n // HALL_ITEM_SUBCOLLECTION_BY_WORK_TYPE. `workProjectType.toLowerCase()` is NOT a valid\n // derivation: it yields a segment that does not exist, silently addressing an empty\n // collection instead of failing.\n hallItemType: (hallItemId: string, subcollection: HallItemSubcollection, itemId: string): [string, string, string, string] =>\n [COLLECTIONS.HALL_ITEMS, hallItemId, subcollection, itemId],\n\n // A published Hall sub-item's path is determined by its canonical identity, never a\n // caller-provided collection segment. This is the path used by typed administrative replay\n // targets as well as ordinary Hall moderation operations.\n hallItemSubItem: (hallItemId: string, workProjectType: WorkProjectType, itemId: string): [string, string, string, string] =>\n [COLLECTIONS.HALL_ITEMS, hallItemId, HALL_ITEM_SUBCOLLECTION_BY_WORK_TYPE[workProjectType], itemId],\n\n // Collection of published hall sub-items for one type (parent of hallItemType). The\n // subcollection segment is the canonical HallItemSubcollection — derive it from\n // HALL_ITEM_SUBCOLLECTION_BY_WORK_TYPE. `workProjectType.toLowerCase()` is NOT a valid\n // derivation: it yields a segment that does not exist, silently addressing an empty\n // collection instead of failing.\n hallItemSubItems: (hallItemId: string, subcollection: HallItemSubcollection): [string, string, string] =>\n [COLLECTIONS.HALL_ITEMS, hallItemId, subcollection],\n\n hallContentChangeRequest: (changeRequestId: string): [string, string] =>\n [COLLECTIONS.HALL_CONTENT_CHANGE_REQUESTS, changeRequestId],\n\n // ===== COMMISSION PATHS =====\n commissionListing: (commissionListingId: string): [string, string] =>\n [COLLECTIONS.COMMISSION_LISTINGS, commissionListingId],\n\n commissionProposal: (commissionListingId: string, commissionProposalId: string): [string, string, string, string] =>\n [COLLECTIONS.COMMISSION_LISTINGS, commissionListingId, NESTED_SUBCOLLECTIONS.COMMISSION_PROPOSALS, commissionProposalId],\n\n // ===== AUDITION PATHS =====\n audition: (auditionId: string): [string, string] =>\n [COLLECTIONS.AUDITION_BOARD, auditionId],\n\n auditionEntry: (auditionId: string, auditionEntryId: string): [string, string, string, string] =>\n [COLLECTIONS.AUDITION_BOARD, auditionId, NESTED_SUBCOLLECTIONS.AUDITION_ENTRIES, auditionEntryId],\n\n // ===== REALM PATHS =====\n workRealm: (workRealmId: string): [string, string] =>\n [COLLECTIONS.WORK_REALMS, workRealmId],\n\n // Realm shared-file FOLDER (a container only — shared files stay workFiles under their\n // owning Work and carry `realmFileFolderId` on their mediaAssets doc).\n realmFileFolder: (workRealmId: string, realmFileFolderId: string): [string, string, string, string] =>\n [COLLECTIONS.WORK_REALMS, workRealmId, WORK_REALM_SUBCOLLECTIONS.REALM_FILE_FOLDERS, realmFileFolderId],\n\n // ===== ADMIN & SYSTEM PATHS =====\n adminDispatch: (adminDispatchId: string): [string, string] =>\n [COLLECTIONS.PENDING_ADMIN_DISPATCHES, adminDispatchId],\n\n adminConversationMessage: (adminDispatchId: string, adminDispatchMessageId: string): [string, string, string, string] =>\n [COLLECTIONS.PENDING_ADMIN_DISPATCHES, adminDispatchId, NESTED_SUBCOLLECTIONS.CONVERSATION_MESSAGES, adminDispatchMessageId],\n\n guildInvite: (guildInviteId: string): [string, string] =>\n [COLLECTIONS.GUILD_INVITE_CONVERSATIONS, guildInviteId],\n\n // ===== CONVERSATION FILES (the two supported ConversationFileRef scopes) =====\n // Application and backend code must NOT assemble these paths independently.\n // `conversationFileId` is deterministic — it IS the pendingMedia id.\n guildInviteConversationFile: (guildInviteId: string, conversationFileId: string): [string, string, string, string] =>\n [COLLECTIONS.GUILD_INVITE_CONVERSATIONS, guildInviteId, NESTED_SUBCOLLECTIONS.CONVERSATION_FILES, conversationFileId],\n\n adminDispatchConversationFile: (adminDispatchId: string, conversationFileId: string): [string, string, string, string] =>\n [COLLECTIONS.PENDING_ADMIN_DISPATCHES, adminDispatchId, NESTED_SUBCOLLECTIONS.CONVERSATION_FILES, conversationFileId],\n\n contentReport: (reportId: string): [string, string] =>\n [COLLECTIONS.CONTENT_REPORTS, reportId],\n\n // The report's public, reporter-identity-free projection. The projection doc id IS the\n // report id (contentReports/{reportId}/publicProjection/{reportId}).\n reportPublicProjection: (reportId: string): [string, string, string, string] =>\n [COLLECTIONS.CONTENT_REPORTS, reportId, NESTED_SUBCOLLECTIONS.REPORT_PUBLIC_PROJECTION, reportId],\n\n // Fixed-id restricted report-PII subdocs (contentReports/{reportId}/privateDetails/{snapshot,narrative}).\n reportPrivateSnapshot: (reportId: string): [string, string, string, string] =>\n [COLLECTIONS.CONTENT_REPORTS, reportId, NESTED_SUBCOLLECTIONS.PRIVATE, SPECIAL_DOCS.REPORT_SNAPSHOT],\n\n reportPrivateNarrative: (reportId: string): [string, string, string, string] =>\n [COLLECTIONS.CONTENT_REPORTS, reportId, NESTED_SUBCOLLECTIONS.PRIVATE, SPECIAL_DOCS.REPORT_NARRATIVE],\n\n // The SECOND narrative doc, typed when an existing ordinary report is escalated into a\n // protected case — a sibling of `privateDetails/narrative` in the same restricted\n // subcollection, so the original narrative is never overwritten and the read gate is identical.\n reportPrivateEscalationNarrative: (reportId: string): [string, string, string, string] =>\n [COLLECTIONS.CONTENT_REPORTS, reportId, NESTED_SUBCOLLECTIONS.PRIVATE, SPECIAL_DOCS.REPORT_NARRATIVE_ESCALATION],\n\n activeReportGroup: (groupKey: string): [string, string] =>\n [COLLECTIONS.ACTIVE_REPORT_GROUPS, groupKey],\n\n // Per-report idempotency marker under a group (its ABSENCE gates the totalReports increment).\n reportGroupCountedReport: (groupKey: string, reportId: string): [string, string, string, string] =>\n [COLLECTIONS.ACTIVE_REPORT_GROUPS, groupKey, NESTED_SUBCOLLECTIONS.REPORT_GROUP_COUNTED_REPORTS, reportId],\n\n // Time-sensitive admin-tray \"case needs work\" pin (activeSafetyCaseAlerts/{caseId}).\n safetyCaseAlert: (caseId: string): [string, string] =>\n [COLLECTIONS.ACTIVE_SAFETY_CASE_ALERTS, caseId],\n\n contentViolation: (violationId: string): [string, string] =>\n [COLLECTIONS.CONTENT_VIOLATIONS, violationId],\n\n adminTask: (taskId: string): [string, string] =>\n [COLLECTIONS.ADMIN_TASKS, taskId],\n\n adminTaskForItem: (taskType: string, itemId: string): [string, string] =>\n [COLLECTIONS.ADMIN_TASKS, `${taskType}-${itemId}`],\n\n moderationCascadeManifest: (cascadeId: string): [string, string] =>\n [COLLECTIONS.MODERATION_CASCADE_MANIFESTS, cascadeId],\n\n moderationCascadeChangedDoc: (cascadeId: string, changedDocId: string): [string, string, string, string] =>\n [COLLECTIONS.MODERATION_CASCADE_MANIFESTS, cascadeId, NESTED_SUBCOLLECTIONS.CHANGED_DOCS, changedDocId],\n\n // ===== UTILITY PATHS =====\n reservedDisplayName: (displayNameUppercase: string): [string, string] =>\n [COLLECTIONS.RESERVED_DISPLAY_NAMES, displayNameUppercase],\n\n reservedRealmName: (workingTitleUppercase: string): [string, string] =>\n [COLLECTIONS.RESERVED_REALM_NAMES, workingTitleUppercase],\n\n shortLink: (shortId: string): [string, string] =>\n [COLLECTIONS.SHORT_LINKS, shortId],\n\n pendingMedia: (docId: string): [string, string] =>\n [COLLECTIONS.PENDING_MEDIA, docId],\n\n pendingMediaArchive: (docId: string): [string, string] =>\n [COLLECTIONS.PENDING_MEDIA_ARCHIVE, docId],\n\n mediaAsset: (mediaAssetId: string): [string, string] =>\n [COLLECTIONS.MEDIA_ASSETS, mediaAssetId],\n\n // Server-only durable activation job (prepare → activate → publish + recovery).\n mediaActivationJob: (jobId: string): [string, string] =>\n [COLLECTIONS.MEDIA_ACTIVATION_JOBS, jobId],\n\n // ===== NOTIFICATION REDESIGN (ledger + fanout engine) PATHS =====\n notificationDelivery: (deliveryId: string): [string, string] =>\n [COLLECTIONS.NOTIFICATION_DELIVERIES, deliveryId],\n\n notificationFanoutJob: (jobId: string): [string, string] =>\n [COLLECTIONS.NOTIFICATION_FANOUT_JOBS, jobId],\n\n // ===== CHAT REALTIME SYNC / PROJECTION / COMMAND PATHS =====\n chatChannelAuthProjection: (authPairKey: string): [string, string] =>\n [COLLECTIONS.CHAT_CHANNEL_AUTH_PROJECTIONS, authPairKey],\n\n chatScopeDegraded: (scopeKey: string): [string, string] =>\n [COLLECTIONS.CHAT_SCOPE_DEGRADED, scopeKey],\n\n chatScopeDegradedCause: (scopeKey: string, causeId: string): [string, string, string, string] =>\n [COLLECTIONS.CHAT_SCOPE_DEGRADED, scopeKey, NESTED_SUBCOLLECTIONS.CHAT_SCOPE_DEGRADED_CAUSES, causeId],\n\n chatSyncEvent: (eventId: string): [string, string] =>\n [COLLECTIONS.CHAT_SYNC_EVENTS, eventId],\n\n chatSyncFanoutJob: (jobId: string): [string, string] =>\n [COLLECTIONS.CHAT_SYNC_FANOUT_JOBS, jobId],\n\n chatMessageOutboxCommand: (commandId: string): [string, string] =>\n [COLLECTIONS.CHAT_MESSAGE_OUTBOX, commandId],\n\n chatAdminActionCommand: (requestId: string): [string, string] =>\n [COLLECTIONS.CHAT_ADMIN_ACTION_COMMANDS, requestId],\n\n chatHistoryAnonymizationJob: (jobId: string): [string, string] =>\n [COLLECTIONS.CHAT_HISTORY_ANONYMIZATION_JOBS, jobId],\n\n chatHistoryAnonymizationAffectedChunk: (jobId: string, chunkOrdinal: string): [string, string, string, string] =>\n [COLLECTIONS.CHAT_HISTORY_ANONYMIZATION_JOBS, jobId, NESTED_SUBCOLLECTIONS.CHAT_ANONYMIZATION_AFFECTED_CHUNKS, chunkOrdinal],\n\n // ===== PAYMENT & PLEDGE PATHS =====\n // Public-safe canonical money record. Stripe IDs live on pledgePaymentProviderRef (server-only).\n pledgePayment: (pledgePaymentId: string): [string, string] =>\n [COLLECTIONS.PLEDGE_PAYMENTS, pledgePaymentId],\n\n // Server-only Stripe references (session/PI/charge/dispute IDs). One doc per pledge — singular.\n pledgePaymentProviderRef: (pledgePaymentId: string): [string, string] =>\n [COLLECTIONS.PLEDGE_PAYMENT_PROVIDER_REFS, pledgePaymentId],\n\n // Running-totals singleton — incremented in the Stripe webhook's pledge-record transaction;\n // read (ONE doc) by the public raised-total surfaces instead of a collection-wide aggregation.\n pledgePaymentTotals: (): [string, string] =>\n [COLLECTIONS.PLEDGE_PAYMENT_TOTALS, SPECIAL_DOCS.SUMMARY],\n\n // Idempotency sentinel, keyed by the Stripe event.id.\n processedStripeEvent: (stripeEventId: string): [string, string] =>\n [COLLECTIONS.PROCESSED_STRIPE_EVENTS, stripeEventId],\n\n // Independent integrity record from the ledger verification trigger.\n pledgePaymentLedgerEvent: (ledgerId: string): [string, string] =>\n [COLLECTIONS.PLEDGE_PAYMENT_LEDGER_EVENTS, ledgerId],\n\n // Unrecoverable paid-event repair queue, keyed by the Stripe event.id.\n paymentWebhookQuarantine: (stripeEventId: string): [string, string] =>\n [COLLECTIONS.PAYMENT_WEBHOOK_QUARANTINE, stripeEventId],\n\n // User-initiated pledge refund request (post-launch), keyed by requestId. No Stripe ids on this\n // doc — those live on pledgePaymentProviderRefs.\n pledgeRefundRequest: (requestId: string): [string, string] =>\n [COLLECTIONS.PLEDGE_REFUND_REQUESTS, requestId],\n\n // ===== FEEDBACK & CRAFT PATHS =====\n feedbackSubmission: (feedbackType: string): [string, string] =>\n [COLLECTIONS.FEEDBACK_SUBMISSIONS, feedbackType],\n\n userSuggestion: (feedbackType: string, suggestionId: string): [string, string, string, string] =>\n [COLLECTIONS.FEEDBACK_SUBMISSIONS, feedbackType, NESTED_SUBCOLLECTIONS.USER_SUGGESTIONS, suggestionId],\n\n // The two submitFeedback lists live under the server-only `_serverData/feedbackLists`\n // container doc (BACKEND-108) — Cloud Functions read them via the Admin SDK and no\n // client reads either one. Doc ids are the normalized suggestion text.\n feedbackAlias: (aliasId: string): [string, string, string, string] =>\n [COLLECTIONS.SERVER_DATA, SPECIAL_DOCS.FEEDBACK_LISTS, NESTED_SUBCOLLECTIONS.FEEDBACK_ALIASES, aliasId],\n\n feedbackDenylist: (deniedWord: string): [string, string, string, string] =>\n [COLLECTIONS.SERVER_DATA, SPECIAL_DOCS.FEEDBACK_LISTS, NESTED_SUBCOLLECTIONS.FEEDBACK_DENYLIST, deniedWord],\n\n taggedCraftSkill: (tag: string, compositeId: string): [string, string, string, string] =>\n [COLLECTIONS.CRAFT_SKILLS_BY_TAG, tag, NESTED_SUBCOLLECTIONS.TAGGED_CRAFT_SKILLS, compositeId],\n\n // ===== SYSTEM DATA PATHS =====\n adminList: (): [string, string] =>\n [COLLECTIONS.SYSTEM_DATA, SPECIAL_DOCS.ADMIN_LIST],\n\n futurePlans: (): [string, string] =>\n [COLLECTIONS.APP_CONFIG, SPECIAL_DOCS.FUTURE_PLANS],\n\n profanityList: (): [string, string] =>\n [COLLECTIONS.SYSTEM_DATA, SPECIAL_DOCS.PROFANITY_LIST],\n\n reservedUsernames: (): [string, string] =>\n [COLLECTIONS.SYSTEM_DATA, SPECIAL_DOCS.RESERVED_USERNAMES],\n\n blockedFranchiseNames: (): [string, string] =>\n [COLLECTIONS.SYSTEM_DATA, SPECIAL_DOCS.BLOCKED_FRANCHISE_NAMES],\n\n rulesAndAgreements: (): [string, string] =>\n [COLLECTIONS.APP_CONFIG, SPECIAL_DOCS.RULES_AND_AGREEMENTS],\n\n termsPage: (): [string, string] =>\n [COLLECTIONS.APP_CONFIG, SPECIAL_DOCS.TERMS_PAGE],\n\n privacyPage: (): [string, string] =>\n [COLLECTIONS.APP_CONFIG, SPECIAL_DOCS.PRIVACY_PAGE],\n\n takeItDownPageCopy: (): [string, string] =>\n [COLLECTIONS.APP_CONFIG, SPECIAL_DOCS.TAKE_IT_DOWN_PAGE_COPY],\n\n appConfig: (): [string, string] =>\n [COLLECTIONS.APP_CONFIG, SPECIAL_DOCS.APP_CONFIG],\n\n appModeMarker: (): [string, string] =>\n [COLLECTIONS.SYSTEM_DATA, SPECIAL_DOCS.APP_MODE],\n\n // Singleton scan cursor for the scheduled Hall media orphan reaper\n // (reapOrphanedHallMediaCopies). Backend-only; persists the highest `createdAt` the\n // reaper has positively cleared so each pass resumes instead of re-reading the oldest page.\n hallMediaReaperCursor: (): [string, string] =>\n [COLLECTIONS.SYSTEM_DATA, SPECIAL_DOCS.HALL_MEDIA_REAPER_CURSOR],\n\n // Singleton sweep cursor for the scheduled publicUsers reconciler (reconcilePublicUsers).\n // Backend-only; persists the last userProfiles document id the sweep positively cleared so\n // each pass resumes instead of re-reading the same oldest page ('' = start from the beginning).\n publicUsersReconcilerCursor: (): [string, string] =>\n [COLLECTIONS.SYSTEM_DATA, SPECIAL_DOCS.PUBLIC_USERS_RECONCILER_CURSOR],\n\n // Backend-only post-commit auth-effect reconcile queue entry, keyed by the affected uid.\n statusReconcileQueueEntry: (uid: string): [string, string] =>\n [COLLECTIONS.STATUS_RECONCILE_QUEUE, uid],\n\n // ===== TRUST & SAFETY — child-safety case spine (§A1b, §A2) =====\n childSafetyCaseListEntry: (caseId: string): [string, string] =>\n [COLLECTIONS.CHILD_SAFETY_CASE_LIST, caseId],\n\n childSafetyCase: (caseId: string): [string, string] =>\n [COLLECTIONS.CHILD_SAFETY_CASES, caseId],\n\n childSafetySourceSignal: (caseId: string, signalId: string): [string, string, string, string] =>\n [COLLECTIONS.CHILD_SAFETY_CASES, caseId, NESTED_SUBCOLLECTIONS.CHILD_SAFETY_SOURCE_SIGNALS, signalId],\n\n // Collection of source-signal rows for a case (parent of childSafetySourceSignal).\n childSafetySourceSignals: (caseId: string): [string, string, string] =>\n [COLLECTIONS.CHILD_SAFETY_CASES, caseId, NESTED_SUBCOLLECTIONS.CHILD_SAFETY_SOURCE_SIGNALS],\n\n childSafetyDecision: (caseId: string, decisionId: string): [string, string, string, string] =>\n [COLLECTIONS.CHILD_SAFETY_CASES, caseId, NESTED_SUBCOLLECTIONS.CHILD_SAFETY_DECISIONS, decisionId],\n\n // Collection of decision rows for a case (parent of childSafetyDecision).\n childSafetyDecisions: (caseId: string): [string, string, string] =>\n [COLLECTIONS.CHILD_SAFETY_CASES, caseId, NESTED_SUBCOLLECTIONS.CHILD_SAFETY_DECISIONS],\n\n childSafetyDecisionView: (caseId: string, decisionId: string, viewId: string): [string, string, string, string, string, string] =>\n [COLLECTIONS.CHILD_SAFETY_CASES, caseId, NESTED_SUBCOLLECTIONS.CHILD_SAFETY_DECISIONS, decisionId, NESTED_SUBCOLLECTIONS.CHILD_SAFETY_DECISION_VIEWS, viewId],\n\n childSafetyCaseAccount: (caseId: string, uid: string): [string, string, string, string] =>\n [COLLECTIONS.CHILD_SAFETY_CASES, caseId, NESTED_SUBCOLLECTIONS.CHILD_SAFETY_CASE_ACCOUNTS, uid],\n\n // Collection of per-account rows for a case (parent of childSafetyCaseAccount).\n childSafetyCaseAccounts: (caseId: string): [string, string, string] =>\n [COLLECTIONS.CHILD_SAFETY_CASES, caseId, NESTED_SUBCOLLECTIONS.CHILD_SAFETY_CASE_ACCOUNTS],\n\n childSafetyCaseAccountHistory: (caseId: string, uid: string, historyId: string): [string, string, string, string, string, string] =>\n [COLLECTIONS.CHILD_SAFETY_CASES, caseId, NESTED_SUBCOLLECTIONS.CHILD_SAFETY_CASE_ACCOUNTS, uid, NESTED_SUBCOLLECTIONS.CHILD_SAFETY_CASE_ACCOUNT_HISTORY, historyId],\n\n childSafetyNcmecSubmission: (caseId: string, submissionId: string): [string, string, string, string] =>\n [COLLECTIONS.CHILD_SAFETY_CASES, caseId, NESTED_SUBCOLLECTIONS.CHILD_SAFETY_NCMEC_SUBMISSIONS, submissionId],\n\n childSafetyNcmecSubmissionFile: (caseId: string, submissionId: string, fileId: string): [string, string, string, string, string, string] =>\n [COLLECTIONS.CHILD_SAFETY_CASES, caseId, NESTED_SUBCOLLECTIONS.CHILD_SAFETY_NCMEC_SUBMISSIONS, submissionId, NESTED_SUBCOLLECTIONS.CHILD_SAFETY_NCMEC_SUBMISSION_FILES, fileId],\n\n // Per-submission NCMEC transmission attempt. Previously a `firestore.rules`-only segment\n // with no ttt-core constant; the segment now has a single owner (NCMEC_SUBMISSION_ATTEMPTS).\n childSafetyNcmecSubmissionAttempt: (caseId: string, submissionId: string, attemptId: string): [string, string, string, string, string, string] =>\n [COLLECTIONS.CHILD_SAFETY_CASES, caseId, NESTED_SUBCOLLECTIONS.CHILD_SAFETY_NCMEC_SUBMISSIONS, submissionId, NESTED_SUBCOLLECTIONS.NCMEC_SUBMISSION_ATTEMPTS, attemptId],\n\n // The submission's single immutable completion-proof record. Fixed doc id — one proof per\n // submission, written create-if-absent in the same transaction that marks the submission\n // `completed`, so `completed` and its bound proof can never diverge.\n childSafetyNcmecCompletionProof: (caseId: string, submissionId: string): [string, string, string, string, string, string] =>\n [COLLECTIONS.CHILD_SAFETY_CASES, caseId, NESTED_SUBCOLLECTIONS.CHILD_SAFETY_NCMEC_SUBMISSIONS, submissionId, NESTED_SUBCOLLECTIONS.NCMEC_COMPLETION_PROOF, SPECIAL_DOCS.RECORD],\n\n childSafetyLegalProcessEvent: (caseId: string, eventId: string): [string, string, string, string] =>\n [COLLECTIONS.CHILD_SAFETY_CASES, caseId, NESTED_SUBCOLLECTIONS.CHILD_SAFETY_LEGAL_PROCESS, eventId],\n\n // Immutable portal-receipt artifact record bound to a case + NCMEC submission — the proof\n // `markNcmecPortalComplete` requires. Written create-only by recordNcmecPortalReceiptArtifact.\n childSafetyPortalReceiptArtifact: (caseId: string, artifactId: string): [string, string, string, string] =>\n [COLLECTIONS.CHILD_SAFETY_CASES, caseId, NESTED_SUBCOLLECTIONS.NCMEC_PORTAL_RECEIPT_ARTIFACTS, artifactId],\n\n // Collection of portal-receipt artifact rows for a case (parent of the builder above) — the\n // auto-id mint site.\n childSafetyPortalReceiptArtifacts: (caseId: string): [string, string, string] =>\n [COLLECTIONS.CHILD_SAFETY_CASES, caseId, NESTED_SUBCOLLECTIONS.NCMEC_PORTAL_RECEIPT_ARTIFACTS],\n\n // Immutable record that the operator filed a CORRECTION on the NCMEC manual portal. Its\n // existence is what unlocks the corrected-no-apparent-violation disposition.\n childSafetyNcmecPortalCorrection: (caseId: string, correctionId: string): [string, string, string, string] =>\n [COLLECTIONS.CHILD_SAFETY_CASES, caseId, NESTED_SUBCOLLECTIONS.NCMEC_PORTAL_CORRECTIONS, correctionId],\n\n // Collection of portal-correction rows for a case (parent of the builder above) — the auto-id\n // mint site and the existence query behind the disposition gate.\n childSafetyNcmecPortalCorrections: (caseId: string): [string, string, string] =>\n [COLLECTIONS.CHILD_SAFETY_CASES, caseId, NESTED_SUBCOLLECTIONS.NCMEC_PORTAL_CORRECTIONS],\n\n childSafetyOwningAlias: (aliasId: string): [string, string] =>\n [COLLECTIONS.CHILD_SAFETY_OWNING_ALIASES, aliasId],\n\n // ===== TRUST & SAFETY — holds + resource commands (§A3) =====\n // Composite doc id caseId__resourceKeyHash — a single {holdRefId} segment.\n safetyHoldRef: (holdRefId: string): [string, string] =>\n [COLLECTIONS.SAFETY_HOLD_REFS, holdRefId],\n\n safetyHoldResource: (resourceKeyHash: string): [string, string] =>\n [COLLECTIONS.SAFETY_HOLD_RESOURCES, resourceKeyHash],\n\n // Composite doc id resourceKeyHash__commandId — a single {commandDocId} segment.\n safetyResourceCommand: (commandDocId: string): [string, string] =>\n [COLLECTIONS.SAFETY_RESOURCE_COMMANDS, commandDocId],\n\n safetyResourceCommandAuthorizedRequest: (commandDocId: string, requestId: string): [string, string, string, string] =>\n [COLLECTIONS.SAFETY_RESOURCE_COMMANDS, commandDocId, NESTED_SUBCOLLECTIONS.SAFETY_RESOURCE_COMMAND_AUTHORIZED_REQUESTS, requestId],\n\n safetyResourceCommandBypassRef: (commandDocId: string, refId: string): [string, string, string, string] =>\n [COLLECTIONS.SAFETY_RESOURCE_COMMANDS, commandDocId, NESTED_SUBCOLLECTIONS.SAFETY_RESOURCE_COMMAND_BYPASS_REFS, refId],\n\n // ===== TRUST & SAFETY — evidence + provenance (§A4, §A6) =====\n safetyEvidenceManifest: (manifestId: string): [string, string] =>\n [COLLECTIONS.SAFETY_EVIDENCE_MANIFESTS, manifestId],\n\n safetyEvidenceJob: (jobId: string): [string, string] =>\n [COLLECTIONS.SAFETY_EVIDENCE_JOBS, jobId],\n\n safetyEvidenceJobItem: (jobId: string, itemId: string): [string, string, string, string] =>\n [COLLECTIONS.SAFETY_EVIDENCE_JOBS, jobId, NESTED_SUBCOLLECTIONS.SAFETY_EVIDENCE_JOB_ITEMS, itemId],\n\n safetyEvidenceJobDisposition: (jobId: string, locationId: string): [string, string, string, string] =>\n [COLLECTIONS.SAFETY_EVIDENCE_JOBS, jobId, NESTED_SUBCOLLECTIONS.SAFETY_EVIDENCE_JOB_DISPOSITION, locationId],\n\n eventProvenance: (eventId: string): [string, string] =>\n [COLLECTIONS.EVENT_PROVENANCE, eventId],\n\n // ===== TRUST & SAFETY — sagas + closure (§A5) =====\n quarantineSagaJob: (caseId: string): [string, string] =>\n [COLLECTIONS.QUARANTINE_SAGA_JOBS, caseId],\n\n quarantineSagaRelatedAsset: (caseId: string, assetId: string): [string, string, string, string] =>\n [COLLECTIONS.QUARANTINE_SAGA_JOBS, caseId, NESTED_SUBCOLLECTIONS.QUARANTINE_SAGA_RELATED_ASSETS, assetId],\n\n // Composite doc id caseId__submissionId — a single {ncmecJobId} segment.\n ncmecSubmissionJob: (ncmecJobId: string): [string, string] =>\n [COLLECTIONS.NCMEC_SUBMISSION_JOBS, ncmecJobId],\n\n // Composite doc id caseId__uid — a single {accountActionCommandId} segment.\n accountActionCommand: (accountActionCommandId: string): [string, string] =>\n [COLLECTIONS.ACCOUNT_ACTION_COMMANDS, accountActionCommandId],\n\n // ===== TRUST & SAFETY — SLA monitors + heartbeat (§A8) =====\n // Composite doc id {caseId|requestId}__{monitorKind} — a single {monitorId} segment.\n safetySlaMonitor: (monitorId: string): [string, string] =>\n [COLLECTIONS.SAFETY_SLA_MONITORS, monitorId],\n\n // Singleton: safetyMonitorHeartbeat/global.\n safetyMonitorHeartbeat: (): [string, string] =>\n [COLLECTIONS.SAFETY_MONITOR_HEARTBEAT, SPECIAL_DOCS.SAFETY_MONITOR_HEARTBEAT_GLOBAL],\n\n // ===== TRUST & SAFETY — age attestation nonces (§A7) =====\n ageAttestationNonce: (nonceHash: string): [string, string] =>\n [COLLECTIONS.AGE_ATTESTATION_NONCES, nonceHash],\n\n // ===== TRUST & SAFETY — operator step-up + reconciler cursors (backend-only) =====\n // [H-08] per-operator TOTP step-up state, keyed by uid. Cloud-Functions-only.\n operatorStepUp: (uid: string): [string, string] =>\n [COLLECTIONS.OPERATOR_STEP_UP, uid],\n\n // Persisted pagination cursor for one reconciler needs-work backstop sweep.\n safetyReconcilerCursor: (cursorKey: string): [string, string] =>\n [COLLECTIONS.SAFETY_RECONCILER_CURSORS, cursorKey],\n\n // Durable cadence/cursor state for one scheduled user sweep, keyed by the sweep name\n // (orphanRegistrationCleanup, reconcileAccountStatus). Backend-only.\n sweepState: (sweepName: string): [string, string] =>\n [COLLECTIONS.SWEEP_STATE, sweepName],\n\n // ===== TRUST & SAFETY — NCII / TAKE IT DOWN (§A11) =====\n nciiAllegation: (allegationId: string): [string, string] =>\n [COLLECTIONS.NCII_ALLEGATIONS, allegationId],\n\n takeItDownRequest: (requestId: string): [string, string] =>\n [COLLECTIONS.TAKE_IT_DOWN_REQUESTS, requestId],\n\n // Fixed-id requester PII subdoc (takeItDownRequests/{requestId}/privateDetails/requester).\n takeItDownRequesterPrivate: (requestId: string): [string, string, string, string] =>\n [COLLECTIONS.TAKE_IT_DOWN_REQUESTS, requestId, NESTED_SUBCOLLECTIONS.PRIVATE, SPECIAL_DOCS.TAKE_IT_DOWN_REQUESTER],\n\n takeItDownSubmission: (requestId: string, submissionId: string): [string, string, string, string] =>\n [COLLECTIONS.TAKE_IT_DOWN_REQUESTS, requestId, NESTED_SUBCOLLECTIONS.TAKE_IT_DOWN_SUBMISSIONS, submissionId],\n\n // Collection of submissions under a request (parent of takeItDownSubmission).\n takeItDownSubmissions: (requestId: string): [string, string, string] =>\n [COLLECTIONS.TAKE_IT_DOWN_REQUESTS, requestId, NESTED_SUBCOLLECTIONS.TAKE_IT_DOWN_SUBMISSIONS],\n\n // Collection of validity decisions under a request (parent of takeItDownValidityDecision).\n takeItDownValidityDecisions: (requestId: string): [string, string, string] =>\n [COLLECTIONS.TAKE_IT_DOWN_REQUESTS, requestId, NESTED_SUBCOLLECTIONS.TAKE_IT_DOWN_VALIDITY_DECISIONS],\n\n takeItDownValidityDecision: (requestId: string, decisionId: string): [string, string, string, string] =>\n [COLLECTIONS.TAKE_IT_DOWN_REQUESTS, requestId, NESTED_SUBCOLLECTIONS.TAKE_IT_DOWN_VALIDITY_DECISIONS, decisionId],\n\n // The decision's RESTRICTED rationale row (fixed doc id — one rationale per decision), written\n // create-only in the same transaction as the decision; rationaleRef / detailRef point here.\n takeItDownValidityRationale: (requestId: string, decisionId: string): [string, string, string, string, string, string] =>\n [COLLECTIONS.TAKE_IT_DOWN_REQUESTS, requestId, NESTED_SUBCOLLECTIONS.TAKE_IT_DOWN_VALIDITY_DECISIONS, decisionId, NESTED_SUBCOLLECTIONS.TAKE_IT_DOWN_VALIDITY_RATIONALE, SPECIAL_DOCS.RECORD],\n\n takeItDownRequestAction: (requestId: string, actionId: string): [string, string, string, string] =>\n [COLLECTIONS.TAKE_IT_DOWN_REQUESTS, requestId, NESTED_SUBCOLLECTIONS.TAKE_IT_DOWN_ACTIONS, actionId],\n\n takeItDownEvidence: (requestId: string, evidenceId: string): [string, string, string, string] =>\n [COLLECTIONS.TAKE_IT_DOWN_REQUESTS, requestId, NESTED_SUBCOLLECTIONS.TAKE_IT_DOWN_EVIDENCE, evidenceId],\n\n // ONE deletion-verification record per evidence object, keyed by the evidence id so a retried or\n // redelivered sweep overwrites it: the record is the CURRENT deletion status, not an attempt log.\n takeItDownEvidenceDisposition: (requestId: string, evidenceId: string): [string, string, string, string] =>\n [COLLECTIONS.TAKE_IT_DOWN_REQUESTS, requestId, NESTED_SUBCOLLECTIONS.TAKE_IT_DOWN_EVIDENCE_DISPOSITION, evidenceId],\n\n // [H-01] a retained-but-unrecorded NCII-evidence inventory row (top-level; id is deterministic on\n // bucket+key+generation so a re-fire is idempotent).\n nciiRetainedEvidenceInventory: (inventoryId: string): [string, string] =>\n [COLLECTIONS.NCII_RETAINED_EVIDENCE_INVENTORY, inventoryId],\n\n // [H-01] dead-letter entry for an inventory row that could not be written to the primary\n // nciiRetainedEvidenceInventory collection (id mirrors the primary row id for traceability).\n nciiInventoryDeadLetter: (inventoryId: string): [string, string] =>\n [COLLECTIONS.NCII_INVENTORY_DEAD_LETTER, inventoryId],\n\n nciiCase: (caseId: string): [string, string] =>\n [COLLECTIONS.NCII_CASES, caseId],\n\n nciiCaseAllegationLink: (caseId: string, allegationId: string): [string, string, string, string] =>\n [COLLECTIONS.NCII_CASES, caseId, NESTED_SUBCOLLECTIONS.NCII_CASE_ALLEGATION_LINKS, allegationId],\n\n // Collection of allegation links for a case (parent of nciiCaseAllegationLink).\n nciiCaseAllegationLinks: (caseId: string): [string, string, string] =>\n [COLLECTIONS.NCII_CASES, caseId, NESTED_SUBCOLLECTIONS.NCII_CASE_ALLEGATION_LINKS],\n\n nciiCaseRequestLink: (caseId: string, requestId: string): [string, string, string, string] =>\n [COLLECTIONS.NCII_CASES, caseId, NESTED_SUBCOLLECTIONS.NCII_CASE_REQUEST_LINKS, requestId],\n\n // Collection of request links for a case (parent of nciiCaseRequestLink).\n nciiCaseRequestLinks: (caseId: string): [string, string, string] =>\n [COLLECTIONS.NCII_CASES, caseId, NESTED_SUBCOLLECTIONS.NCII_CASE_REQUEST_LINKS],\n\n // Append-only NCII case closure/reopen events.\n nciiCaseClosureEvent: (caseId: string, eventId: string): [string, string, string, string] =>\n [COLLECTIONS.NCII_CASES, caseId, NESTED_SUBCOLLECTIONS.NCII_CASE_CLOSURE_EVENTS, eventId],\n\n // Collection of closure/reopen events for a case (parent of nciiCaseClosureEvent).\n nciiCaseClosureEvents: (caseId: string): [string, string, string] =>\n [COLLECTIONS.NCII_CASES, caseId, NESTED_SUBCOLLECTIONS.NCII_CASE_CLOSURE_EVENTS],\n\n nciiCaseRemovalAction: (caseId: string, actionId: string): [string, string, string, string] =>\n [COLLECTIONS.NCII_CASES, caseId, NESTED_SUBCOLLECTIONS.NCII_CASE_REMOVAL_ACTIONS, actionId],\n\n nciiBlockedHash: (caseId: string, hashId: string): [string, string, string, string] =>\n [COLLECTIONS.NCII_CASES, caseId, NESTED_SUBCOLLECTIONS.NCII_CASE_BLOCKED_HASHES, hashId],\n\n nciiTemporaryHold: (holdId: string): [string, string] =>\n [COLLECTIONS.NCII_TEMPORARY_HOLDS, holdId],\n\n nciiRemovalJob: (jobId: string): [string, string] =>\n [COLLECTIONS.NCII_REMOVAL_JOBS, jobId],\n\n nciiRemovalTarget: (jobId: string, targetKeyHash: string): [string, string, string, string] =>\n [COLLECTIONS.NCII_REMOVAL_JOBS, jobId, NESTED_SUBCOLLECTIONS.NCII_REMOVAL_TARGETS, targetKeyHash],\n\n // ===== BACKEND-ONLY LEDGERS =====\n // Append-only audit ledger row (auditEvents/{eventId}).\n auditEvent: (eventId: string): [string, string] =>\n [COLLECTIONS.AUDIT_EVENTS, eventId],\n\n // The audit ledger collection (parent of auditEvent — the writer mints ids against it).\n auditEvents: (): [string] =>\n [COLLECTIONS.AUDIT_EVENTS],\n\n // Server-owned \"archive all\" job (notificationArchiveAllJobs/{jobId}; CF-only).\n notificationArchiveAllJob: (jobId: string): [string, string] =>\n [COLLECTIONS.NOTIFICATION_ARCHIVE_ALL_JOBS, jobId],\n\n // ===== TRUST & SAFETY — _serverData (server-only) singletons (§A7, §A11) =====\n // Moved from _appConfig (public) to _serverData (BACKEND-108 — Cloud-Functions-only readers).\n agePolicyConfig: (): [string, string] =>\n [COLLECTIONS.SERVER_DATA, SPECIAL_DOCS.AGE_POLICY],\n\n nciiPolicyConfig: (): [string, string] =>\n [COLLECTIONS.SERVER_DATA, SPECIAL_DOCS.NCII_POLICY],\n\n privilegedReviewerSecurityConfig: (): [string, string] =>\n [COLLECTIONS.SERVER_DATA, SPECIAL_DOCS.PRIVILEGED_REVIEWER_SECURITY],\n} as const;\n"]}
1
+ {"version":3,"file":"path-builders.js","sourceRoot":"","sources":["../../src/paths/path-builders.ts"],"names":[],"mappings":"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","sourcesContent":["// Document path builders — returns tuples of path segments.\n//\n// Frontend (Web SDK): doc(db, ...PATH_BUILDERS.userProfile(userId))\n// Backend (Admin SDK): db.doc(toPath(PATH_BUILDERS.userProfile(userId)))\n\nimport {\n COLLECTIONS,\n USER_SUBCOLLECTIONS,\n WORK_PROJECT_SUBCOLLECTIONS,\n WORK_REALM_SUBCOLLECTIONS,\n NESTED_SUBCOLLECTIONS,\n SPECIAL_DOCS,\n HALL_ITEM_SUBCOLLECTION_BY_WORK_TYPE,\n type HallItemSubcollection,\n} from './collections.js';\nimport type { FollowableTargetType } from '../schemas/social.js';\nimport type { WorkProjectType } from '../types/content.js';\n\nexport const PATH_BUILDERS = {\n // ===== USER PATHS =====\n userProfile: (userId: string): [string, string] =>\n [COLLECTIONS.USER_PROFILES, userId],\n\n // Backend-mirrored public identity projection (publicUsers/{uid}).\n publicUser: (uid: string): [string, string] =>\n [COLLECTIONS.PUBLIC_USERS, uid],\n\n // Per-user account-deletion / erasure request, keyed by uid.\n accountDeletionRequest: (uid: string): [string, string] =>\n [COLLECTIONS.ACCOUNT_DELETION_REQUESTS, uid],\n\n userMentionHistoryEntry: (userId: string, entryId: string): [string, string, string, string] =>\n [COLLECTIONS.USER_PROFILES, userId, USER_SUBCOLLECTIONS.MENTION_HISTORY, entryId],\n\n userCraftSkill: (userId: string, craftSkillId: string): [string, string, string, string] =>\n [COLLECTIONS.USER_PROFILES, userId, USER_SUBCOLLECTIONS.PROFILE_CRAFT_SKILLS, craftSkillId],\n\n userPrivateData: (userId: string): [string, string, string, string] =>\n [COLLECTIONS.USER_PROFILES, userId, USER_SUBCOLLECTIONS.PRIVATE_DATA, userId],\n\n userMetadata: (userId: string): [string, string, string, string] =>\n [COLLECTIONS.USER_PROFILES, userId, USER_SUBCOLLECTIONS.USER_METADATA, SPECIAL_DOCS.NOTIFICATION_SETTINGS],\n\n // Per-user Hall viewing-state doc (hall-viewing-experience Area 2, ruled 2026-07-04):\n // userProfiles/{uid}/privateData/hallLibraryPreferences. Fixed-id privateData subdoc,\n // same shape as userMetadata above.\n hallLibraryPreferences: (userId: string): [string, string, string, string] =>\n [COLLECTIONS.USER_PROFILES, userId, USER_SUBCOLLECTIONS.PRIVATE_DATA, SPECIAL_DOCS.HALL_LIBRARY_PREFERENCES],\n\n // Generic follow edge: top-level `followEdges/{followerUid__targetType__targetId}`.\n // Deterministic ID = O(1) follow-status check + dedupe; a composite index on\n // (targetType, targetId) makes the same collection the reverse follower index.\n followEdge: (followerUid: string, targetType: FollowableTargetType, targetId: string): [string, string] =>\n [COLLECTIONS.FOLLOW_EDGES, `${followerUid}__${targetType}__${targetId}`],\n\n // Denormalized follower-count doc for a followable target: `followCounters/{targetType__targetId}`.\n // Backend-maintained (incremented in the follow/unfollow transaction); never written by clients.\n followCounter: (targetType: FollowableTargetType, targetId: string): [string, string] =>\n [COLLECTIONS.FOLLOW_COUNTERS, `${targetType}__${targetId}`],\n\n userLike: (userId: string, postId: string): [string, string, string, string, string, string] =>\n [COLLECTIONS.USER_PROFILES, userId, USER_SUBCOLLECTIONS.USER_LIKES, NESTED_SUBCOLLECTIONS.LIKE_HISTORY, NESTED_SUBCOLLECTIONS.SQUARE_STREETZ_LIKES, postId],\n\n userAuditionVote: (userId: string, auditionId: string): [string, string, string, string] =>\n [COLLECTIONS.USER_PROFILES, userId, USER_SUBCOLLECTIONS.AUDITION_VOTES, auditionId],\n\n // Archived personal notification history (userProfiles/{uid}/notificationHistory/{id}).\n userNotificationHistoryEntry: (userId: string, notificationId: string): [string, string, string, string] =>\n [COLLECTIONS.USER_PROFILES, userId, USER_SUBCOLLECTIONS.NOTIFICATION_HISTORY, notificationId],\n\n // Collection of archived personal notifications (parent of userNotificationHistoryEntry).\n userNotificationHistory: (userId: string): [string, string, string] =>\n [COLLECTIONS.USER_PROFILES, userId, USER_SUBCOLLECTIONS.NOTIFICATION_HISTORY],\n\n // Active notification cards. Category chooses the lane; these builders keep the\n // category config, direct-card writers, and archive flow on the same collection names.\n activeUserNotification: (notificationId: string): [string, string] =>\n [COLLECTIONS.ACTIVE_USER_NOTIFICATIONS, notificationId],\n\n activeAdminNotification: (notificationId: string): [string, string] =>\n [COLLECTIONS.ACTIVE_ADMIN_NOTIFICATIONS, notificationId],\n\n // ===== WORK PATHS =====\n workProject: (workProjectId: string): [string, string] =>\n [COLLECTIONS.ALL_WORK_PROJECTS, workProjectId],\n\n publicWorkProject: (workProjectId: string): [string, string] =>\n [COLLECTIONS.PUBLIC_WORK_PROJECTS, workProjectId],\n\n // The Work's single hall-entry reservation (fixed doc id — one reservation per Work),\n // claimed create-only inside the first threshold submit's transaction.\n hallSubmissionReservation: (workProjectId: string): [string, string, string, string] =>\n [COLLECTIONS.ALL_WORK_PROJECTS, workProjectId, WORK_PROJECT_SUBCOLLECTIONS.HALL_SUBMISSION_RESERVATION, SPECIAL_DOCS.HALL_SUBMISSION_RESERVATION],\n\n workProjectTale: (workProjectId: string, taleId: string): [string, string, string, string] =>\n [COLLECTIONS.ALL_WORK_PROJECTS, workProjectId, WORK_PROJECT_SUBCOLLECTIONS.WORK_PROJECT_TALES, taleId],\n\n taleChapter: (workProjectId: string, taleId: string, chapterId: string): [string, string, string, string, string, string] =>\n [COLLECTIONS.ALL_WORK_PROJECTS, workProjectId, WORK_PROJECT_SUBCOLLECTIONS.WORK_PROJECT_TALES, taleId, NESTED_SUBCOLLECTIONS.TALE_CHAPTERS, chapterId],\n\n // Collection of chapters under a tale (parent of taleChapter).\n taleChapters: (workProjectId: string, taleId: string): [string, string, string, string, string] =>\n [COLLECTIONS.ALL_WORK_PROJECTS, workProjectId, WORK_PROJECT_SUBCOLLECTIONS.WORK_PROJECT_TALES, taleId, NESTED_SUBCOLLECTIONS.TALE_CHAPTERS],\n\n workProjectTune: (workProjectId: string, tuneId: string): [string, string, string, string] =>\n [COLLECTIONS.ALL_WORK_PROJECTS, workProjectId, WORK_PROJECT_SUBCOLLECTIONS.WORK_PROJECT_TUNES, tuneId],\n\n tuneTrack: (workProjectId: string, tuneId: string, trackId: string): [string, string, string, string, string, string] =>\n [COLLECTIONS.ALL_WORK_PROJECTS, workProjectId, WORK_PROJECT_SUBCOLLECTIONS.WORK_PROJECT_TUNES, tuneId, NESTED_SUBCOLLECTIONS.TUNE_TRACKS, trackId],\n\n workProjectTelevision: (workProjectId: string, televisionId: string): [string, string, string, string] =>\n [COLLECTIONS.ALL_WORK_PROJECTS, workProjectId, WORK_PROJECT_SUBCOLLECTIONS.WORK_PROJECT_TELEVISION, televisionId],\n\n televisionEpisode: (workProjectId: string, televisionId: string, episodeId: string): [string, string, string, string, string, string] =>\n [COLLECTIONS.ALL_WORK_PROJECTS, workProjectId, WORK_PROJECT_SUBCOLLECTIONS.WORK_PROJECT_TELEVISION, televisionId, NESTED_SUBCOLLECTIONS.TELEVISION_EPISODES, episodeId],\n\n // Collection of episodes under a television item (parent of televisionEpisode).\n televisionEpisodes: (workProjectId: string, televisionId: string): [string, string, string, string, string] =>\n [COLLECTIONS.ALL_WORK_PROJECTS, workProjectId, WORK_PROJECT_SUBCOLLECTIONS.WORK_PROJECT_TELEVISION, televisionId, NESTED_SUBCOLLECTIONS.TELEVISION_EPISODES],\n\n workProjectGuildmateUser: (workProjectId: string, uid: string): [string, string, string, string] =>\n [COLLECTIONS.ALL_WORK_PROJECTS, workProjectId, WORK_PROJECT_SUBCOLLECTIONS.GUILDMATE_USERS, uid],\n\n workProjectPublicGuildmateUser: (workProjectId: string, uid: string): [string, string, string, string] =>\n [COLLECTIONS.ALL_WORK_PROJECTS, workProjectId, WORK_PROJECT_SUBCOLLECTIONS.PUBLIC_GUILDMATE_USERS, uid],\n\n workFileFolder: (workProjectId: string, workFileFolderId: string): [string, string, string, string] =>\n [COLLECTIONS.ALL_WORK_PROJECTS, workProjectId, WORK_PROJECT_SUBCOLLECTIONS.WORK_FILE_FOLDERS, workFileFolderId],\n\n workFile: (workProjectId: string, workFileFolderId: string, workFileId: string): [string, string, string, string, string, string] =>\n [COLLECTIONS.ALL_WORK_PROJECTS, workProjectId, WORK_PROJECT_SUBCOLLECTIONS.WORK_FILE_FOLDERS, workFileFolderId, NESTED_SUBCOLLECTIONS.WORK_FILES, workFileId],\n\n stakeShareAuditEvent: (eventId: string): [string, string] =>\n [COLLECTIONS.STAKE_SHARE_AUDIT_EVENTS, eventId],\n\n guildChatChannel: (workProjectId: string, guildChatChannelId: string): [string, string, string, string] =>\n [COLLECTIONS.ALL_WORK_PROJECTS, workProjectId, WORK_PROJECT_SUBCOLLECTIONS.GUILD_CHAT_CHANNELS, guildChatChannelId],\n\n // ===== SQUARE PATHS =====\n activePost: (postId: string): [string, string, string, string] =>\n [COLLECTIONS.SQUARE_STREETZ_FEED, NESTED_SUBCOLLECTIONS.ACTIVE_POSTS, NESTED_SUBCOLLECTIONS.SOCIAL_POSTS, postId],\n\n trendingPosts: (): [string, string] =>\n [COLLECTIONS.SQUARE_STREETZ_FEED, NESTED_SUBCOLLECTIONS.TRENDING_POSTS],\n\n // Server-only durable Square announcement outbox job. jobId is DETERMINISTIC —\n // ALWAYS derive it via buildSquareAnnouncementJobId (doc-schemas/square-announcement-jobs.ts).\n squareAnnouncementJob: (jobId: string): [string, string] =>\n [COLLECTIONS.SQUARE_ANNOUNCEMENT_JOBS, jobId],\n\n // ===== HALL PATHS =====\n thresholdItem: (thresholdItemId: string): [string, string] =>\n [COLLECTIONS.THRESHOLD_ITEMS, thresholdItemId],\n\n hallItem: (hallItemId: string): [string, string] =>\n [COLLECTIONS.HALL_ITEMS, hallItemId],\n\n // Published hall sub-item projection (chapter/track/episode). The subcollection segment\n // is constrained to the canonical HALL_ITEM_SUBCOLLECTIONS values (hallItemTales /\n // hallItemTunes / hallItemTelevision) — derive it from\n // HALL_ITEM_SUBCOLLECTION_BY_WORK_TYPE. `workProjectType.toLowerCase()` is NOT a valid\n // derivation: it yields a segment that does not exist, silently addressing an empty\n // collection instead of failing.\n hallItemType: (hallItemId: string, subcollection: HallItemSubcollection, itemId: string): [string, string, string, string] =>\n [COLLECTIONS.HALL_ITEMS, hallItemId, subcollection, itemId],\n\n // A published Hall sub-item's path is determined by its canonical identity, never a\n // caller-provided collection segment. This is the path used by typed administrative replay\n // targets as well as ordinary Hall moderation operations.\n hallItemSubItem: (hallItemId: string, workProjectType: WorkProjectType, itemId: string): [string, string, string, string] =>\n [COLLECTIONS.HALL_ITEMS, hallItemId, HALL_ITEM_SUBCOLLECTION_BY_WORK_TYPE[workProjectType], itemId],\n\n // Collection of published hall sub-items for one type (parent of hallItemType). The\n // subcollection segment is the canonical HallItemSubcollection — derive it from\n // HALL_ITEM_SUBCOLLECTION_BY_WORK_TYPE. `workProjectType.toLowerCase()` is NOT a valid\n // derivation: it yields a segment that does not exist, silently addressing an empty\n // collection instead of failing.\n hallItemSubItems: (hallItemId: string, subcollection: HallItemSubcollection): [string, string, string] =>\n [COLLECTIONS.HALL_ITEMS, hallItemId, subcollection],\n\n hallContentChangeRequest: (changeRequestId: string): [string, string] =>\n [COLLECTIONS.HALL_CONTENT_CHANGE_REQUESTS, changeRequestId],\n\n // ===== COMMISSION PATHS =====\n commissionListing: (commissionListingId: string): [string, string] =>\n [COLLECTIONS.COMMISSION_LISTINGS, commissionListingId],\n\n commissionProposal: (commissionListingId: string, commissionProposalId: string): [string, string, string, string] =>\n [COLLECTIONS.COMMISSION_LISTINGS, commissionListingId, NESTED_SUBCOLLECTIONS.COMMISSION_PROPOSALS, commissionProposalId],\n\n // ===== AUDITION PATHS =====\n audition: (auditionId: string): [string, string] =>\n [COLLECTIONS.AUDITION_BOARD, auditionId],\n\n auditionEntry: (auditionId: string, auditionEntryId: string): [string, string, string, string] =>\n [COLLECTIONS.AUDITION_BOARD, auditionId, NESTED_SUBCOLLECTIONS.AUDITION_ENTRIES, auditionEntryId],\n\n // ===== REALM PATHS =====\n workRealm: (workRealmId: string): [string, string] =>\n [COLLECTIONS.WORK_REALMS, workRealmId],\n\n // Realm shared-file FOLDER (a container only — shared files stay workFiles under their\n // owning Work and carry `realmFileFolderId` on their mediaAssets doc).\n realmFileFolder: (workRealmId: string, realmFileFolderId: string): [string, string, string, string] =>\n [COLLECTIONS.WORK_REALMS, workRealmId, WORK_REALM_SUBCOLLECTIONS.REALM_FILE_FOLDERS, realmFileFolderId],\n\n // ===== ADMIN & SYSTEM PATHS =====\n adminDispatch: (adminDispatchId: string): [string, string] =>\n [COLLECTIONS.PENDING_ADMIN_DISPATCHES, adminDispatchId],\n\n adminConversationMessage: (adminDispatchId: string, adminDispatchMessageId: string): [string, string, string, string] =>\n [COLLECTIONS.PENDING_ADMIN_DISPATCHES, adminDispatchId, NESTED_SUBCOLLECTIONS.CONVERSATION_MESSAGES, adminDispatchMessageId],\n\n guildInvite: (guildInviteId: string): [string, string] =>\n [COLLECTIONS.GUILD_INVITE_CONVERSATIONS, guildInviteId],\n\n // ===== CONVERSATION FILES (the two supported ConversationFileRef scopes) =====\n // Application and backend code must NOT assemble these paths independently.\n // `conversationFileId` is deterministic — it IS the pendingMedia id.\n guildInviteConversationFile: (guildInviteId: string, conversationFileId: string): [string, string, string, string] =>\n [COLLECTIONS.GUILD_INVITE_CONVERSATIONS, guildInviteId, NESTED_SUBCOLLECTIONS.CONVERSATION_FILES, conversationFileId],\n\n adminDispatchConversationFile: (adminDispatchId: string, conversationFileId: string): [string, string, string, string] =>\n [COLLECTIONS.PENDING_ADMIN_DISPATCHES, adminDispatchId, NESTED_SUBCOLLECTIONS.CONVERSATION_FILES, conversationFileId],\n\n contentReport: (reportId: string): [string, string] =>\n [COLLECTIONS.CONTENT_REPORTS, reportId],\n\n // The report's public, reporter-identity-free projection. The projection doc id IS the\n // report id (contentReports/{reportId}/publicProjection/{reportId}).\n reportPublicProjection: (reportId: string): [string, string, string, string] =>\n [COLLECTIONS.CONTENT_REPORTS, reportId, NESTED_SUBCOLLECTIONS.REPORT_PUBLIC_PROJECTION, reportId],\n\n // Fixed-id restricted report-PII subdocs (contentReports/{reportId}/privateDetails/{snapshot,narrative}).\n reportPrivateSnapshot: (reportId: string): [string, string, string, string] =>\n [COLLECTIONS.CONTENT_REPORTS, reportId, NESTED_SUBCOLLECTIONS.PRIVATE, SPECIAL_DOCS.REPORT_SNAPSHOT],\n\n reportPrivateNarrative: (reportId: string): [string, string, string, string] =>\n [COLLECTIONS.CONTENT_REPORTS, reportId, NESTED_SUBCOLLECTIONS.PRIVATE, SPECIAL_DOCS.REPORT_NARRATIVE],\n\n // The SECOND narrative doc, typed when an existing ordinary report is escalated into a\n // protected case — a sibling of `privateDetails/narrative` in the same restricted\n // subcollection, so the original narrative is never overwritten and the read gate is identical.\n reportPrivateEscalationNarrative: (reportId: string): [string, string, string, string] =>\n [COLLECTIONS.CONTENT_REPORTS, reportId, NESTED_SUBCOLLECTIONS.PRIVATE, SPECIAL_DOCS.REPORT_NARRATIVE_ESCALATION],\n\n activeReportGroup: (groupKey: string): [string, string] =>\n [COLLECTIONS.ACTIVE_REPORT_GROUPS, groupKey],\n\n // Per-report idempotency marker under a group (its ABSENCE gates the totalReports increment).\n reportGroupCountedReport: (groupKey: string, reportId: string): [string, string, string, string] =>\n [COLLECTIONS.ACTIVE_REPORT_GROUPS, groupKey, NESTED_SUBCOLLECTIONS.REPORT_GROUP_COUNTED_REPORTS, reportId],\n\n // Time-sensitive admin-tray \"case needs work\" pin (activeSafetyCaseAlerts/{caseId}).\n safetyCaseAlert: (caseId: string): [string, string] =>\n [COLLECTIONS.ACTIVE_SAFETY_CASE_ALERTS, caseId],\n\n contentViolation: (violationId: string): [string, string] =>\n [COLLECTIONS.CONTENT_VIOLATIONS, violationId],\n\n adminTask: (taskId: string): [string, string] =>\n [COLLECTIONS.ADMIN_TASKS, taskId],\n\n adminTaskForItem: (taskType: string, itemId: string): [string, string] =>\n [COLLECTIONS.ADMIN_TASKS, `${taskType}-${itemId}`],\n\n moderationCascadeManifest: (cascadeId: string): [string, string] =>\n [COLLECTIONS.MODERATION_CASCADE_MANIFESTS, cascadeId],\n\n moderationCascadeChangedDoc: (cascadeId: string, changedDocId: string): [string, string, string, string] =>\n [COLLECTIONS.MODERATION_CASCADE_MANIFESTS, cascadeId, NESTED_SUBCOLLECTIONS.CHANGED_DOCS, changedDocId],\n\n // ===== UTILITY PATHS =====\n reservedDisplayName: (displayNameUppercase: string): [string, string] =>\n [COLLECTIONS.RESERVED_DISPLAY_NAMES, displayNameUppercase],\n\n reservedRealmName: (workingTitleUppercase: string): [string, string] =>\n [COLLECTIONS.RESERVED_REALM_NAMES, workingTitleUppercase],\n\n shortLink: (shortId: string): [string, string] =>\n [COLLECTIONS.SHORT_LINKS, shortId],\n\n pendingMedia: (docId: string): [string, string] =>\n [COLLECTIONS.PENDING_MEDIA, docId],\n\n pendingMediaArchive: (docId: string): [string, string] =>\n [COLLECTIONS.PENDING_MEDIA_ARCHIVE, docId],\n\n mediaAsset: (mediaAssetId: string): [string, string] =>\n [COLLECTIONS.MEDIA_ASSETS, mediaAssetId],\n\n // Server-only durable activation job (prepare → activate → publish + recovery).\n mediaActivationJob: (jobId: string): [string, string] =>\n [COLLECTIONS.MEDIA_ACTIVATION_JOBS, jobId],\n\n // ===== NOTIFICATION REDESIGN (ledger + fanout engine) PATHS =====\n notificationDelivery: (deliveryId: string): [string, string] =>\n [COLLECTIONS.NOTIFICATION_DELIVERIES, deliveryId],\n\n notificationFanoutJob: (jobId: string): [string, string] =>\n [COLLECTIONS.NOTIFICATION_FANOUT_JOBS, jobId],\n\n // ===== CHAT REALTIME SYNC / PROJECTION / COMMAND PATHS =====\n chatChannelAuthProjection: (authPairKey: string): [string, string] =>\n [COLLECTIONS.CHAT_CHANNEL_AUTH_PROJECTIONS, authPairKey],\n\n chatScopeDegraded: (scopeKey: string): [string, string] =>\n [COLLECTIONS.CHAT_SCOPE_DEGRADED, scopeKey],\n\n chatScopeDegradedCause: (scopeKey: string, causeId: string): [string, string, string, string] =>\n [COLLECTIONS.CHAT_SCOPE_DEGRADED, scopeKey, NESTED_SUBCOLLECTIONS.CHAT_SCOPE_DEGRADED_CAUSES, causeId],\n\n chatSyncEvent: (eventId: string): [string, string] =>\n [COLLECTIONS.CHAT_SYNC_EVENTS, eventId],\n\n chatSyncFanoutJob: (jobId: string): [string, string] =>\n [COLLECTIONS.CHAT_SYNC_FANOUT_JOBS, jobId],\n\n chatMessageOutboxCommand: (commandId: string): [string, string] =>\n [COLLECTIONS.CHAT_MESSAGE_OUTBOX, commandId],\n\n chatAdminActionCommand: (requestId: string): [string, string] =>\n [COLLECTIONS.CHAT_ADMIN_ACTION_COMMANDS, requestId],\n\n chatHistoryAnonymizationJob: (jobId: string): [string, string] =>\n [COLLECTIONS.CHAT_HISTORY_ANONYMIZATION_JOBS, jobId],\n\n chatHistoryAnonymizationAffectedChunk: (jobId: string, chunkOrdinal: string): [string, string, string, string] =>\n [COLLECTIONS.CHAT_HISTORY_ANONYMIZATION_JOBS, jobId, NESTED_SUBCOLLECTIONS.CHAT_ANONYMIZATION_AFFECTED_CHUNKS, chunkOrdinal],\n\n // ===== PAYMENT & PLEDGE PATHS =====\n // Public-safe canonical money record. Stripe IDs live on pledgePaymentProviderRef (server-only).\n pledgePayment: (pledgePaymentId: string): [string, string] =>\n [COLLECTIONS.PLEDGE_PAYMENTS, pledgePaymentId],\n\n // Server-only Stripe references (session/PI/charge/dispute IDs). One doc per pledge — singular.\n pledgePaymentProviderRef: (pledgePaymentId: string): [string, string] =>\n [COLLECTIONS.PLEDGE_PAYMENT_PROVIDER_REFS, pledgePaymentId],\n\n // Running-totals singleton — incremented in the Stripe webhook's pledge-record transaction;\n // read (ONE doc) by the public raised-total surfaces instead of a collection-wide aggregation.\n pledgePaymentTotals: (): [string, string] =>\n [COLLECTIONS.PLEDGE_PAYMENT_TOTALS, SPECIAL_DOCS.SUMMARY],\n\n // Idempotency sentinel, keyed by the Stripe event.id.\n processedStripeEvent: (stripeEventId: string): [string, string] =>\n [COLLECTIONS.PROCESSED_STRIPE_EVENTS, stripeEventId],\n\n // Independent integrity record from the ledger verification trigger.\n pledgePaymentLedgerEvent: (ledgerId: string): [string, string] =>\n [COLLECTIONS.PLEDGE_PAYMENT_LEDGER_EVENTS, ledgerId],\n\n // Unrecoverable paid-event repair queue, keyed by the Stripe event.id.\n paymentWebhookQuarantine: (stripeEventId: string): [string, string] =>\n [COLLECTIONS.PAYMENT_WEBHOOK_QUARANTINE, stripeEventId],\n\n // User-initiated pledge refund request (post-launch), keyed by requestId. No Stripe ids on this\n // doc — those live on pledgePaymentProviderRefs.\n pledgeRefundRequest: (requestId: string): [string, string] =>\n [COLLECTIONS.PLEDGE_REFUND_REQUESTS, requestId],\n\n // ===== FEEDBACK & CRAFT PATHS =====\n feedbackSubmission: (feedbackType: string): [string, string] =>\n [COLLECTIONS.FEEDBACK_SUBMISSIONS, feedbackType],\n\n userSuggestion: (feedbackType: string, suggestionId: string): [string, string, string, string] =>\n [COLLECTIONS.FEEDBACK_SUBMISSIONS, feedbackType, NESTED_SUBCOLLECTIONS.USER_SUGGESTIONS, suggestionId],\n\n // The two submitFeedback lists live under the server-only `_serverData/feedbackLists`\n // container doc (BACKEND-108) — Cloud Functions read them via the Admin SDK and no\n // client reads either one. Doc ids are the normalized suggestion text.\n feedbackAlias: (aliasId: string): [string, string, string, string] =>\n [COLLECTIONS.SERVER_DATA, SPECIAL_DOCS.FEEDBACK_LISTS, NESTED_SUBCOLLECTIONS.FEEDBACK_ALIASES, aliasId],\n\n feedbackDenylist: (deniedWord: string): [string, string, string, string] =>\n [COLLECTIONS.SERVER_DATA, SPECIAL_DOCS.FEEDBACK_LISTS, NESTED_SUBCOLLECTIONS.FEEDBACK_DENYLIST, deniedWord],\n\n taggedCraftSkill: (tag: string, compositeId: string): [string, string, string, string] =>\n [COLLECTIONS.CRAFT_SKILLS_BY_TAG, tag, NESTED_SUBCOLLECTIONS.TAGGED_CRAFT_SKILLS, compositeId],\n\n // ===== SYSTEM DATA PATHS =====\n adminList: (): [string, string] =>\n [COLLECTIONS.SYSTEM_DATA, SPECIAL_DOCS.ADMIN_LIST],\n\n futurePlans: (): [string, string] =>\n [COLLECTIONS.APP_CONFIG, SPECIAL_DOCS.FUTURE_PLANS],\n\n profanityList: (): [string, string] =>\n [COLLECTIONS.SYSTEM_DATA, SPECIAL_DOCS.PROFANITY_LIST],\n\n reservedUsernames: (): [string, string] =>\n [COLLECTIONS.SYSTEM_DATA, SPECIAL_DOCS.RESERVED_USERNAMES],\n\n blockedFranchiseNames: (): [string, string] =>\n [COLLECTIONS.SYSTEM_DATA, SPECIAL_DOCS.BLOCKED_FRANCHISE_NAMES],\n\n rulesAndAgreements: (): [string, string] =>\n [COLLECTIONS.APP_CONFIG, SPECIAL_DOCS.RULES_AND_AGREEMENTS],\n\n termsPage: (): [string, string] =>\n [COLLECTIONS.APP_CONFIG, SPECIAL_DOCS.TERMS_PAGE],\n\n privacyPage: (): [string, string] =>\n [COLLECTIONS.APP_CONFIG, SPECIAL_DOCS.PRIVACY_PAGE],\n\n takeItDownPageCopy: (): [string, string] =>\n [COLLECTIONS.APP_CONFIG, SPECIAL_DOCS.TAKE_IT_DOWN_PAGE_COPY],\n\n appConfig: (): [string, string] =>\n [COLLECTIONS.APP_CONFIG, SPECIAL_DOCS.APP_CONFIG],\n\n appModeMarker: (): [string, string] =>\n [COLLECTIONS.SYSTEM_DATA, SPECIAL_DOCS.APP_MODE],\n\n // Singleton scan cursor for the scheduled Hall media orphan reaper\n // (reapOrphanedHallMediaCopies). Backend-only; persists the highest `createdAt` the\n // reaper has positively cleared so each pass resumes instead of re-reading the oldest page.\n hallMediaReaperCursor: (): [string, string] =>\n [COLLECTIONS.SYSTEM_DATA, SPECIAL_DOCS.HALL_MEDIA_REAPER_CURSOR],\n\n // Singleton sweep cursor for the scheduled publicUsers reconciler (reconcilePublicUsers).\n // Backend-only; persists the last userProfiles document id the sweep positively cleared so\n // each pass resumes instead of re-reading the same oldest page ('' = start from the beginning).\n publicUsersReconcilerCursor: (): [string, string] =>\n [COLLECTIONS.SYSTEM_DATA, SPECIAL_DOCS.PUBLIC_USERS_RECONCILER_CURSOR],\n\n // Backend-only post-commit auth-effect reconcile queue entry, keyed by the affected uid.\n statusReconcileQueueEntry: (uid: string): [string, string] =>\n [COLLECTIONS.STATUS_RECONCILE_QUEUE, uid],\n\n // ===== TRUST & SAFETY — child-safety case spine (§A1b, §A2) =====\n childSafetyCaseListEntry: (caseId: string): [string, string] =>\n [COLLECTIONS.CHILD_SAFETY_CASE_LIST, caseId],\n\n childSafetyCase: (caseId: string): [string, string] =>\n [COLLECTIONS.CHILD_SAFETY_CASES, caseId],\n\n childSafetySourceSignal: (caseId: string, signalId: string): [string, string, string, string] =>\n [COLLECTIONS.CHILD_SAFETY_CASES, caseId, NESTED_SUBCOLLECTIONS.CHILD_SAFETY_SOURCE_SIGNALS, signalId],\n\n // Collection of source-signal rows for a case (parent of childSafetySourceSignal).\n childSafetySourceSignals: (caseId: string): [string, string, string] =>\n [COLLECTIONS.CHILD_SAFETY_CASES, caseId, NESTED_SUBCOLLECTIONS.CHILD_SAFETY_SOURCE_SIGNALS],\n\n childSafetyDecision: (caseId: string, decisionId: string): [string, string, string, string] =>\n [COLLECTIONS.CHILD_SAFETY_CASES, caseId, NESTED_SUBCOLLECTIONS.CHILD_SAFETY_DECISIONS, decisionId],\n\n // Collection of decision rows for a case (parent of childSafetyDecision).\n childSafetyDecisions: (caseId: string): [string, string, string] =>\n [COLLECTIONS.CHILD_SAFETY_CASES, caseId, NESTED_SUBCOLLECTIONS.CHILD_SAFETY_DECISIONS],\n\n childSafetyDecisionView: (caseId: string, decisionId: string, viewId: string): [string, string, string, string, string, string] =>\n [COLLECTIONS.CHILD_SAFETY_CASES, caseId, NESTED_SUBCOLLECTIONS.CHILD_SAFETY_DECISIONS, decisionId, NESTED_SUBCOLLECTIONS.CHILD_SAFETY_DECISION_VIEWS, viewId],\n\n childSafetyCaseAccount: (caseId: string, uid: string): [string, string, string, string] =>\n [COLLECTIONS.CHILD_SAFETY_CASES, caseId, NESTED_SUBCOLLECTIONS.CHILD_SAFETY_CASE_ACCOUNTS, uid],\n\n // Collection of per-account rows for a case (parent of childSafetyCaseAccount).\n childSafetyCaseAccounts: (caseId: string): [string, string, string] =>\n [COLLECTIONS.CHILD_SAFETY_CASES, caseId, NESTED_SUBCOLLECTIONS.CHILD_SAFETY_CASE_ACCOUNTS],\n\n childSafetyCaseAccountHistory: (caseId: string, uid: string, historyId: string): [string, string, string, string, string, string] =>\n [COLLECTIONS.CHILD_SAFETY_CASES, caseId, NESTED_SUBCOLLECTIONS.CHILD_SAFETY_CASE_ACCOUNTS, uid, NESTED_SUBCOLLECTIONS.CHILD_SAFETY_CASE_ACCOUNT_HISTORY, historyId],\n\n childSafetyNcmecSubmission: (caseId: string, submissionId: string): [string, string, string, string] =>\n [COLLECTIONS.CHILD_SAFETY_CASES, caseId, NESTED_SUBCOLLECTIONS.CHILD_SAFETY_NCMEC_SUBMISSIONS, submissionId],\n\n childSafetyNcmecSubmissionFile: (caseId: string, submissionId: string, fileId: string): [string, string, string, string, string, string] =>\n [COLLECTIONS.CHILD_SAFETY_CASES, caseId, NESTED_SUBCOLLECTIONS.CHILD_SAFETY_NCMEC_SUBMISSIONS, submissionId, NESTED_SUBCOLLECTIONS.CHILD_SAFETY_NCMEC_SUBMISSION_FILES, fileId],\n\n // Per-submission NCMEC transmission attempt. Previously a `firestore.rules`-only segment\n // with no ttt-core constant; the segment now has a single owner (NCMEC_SUBMISSION_ATTEMPTS).\n childSafetyNcmecSubmissionAttempt: (caseId: string, submissionId: string, attemptId: string): [string, string, string, string, string, string] =>\n [COLLECTIONS.CHILD_SAFETY_CASES, caseId, NESTED_SUBCOLLECTIONS.CHILD_SAFETY_NCMEC_SUBMISSIONS, submissionId, NESTED_SUBCOLLECTIONS.NCMEC_SUBMISSION_ATTEMPTS, attemptId],\n\n // The submission's single immutable completion-proof record. Fixed doc id — one proof per\n // submission, written create-if-absent in the same transaction that marks the submission\n // `completed`, so `completed` and its bound proof can never diverge.\n childSafetyNcmecCompletionProof: (caseId: string, submissionId: string): [string, string, string, string, string, string] =>\n [COLLECTIONS.CHILD_SAFETY_CASES, caseId, NESTED_SUBCOLLECTIONS.CHILD_SAFETY_NCMEC_SUBMISSIONS, submissionId, NESTED_SUBCOLLECTIONS.NCMEC_COMPLETION_PROOF, SPECIAL_DOCS.RECORD],\n\n childSafetyLegalProcessEvent: (caseId: string, eventId: string): [string, string, string, string] =>\n [COLLECTIONS.CHILD_SAFETY_CASES, caseId, NESTED_SUBCOLLECTIONS.CHILD_SAFETY_LEGAL_PROCESS, eventId],\n\n // Immutable portal-receipt artifact record bound to a case + NCMEC submission — the proof\n // `markNcmecPortalComplete` requires. Written create-only by recordNcmecPortalReceiptArtifact.\n childSafetyPortalReceiptArtifact: (caseId: string, artifactId: string): [string, string, string, string] =>\n [COLLECTIONS.CHILD_SAFETY_CASES, caseId, NESTED_SUBCOLLECTIONS.NCMEC_PORTAL_RECEIPT_ARTIFACTS, artifactId],\n\n // Collection of portal-receipt artifact rows for a case (parent of the builder above) — the\n // auto-id mint site.\n childSafetyPortalReceiptArtifacts: (caseId: string): [string, string, string] =>\n [COLLECTIONS.CHILD_SAFETY_CASES, caseId, NESTED_SUBCOLLECTIONS.NCMEC_PORTAL_RECEIPT_ARTIFACTS],\n\n // Immutable record that the operator filed a CORRECTION on the NCMEC manual portal. Its\n // existence is what unlocks the corrected-no-apparent-violation disposition.\n childSafetyNcmecPortalCorrection: (caseId: string, correctionId: string): [string, string, string, string] =>\n [COLLECTIONS.CHILD_SAFETY_CASES, caseId, NESTED_SUBCOLLECTIONS.NCMEC_PORTAL_CORRECTIONS, correctionId],\n\n // Collection of portal-correction rows for a case (parent of the builder above) — the auto-id\n // mint site and the existence query behind the disposition gate.\n childSafetyNcmecPortalCorrections: (caseId: string): [string, string, string] =>\n [COLLECTIONS.CHILD_SAFETY_CASES, caseId, NESTED_SUBCOLLECTIONS.NCMEC_PORTAL_CORRECTIONS],\n\n childSafetyOwningAlias: (aliasId: string): [string, string] =>\n [COLLECTIONS.CHILD_SAFETY_OWNING_ALIASES, aliasId],\n\n // ===== TRUST & SAFETY — holds + resource commands (§A3) =====\n // Composite doc id caseId__resourceKeyHash — a single {holdRefId} segment.\n safetyHoldRef: (holdRefId: string): [string, string] =>\n [COLLECTIONS.SAFETY_HOLD_REFS, holdRefId],\n\n safetyHoldResource: (resourceKeyHash: string): [string, string] =>\n [COLLECTIONS.SAFETY_HOLD_RESOURCES, resourceKeyHash],\n\n // Composite doc id resourceKeyHash__commandId — a single {commandDocId} segment.\n safetyResourceCommand: (commandDocId: string): [string, string] =>\n [COLLECTIONS.SAFETY_RESOURCE_COMMANDS, commandDocId],\n\n safetyResourceCommandAuthorizedRequest: (commandDocId: string, requestId: string): [string, string, string, string] =>\n [COLLECTIONS.SAFETY_RESOURCE_COMMANDS, commandDocId, NESTED_SUBCOLLECTIONS.SAFETY_RESOURCE_COMMAND_AUTHORIZED_REQUESTS, requestId],\n\n safetyResourceCommandBypassRef: (commandDocId: string, refId: string): [string, string, string, string] =>\n [COLLECTIONS.SAFETY_RESOURCE_COMMANDS, commandDocId, NESTED_SUBCOLLECTIONS.SAFETY_RESOURCE_COMMAND_BYPASS_REFS, refId],\n\n // ===== TRUST & SAFETY — evidence + provenance (§A4, §A6) =====\n safetyEvidenceManifest: (manifestId: string): [string, string] =>\n [COLLECTIONS.SAFETY_EVIDENCE_MANIFESTS, manifestId],\n\n safetyEvidenceJob: (jobId: string): [string, string] =>\n [COLLECTIONS.SAFETY_EVIDENCE_JOBS, jobId],\n\n safetyEvidenceJobItem: (jobId: string, itemId: string): [string, string, string, string] =>\n [COLLECTIONS.SAFETY_EVIDENCE_JOBS, jobId, NESTED_SUBCOLLECTIONS.SAFETY_EVIDENCE_JOB_ITEMS, itemId],\n\n safetyEvidenceJobDisposition: (jobId: string, locationId: string): [string, string, string, string] =>\n [COLLECTIONS.SAFETY_EVIDENCE_JOBS, jobId, NESTED_SUBCOLLECTIONS.SAFETY_EVIDENCE_JOB_DISPOSITION, locationId],\n\n eventProvenance: (eventId: string): [string, string] =>\n [COLLECTIONS.EVENT_PROVENANCE, eventId],\n\n // ===== TRUST & SAFETY — sagas + closure (§A5) =====\n quarantineSagaJob: (caseId: string): [string, string] =>\n [COLLECTIONS.QUARANTINE_SAGA_JOBS, caseId],\n\n quarantineSagaRelatedAsset: (caseId: string, assetId: string): [string, string, string, string] =>\n [COLLECTIONS.QUARANTINE_SAGA_JOBS, caseId, NESTED_SUBCOLLECTIONS.QUARANTINE_SAGA_RELATED_ASSETS, assetId],\n\n // Composite doc id caseId__submissionId — a single {ncmecJobId} segment.\n ncmecSubmissionJob: (ncmecJobId: string): [string, string] =>\n [COLLECTIONS.NCMEC_SUBMISSION_JOBS, ncmecJobId],\n\n // Composite doc id caseId__uid — a single {accountActionCommandId} segment.\n accountActionCommand: (accountActionCommandId: string): [string, string] =>\n [COLLECTIONS.ACCOUNT_ACTION_COMMANDS, accountActionCommandId],\n\n // ===== TRUST & SAFETY — SLA monitors + heartbeat (§A8) =====\n // Composite doc id {caseId|requestId}__{monitorKind} — a single {monitorId} segment.\n safetySlaMonitor: (monitorId: string): [string, string] =>\n [COLLECTIONS.SAFETY_SLA_MONITORS, monitorId],\n\n // Singleton: safetyMonitorHeartbeat/global.\n safetyMonitorHeartbeat: (): [string, string] =>\n [COLLECTIONS.SAFETY_MONITOR_HEARTBEAT, SPECIAL_DOCS.SAFETY_MONITOR_HEARTBEAT_GLOBAL],\n\n // ===== TRUST & SAFETY — age attestation nonces (§A7) =====\n ageAttestationNonce: (nonceHash: string): [string, string] =>\n [COLLECTIONS.AGE_ATTESTATION_NONCES, nonceHash],\n\n // ===== TRUST & SAFETY — operator step-up + reconciler cursors (backend-only) =====\n // [H-08] per-operator TOTP step-up state, keyed by uid. Cloud-Functions-only.\n operatorStepUp: (uid: string): [string, string] =>\n [COLLECTIONS.OPERATOR_STEP_UP, uid],\n\n // Persisted pagination cursor for one reconciler needs-work backstop sweep.\n safetyReconcilerCursor: (cursorKey: string): [string, string] =>\n [COLLECTIONS.SAFETY_RECONCILER_CURSORS, cursorKey],\n\n // Durable cadence/cursor state for one scheduled user sweep, keyed by the sweep name\n // (orphanRegistrationCleanup, reconcileAccountStatus). Backend-only.\n sweepState: (sweepName: string): [string, string] =>\n [COLLECTIONS.SWEEP_STATE, sweepName],\n\n // ===== TRUST & SAFETY — NCII / TAKE IT DOWN (§A11) =====\n nciiAllegation: (allegationId: string): [string, string] =>\n [COLLECTIONS.NCII_ALLEGATIONS, allegationId],\n\n takeItDownRequest: (requestId: string): [string, string] =>\n [COLLECTIONS.TAKE_IT_DOWN_REQUESTS, requestId],\n\n // Fixed-id requester PII subdoc (takeItDownRequests/{requestId}/privateDetails/requester).\n takeItDownRequesterPrivate: (requestId: string): [string, string, string, string] =>\n [COLLECTIONS.TAKE_IT_DOWN_REQUESTS, requestId, NESTED_SUBCOLLECTIONS.PRIVATE, SPECIAL_DOCS.TAKE_IT_DOWN_REQUESTER],\n\n takeItDownSubmission: (requestId: string, submissionId: string): [string, string, string, string] =>\n [COLLECTIONS.TAKE_IT_DOWN_REQUESTS, requestId, NESTED_SUBCOLLECTIONS.TAKE_IT_DOWN_SUBMISSIONS, submissionId],\n\n // Collection of submissions under a request (parent of takeItDownSubmission).\n takeItDownSubmissions: (requestId: string): [string, string, string] =>\n [COLLECTIONS.TAKE_IT_DOWN_REQUESTS, requestId, NESTED_SUBCOLLECTIONS.TAKE_IT_DOWN_SUBMISSIONS],\n\n // Collection of validity decisions under a request (parent of takeItDownValidityDecision).\n takeItDownValidityDecisions: (requestId: string): [string, string, string] =>\n [COLLECTIONS.TAKE_IT_DOWN_REQUESTS, requestId, NESTED_SUBCOLLECTIONS.TAKE_IT_DOWN_VALIDITY_DECISIONS],\n\n takeItDownValidityDecision: (requestId: string, decisionId: string): [string, string, string, string] =>\n [COLLECTIONS.TAKE_IT_DOWN_REQUESTS, requestId, NESTED_SUBCOLLECTIONS.TAKE_IT_DOWN_VALIDITY_DECISIONS, decisionId],\n\n // The decision's RESTRICTED rationale row (fixed doc id — one rationale per decision), written\n // create-only in the same transaction as the decision; rationaleRef / detailRef point here.\n takeItDownValidityRationale: (requestId: string, decisionId: string): [string, string, string, string, string, string] =>\n [COLLECTIONS.TAKE_IT_DOWN_REQUESTS, requestId, NESTED_SUBCOLLECTIONS.TAKE_IT_DOWN_VALIDITY_DECISIONS, decisionId, NESTED_SUBCOLLECTIONS.TAKE_IT_DOWN_VALIDITY_RATIONALE, SPECIAL_DOCS.RECORD],\n\n takeItDownRequestAction: (requestId: string, actionId: string): [string, string, string, string] =>\n [COLLECTIONS.TAKE_IT_DOWN_REQUESTS, requestId, NESTED_SUBCOLLECTIONS.TAKE_IT_DOWN_ACTIONS, actionId],\n\n takeItDownEvidence: (requestId: string, evidenceId: string): [string, string, string, string] =>\n [COLLECTIONS.TAKE_IT_DOWN_REQUESTS, requestId, NESTED_SUBCOLLECTIONS.TAKE_IT_DOWN_EVIDENCE, evidenceId],\n\n // ONE deletion-verification record per evidence object, keyed by the evidence id so a retried or\n // redelivered sweep overwrites it: the record is the CURRENT deletion status, not an attempt log.\n takeItDownEvidenceDisposition: (requestId: string, evidenceId: string): [string, string, string, string] =>\n [COLLECTIONS.TAKE_IT_DOWN_REQUESTS, requestId, NESTED_SUBCOLLECTIONS.TAKE_IT_DOWN_EVIDENCE_DISPOSITION, evidenceId],\n\n // [H-01] a retained-but-unrecorded NCII-evidence inventory row (top-level; id is deterministic on\n // bucket+key+generation so a re-fire is idempotent).\n nciiRetainedEvidenceInventory: (inventoryId: string): [string, string] =>\n [COLLECTIONS.NCII_RETAINED_EVIDENCE_INVENTORY, inventoryId],\n\n // [H-01] dead-letter entry for an inventory row that could not be written to the primary\n // nciiRetainedEvidenceInventory collection (id mirrors the primary row id for traceability).\n nciiInventoryDeadLetter: (inventoryId: string): [string, string] =>\n [COLLECTIONS.NCII_INVENTORY_DEAD_LETTER, inventoryId],\n\n nciiCase: (caseId: string): [string, string] =>\n [COLLECTIONS.NCII_CASES, caseId],\n\n nciiCaseAllegationLink: (caseId: string, allegationId: string): [string, string, string, string] =>\n [COLLECTIONS.NCII_CASES, caseId, NESTED_SUBCOLLECTIONS.NCII_CASE_ALLEGATION_LINKS, allegationId],\n\n // Collection of allegation links for a case (parent of nciiCaseAllegationLink).\n nciiCaseAllegationLinks: (caseId: string): [string, string, string] =>\n [COLLECTIONS.NCII_CASES, caseId, NESTED_SUBCOLLECTIONS.NCII_CASE_ALLEGATION_LINKS],\n\n nciiCaseRequestLink: (caseId: string, requestId: string): [string, string, string, string] =>\n [COLLECTIONS.NCII_CASES, caseId, NESTED_SUBCOLLECTIONS.NCII_CASE_REQUEST_LINKS, requestId],\n\n // Collection of request links for a case (parent of nciiCaseRequestLink).\n nciiCaseRequestLinks: (caseId: string): [string, string, string] =>\n [COLLECTIONS.NCII_CASES, caseId, NESTED_SUBCOLLECTIONS.NCII_CASE_REQUEST_LINKS],\n\n // Append-only NCII case closure/reopen events.\n nciiCaseClosureEvent: (caseId: string, eventId: string): [string, string, string, string] =>\n [COLLECTIONS.NCII_CASES, caseId, NESTED_SUBCOLLECTIONS.NCII_CASE_CLOSURE_EVENTS, eventId],\n\n // Collection of closure/reopen events for a case (parent of nciiCaseClosureEvent).\n nciiCaseClosureEvents: (caseId: string): [string, string, string] =>\n [COLLECTIONS.NCII_CASES, caseId, NESTED_SUBCOLLECTIONS.NCII_CASE_CLOSURE_EVENTS],\n\n nciiCaseRemovalAction: (caseId: string, actionId: string): [string, string, string, string] =>\n [COLLECTIONS.NCII_CASES, caseId, NESTED_SUBCOLLECTIONS.NCII_CASE_REMOVAL_ACTIONS, actionId],\n\n nciiBlockedHash: (caseId: string, hashId: string): [string, string, string, string] =>\n [COLLECTIONS.NCII_CASES, caseId, NESTED_SUBCOLLECTIONS.NCII_CASE_BLOCKED_HASHES, hashId],\n\n nciiTemporaryHold: (holdId: string): [string, string] =>\n [COLLECTIONS.NCII_TEMPORARY_HOLDS, holdId],\n\n nciiRemovalJob: (jobId: string): [string, string] =>\n [COLLECTIONS.NCII_REMOVAL_JOBS, jobId],\n\n nciiRemovalTarget: (jobId: string, targetKeyHash: string): [string, string, string, string] =>\n [COLLECTIONS.NCII_REMOVAL_JOBS, jobId, NESTED_SUBCOLLECTIONS.NCII_REMOVAL_TARGETS, targetKeyHash],\n\n // ===== BACKEND-ONLY LEDGERS =====\n // Append-only audit ledger row (auditEvents/{eventId}).\n auditEvent: (eventId: string): [string, string] =>\n [COLLECTIONS.AUDIT_EVENTS, eventId],\n\n // The audit ledger collection (parent of auditEvent — the writer mints ids against it).\n auditEvents: (): [string] =>\n [COLLECTIONS.AUDIT_EVENTS],\n\n // Server-owned \"archive all\" job (notificationArchiveAllJobs/{jobId}; CF-only).\n notificationArchiveAllJob: (jobId: string): [string, string] =>\n [COLLECTIONS.NOTIFICATION_ARCHIVE_ALL_JOBS, jobId],\n\n // ===== TRUST & SAFETY — _serverData (server-only) singletons (§A7, §A11) =====\n // Moved from _appConfig (public) to _serverData (BACKEND-108 — Cloud-Functions-only readers).\n agePolicyConfig: (): [string, string] =>\n [COLLECTIONS.SERVER_DATA, SPECIAL_DOCS.AGE_POLICY],\n\n nciiPolicyConfig: (): [string, string] =>\n [COLLECTIONS.SERVER_DATA, SPECIAL_DOCS.NCII_POLICY],\n\n privilegedReviewerSecurityConfig: (): [string, string] =>\n [COLLECTIONS.SERVER_DATA, SPECIAL_DOCS.PRIVILEGED_REVIEWER_SECURITY],\n} as const;\n"]}
@@ -181,8 +181,8 @@ export declare const ReportedMediaAssetSchema: z.ZodObject<{
181
181
  audio: "audio";
182
182
  }>>;
183
183
  servingStatus: z.ZodNullable<z.ZodEnum<{
184
- hidden: "hidden";
185
184
  servable: "servable";
185
+ hidden: "hidden";
186
186
  quarantined: "quarantined";
187
187
  deleted: "deleted";
188
188
  }>>;
@@ -207,8 +207,8 @@ export declare const GetReportedContentDetailResultSchema: z.ZodObject<{
207
207
  audio: "audio";
208
208
  }>>;
209
209
  servingStatus: z.ZodNullable<z.ZodEnum<{
210
- hidden: "hidden";
211
210
  servable: "servable";
211
+ hidden: "hidden";
212
212
  quarantined: "quarantined";
213
213
  deleted: "deleted";
214
214
  }>>;
@@ -362,11 +362,11 @@ export type ModerateReportedContentInput = z.infer<typeof ModerateReportedConten
362
362
  declare const CLEAR_CONTENT_TEXT_TARGET_TYPES: readonly ["work-project", "work-realm", "hall-library-sub-item"];
363
363
  export type ClearContentTextTargetType = (typeof CLEAR_CONTENT_TEXT_TARGET_TYPES)[number];
364
364
  declare const ClearContentTextFieldSchema: z.ZodEnum<{
365
+ workingTitle: "workingTitle";
366
+ workingDescription: "workingDescription";
365
367
  title: "title";
366
368
  description: "description";
367
369
  content: "content";
368
- workingTitle: "workingTitle";
369
- workingDescription: "workingDescription";
370
370
  }>;
371
371
  export type ClearContentTextField = z.infer<typeof ClearContentTextFieldSchema>;
372
372
  export declare const StagedActionSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
@@ -431,11 +431,11 @@ export declare const StagedActionSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
431
431
  reportedItemId: z.ZodString;
432
432
  parentItemId: z.ZodOptional<z.ZodString>;
433
433
  fields: z.ZodArray<z.ZodEnum<{
434
+ workingTitle: "workingTitle";
435
+ workingDescription: "workingDescription";
434
436
  title: "title";
435
437
  description: "description";
436
438
  content: "content";
437
- workingTitle: "workingTitle";
438
- workingDescription: "workingDescription";
439
439
  }>>;
440
440
  }, z.core.$strict>, z.ZodObject<{
441
441
  button: z.ZodLiteral<"tombstoneChat">;
@@ -521,11 +521,11 @@ export declare const NormalReportInputSchema: z.ZodObject<{
521
521
  reportedItemId: z.ZodString;
522
522
  parentItemId: z.ZodOptional<z.ZodString>;
523
523
  fields: z.ZodArray<z.ZodEnum<{
524
+ workingTitle: "workingTitle";
525
+ workingDescription: "workingDescription";
524
526
  title: "title";
525
527
  description: "description";
526
528
  content: "content";
527
- workingTitle: "workingTitle";
528
- workingDescription: "workingDescription";
529
529
  }>>;
530
530
  }, z.core.$strict>, z.ZodObject<{
531
531
  button: z.ZodLiteral<"tombstoneChat">;
@@ -752,7 +752,6 @@ export declare const GetDeadLettersInputSchema: z.ZodOptional<z.ZodNullable<z.Zo
752
752
  safetyEvidenceJobs: "safetyEvidenceJobs";
753
753
  accountActionCommands: "accountActionCommands";
754
754
  activeReportGroups: "activeReportGroups";
755
- hallSubItemEdgeSync: "hallSubItemEdgeSync";
756
755
  }>>;
757
756
  limit: z.ZodOptional<z.ZodNumber>;
758
757
  }, z.core.$strict>>>;
@@ -1 +1 @@
1
- {"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../src/schemas/admin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../src/schemas/admin.ts"],"names":[],"mappings":"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"}
@@ -614,8 +614,8 @@ export const AdminReplayDeadLetterInputSchema = z
614
614
  ]);
615
615
  export const GetDeadLettersInputSchema = z
616
616
  .object({
617
- /** Restrict to one ledger; absent = all supported ledgers. */
618
- collection: DeadLetterCollectionSchema.optional(),
617
+ /** Restrict to one listable flat ledger; absent = all listable flat ledgers. */
618
+ collection: FlatDeadLetterCollectionSchema.optional(),
619
619
  /** Per-ledger row cap (the callable's own ceiling applies regardless). */
620
620
  limit: z.number().int().min(1).max(200).optional(),
621
621
  })