maaz519
a0dc94ce79
feat: member portal Sprint 5 — onboarding portal experience + restore Thread schema
...
- Redesign onboarding into a 5-step wizard: welcome → phone → consent → code → done
- Progress bar, human-readable consent scopes (INGEST/ARCHIVE/REPLICATE/DISPLAY) with descriptions
- Resend-code action, back navigation, indigo theme matching member portal
- "Done" step introduces portal features (digests, events, privacy) with CTA
- Onboard page shell: rounded card, policy footer
- Restore Thread model + Message.expiresAt/quotedPlatformMsgId/threadId + RAW/DNC statuses to schema.prisma (wiped by prior reset; matches existing add_hybrid_ai_architecture migration) — unblocks ThreadsModule registration
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-17 16:30:58 +05:30
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
435b0e7806
feat: add API modules for digest scheduling, org admin portal, and thread views
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-17 15:40:32 +05:30
maaz519
6aec093516
feat: add org layer to schema and export OrgAdminJwtPayload, adapter, hash from types
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-17 15:40:24 +05:30
maaz519
978f7effc0
feat: add prisma migrations for p1/digest models, hybrid AI, outbox, and org layer
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-17 15:40:20 +05:30
maaz519
4f1df96b34
fix: add retry loop for database connection in entrypoint
2026-06-09 16:50:56 +05:30
maaz519
1b63f62ca0
fix: add retry loop for database connection in entrypoint
2026-06-09 16:47:54 +05:30
maaz519
e66f198785
fix: add retry loop for database connection in entrypoint
2026-06-09 16:41:47 +05:30
maaz519
50026c8a95
fix: add retry loop for database connection in entrypoint
2026-06-09 16:29:46 +05:30
maaz519
9761564c22
fix: shrink images + fix prisma generate in runner
2026-06-09 16:21:55 +05:30
maaz519
9ac3e29a20
fix: add @prisma/client to root deps for Docker runner
2026-06-09 16:09:29 +05:30
maaz519
ff4d0f90e8
added changes
2026-06-09 15:33:21 +05:30
maaz519
249d759e6a
good forst commit
2026-06-09 02:02:40 +05:30
maaz519
801c1d7121
fix: create new accounts with DISCONNECTED status so QR displays immediately
2026-05-29 11:57:42 +05:30
maaz519
afff6fdbdf
feat: add POST /accounts endpoint to create new WhatsApp account records
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-29 11:50:01 +05:30
maaz519
1dba77959d
feat: add AccountsModule with list and QR endpoints
...
Implements GET /accounts (list all accounts) and GET /accounts/:id/qr
(returns QR code as base64 data URL) using the qrcode package.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-29 11:15:42 +05:30
maaz519
43f4133f1d
feat: add qrCode field to Account for QR re-auth
2026-05-29 10:58:04 +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
9d1799eab1
fix(api): export GroupSummary interface to fix TS4053 declaration emit error
2026-05-28 01:41:12 +05:30
maaz519
d92476f841
fix(api): use PrismaClientKnownRequestError instanceof, add ConflictException for duplicate routes
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-28 01:13:05 +05:30
maaz519
6b4920ce41
feat(api): add RoutesModule with GET/POST/DELETE /routes endpoints
...
Implements RoutesService and RoutesController for SyncRoute CRUD, wires
GroupsModule and RoutesModule into AppModule; 11 new tests, all 31 pass.
2026-05-28 01:07:15 +05:30
maaz519
f4a40b573e
fix(api): add clearAllMocks and explicit return type to GroupsModule
...
- Add jest.clearAllMocks() in beforeEach of both spec files to prevent
call-history state from leaking between tests as the suites grow
- Define GroupSummary interface and use it as explicit return type for
GroupsService.list() to satisfy TypeScript strict typing requirements
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-28 01:00:09 +05:30
maaz519
0e92b24bf0
feat(api): add GroupsModule with GET /groups endpoint
...
Implements TDD-driven GroupsService and GroupsController with full unit test coverage. GET /groups returns all groups ordered by name, selecting id, name, platform, platformId, isActive, and accountId fields.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-28 00:55:13 +05:30
maaz519
e73d39b798
fix(api): escape filter values, clamp pagination, remove redundant ConfigModule import
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-28 00:31:43 +05:30
maaz519
8ad5f737bd
feat(api): add SearchModule with GET /search endpoint backed by Meilisearch
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-28 00:28:13 +05:30
maaz519
cbb32ed425
fix(schema): revert datasource URL, add Group.accountId index
2026-05-27 17:09:48 +05:30
maaz519
a7aa8bf5a9
feat(schema): Account model with AccountStatus enum, optional Group.accountId
...
Adds Account model (platform, jid, sessionPath, displayName, status) with
AccountStatus enum (ACTIVE/DISCONNECTED/BANNED) and optional accountId FK
on Group for multi-account WhatsApp session tracking.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-27 17:07:39 +05:30
maaz519
b16a30beb2
feat: verify Turborepo pipeline — all 8 packages build and test
...
Adds packageManager field to root package.json (required by turbo v2.9),
loads .env via dotenv in API jest config so Prisma integration tests find
DATABASE_URL when run from the monorepo root. pnpm build + pnpm test: 8/8 passing.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-27 14:38:34 +05:30
maaz519
c1efde757d
feat: add health check module with unit tests
2026-05-27 14:27:07 +05:30
maaz519
ae6c7ec94a
feat: add Prisma schema and PrismaService with integration tests (postgres on :5433)
2026-05-27 14:25:49 +05:30
maaz519
ee353762a5
feat: scaffold NestJS API application
2026-05-27 14:19:42 +05:30