rtrips-online/MODULE_SPEC.md

49 lines
1.5 KiB
Markdown

# 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