diff --git a/MODULE_SPEC.md b/MODULE_SPEC.md new file mode 100644 index 0000000..bab9d0b --- /dev/null +++ b/MODULE_SPEC.md @@ -0,0 +1,48 @@ +# rTrips — Trip Planning + +**Module ID:** `rtrips` +**Domain:** `rtrips.online` +**Version:** 0.1.0 +**Framework:** Next.js 14 / React 18 / Prisma / PostgreSQL +**Status:** Active + +## Purpose + +Collaborative trip planning with itineraries, packing lists, shared expenses, and location-based scheduling. Integrates with rMaps for destination visualization and rFunds for expense splitting. + +## Data Model + +Prisma schema (PostgreSQL). Trips, itineraries, destinations, packing lists, expenses. + +## Permission Model + +| Capability | Required SpaceRole | Description | +|-----------|-------------------|-------------| +| `view_trips` | VIEWER | See trip details and itineraries | +| `create_trip` | PARTICIPANT | Create new trips | +| `edit_own_trips` | PARTICIPANT | Modify trips you created | +| `moderate_trips` | MODERATOR | Edit/manage any trip | +| `configure_trips` | ADMIN | Space-level trip settings | + +**Current Auth:** EncryptID via SDK. + +## Canvas Integration + +Shape types: +- **`folk-itinerary`**: Trip timeline with dates and destinations +- **`folk-packing-list`**: Checklist widget +- **`folk-destination`**: Location card linked to rMaps + +## Cross-Module Dependencies + +| Module | Integration | +|--------|------------| +| **rMaps** | Destination markers on map | +| **rFunds** | Expense splitting and budget tracking | +| **rSpace** | Canvas shape embedding | + +## Migration Plan + +1. Already has EncryptID auth +2. Add space-level role resolution +3. Import `resolveSpaceRole()` + capability checks