mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-10-20 14:06:27 +00:00
ec8509f2de
Adds the Collections addon backend: a server-wide-per-user library of saved places, independent of any trip, with multiple named lists, an idea/want/visited status, and Vacay-style fusion invitations to share a list with other users. - Data: collection / collection_members / collection_places / collection_place_tags tables (+ migration and baseline schema). Saved places carry the owner plus a nullable saved_by so a member deleting their account can't drop shared content. - Service: list + place CRUD with owner-or-accepted-member visibility, dedup, status, save-from-trip and copy-to-trip (reusing the trip copy column list), and the full fusion-invitation state machine mirrored from vacay (send / accept / decline / cancel / leave) with a websocket broadcast and an invite notification. Deleting a list snapshots its members and notifies them. - NestJS module + addon guard (404 before auth), registered in the app module. - Widens the place photo cache reference check to count collection places so the nightly sweep no longer evicts photos a saved place still uses. - collection_invite notification wired across all 22 locales.
16 lines
348 B
TypeScript
16 lines
348 B
TypeScript
export const ADDON_IDS = {
|
|
MCP: 'mcp',
|
|
PACKING: 'packing',
|
|
BUDGET: 'budget',
|
|
DOCUMENTS: 'documents',
|
|
VACAY: 'vacay',
|
|
ATLAS: 'atlas',
|
|
COLLAB: 'collab',
|
|
JOURNEY: 'journey',
|
|
AIRTRAIL: 'airtrail',
|
|
LLM_PARSING: 'llm_parsing',
|
|
COLLECTIONS: 'collections',
|
|
} as const;
|
|
|
|
export type AddonId = typeof ADDON_IDS[keyof typeof ADDON_IDS];
|