maaz519
0ffdc362b5
feat: member portal Sprint 4 — Events + RSVP
...
- Event + EventRsvp models + migration (RsvpStatus enum: GOING/MAYBE/NOT_GOING)
- EventsModule: admin CRUD (create/update/delete/publish) + RSVP list
- GET /my/events + POST /my/events/:id/rsvp in MyController/MyService
- Admin BFF routes: GET/POST /api/admin/events, PATCH/DELETE /api/admin/events/[id]
- Member BFF routes: GET /api/my/events, POST /api/my/events/[id]/rsvp
- /my/events page: upcoming/past split, RSVP button (client component, optimistic)
- Register DigestModule, OrgModule, ThreadsModule, EventsModule in AppModule
- Add EVENT_CREATED/DELETED/UPDATED and DIGEST_SENT to AuditAction
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-17 16:20:11 +05:30
maaz519
f7922454ca
feat: member portal Sprint 3 — profile edit form and privacy center
...
- PATCH /my/profile API endpoint (displayName, hometown, currentLocation, interests, language, digestPreference, directoryVisible)
- BFF PATCH /api/my/profile route
- ProfileForm client component: interest chips, digest preference, language, directory toggle
- Settings page rewrite: profile edit + privacy center (consent list + opt-out) + session + account delete
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-17 16:06:20 +05:30
maaz519
bc9fe7c145
feat: member portal Sprint 2 — digest history page and restore Digest/DigestConfig schema models
...
- Restore Digest + DigestConfig models to schema.prisma (wiped by prior git reset)
- Add Tenant.digestConfig / Tenant.digests relations
- GET /my/digest API endpoint (last 20 digests, truncated summary)
- BFF route /api/my/digest
- /my/digest page: digest cards with date, message count, summary preview
- Add Digest nav item to MemberShell sidebar
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-17 16:04:31 +05:30
maaz519
566690bd04
feat: member portal Sprint 1 — dashboard with MemberShell layout and TowerUser profile fields
...
- Add avatar, hometown, currentLocation, interests, language, digestPreference, directoryVisible fields to TowerUser
- Migration: 20260617200000_add_tower_user_profile_fields
- GET /my/dashboard API endpoint with stats (groups, messages, consents)
- BFF route /api/my/dashboard
- MemberShell 3-column layout (220px nav + flex-1 main + 280px rail)
- Dashboard page: hero card, stat cards, group list, interests chips
- Sidebar returns null for /my paths (MemberShell owns the nav)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-17 15:44:58 +05:30
maaz519
622737fdca
feat: add web app pages for org portal, thread viewer, and admin org management
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-17 15:40:40 +05:30
maaz519
249d759e6a
good forst commit
2026-06-09 02:02:40 +05:30
maaz519
2f88e883b2
feat: add AccountsList with Add Account form; proxy POST /accounts
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-29 11:49:23 +05:30
maaz519
759b49159e
feat: add Next.js proxy routes for accounts list and QR endpoints
2026-05-29 11:37:48 +05:30
maaz519
5d9df64849
fix(api): prevent self-loop routes, map P2003 to 400, forward DELETE error body
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-28 01:44:48 +05:30
maaz519
1389a65e18
feat(web): add groups page with RouteManager and route handler proxies
...
Implements the Groups & Routes admin page with a client-side RouteManager
component (add/delete sync routes via fetch), server-side groups page that
pre-fetches groups/routes from the API, and Next.js Route Handler proxies
for /api/routes (GET, POST) and /api/routes/[id] (DELETE). Adds a custom
jest environment that polyfills Node 18+ native fetch into the jsdom sandbox
so tests can use jest.spyOn(global, 'fetch').
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-28 01:37:13 +05:30