Repository tree (current)
Generated: 2026-08-06T03:56:22.674Z
Excluded: node_modules, .git, dist, build, coverage, .expo, .next, .turbo, .cache.
Top-level tree (depth ≤ 5, large dirs capped)
welife/
├── .cursor/
│ ├── rules/
│ │ ├── agent-autonomous-loop.mdc
│ │ ├── agent-queue.mdc
│ │ ├── ai-safety.mdc
│ │ ├── api-nestjs.mdc
│ │ ├── code-quality.mdc
│ │ ├── doc-matrix.mdc
│ │ ├── fe-figma-matrix.mdc
│ │ ├── image-to-ui.mdc
│ │ ├── mandatory-wp-gate.mdc
│ │ ├── mobile-rn.mdc
│ │ ├── monorepo-boundaries.mdc
│ │ ├── swagger-contract.mdc
│ │ └── welife-core.mdc
│ └── skills/
│ ├── image-to-ui/
│ │ └── SKILL.md
│ └── welife-mandatory/
│ └── SKILL.md
├── .env-backups/
│ └── 20260731-133124/
│ └── .env
├── .github/
│ └── workflows/
│ └── ci.yml
├── .vscode/
│ ├── extensions.json
│ ├── launch.json
│ ├── settings.json
│ └── tasks.json
├── api/
│ ├── .agents/
│ │ └── skills/
│ │ ├── prisma-cli/
│ │ │ ├── references/
│ │ │ │ ├── db-execute.md
│ │ │ │ ├── db-pull.md
│ │ │ │ ├── db-push.md
│ │ │ │ ├── db-seed.md
│ │ │ │ ├── debug.md
│ │ │ │ ├── dev.md
│ │ │ │ ├── format.md
│ │ │ │ ├── generate.md
│ │ │ │ ├── init.md
│ │ │ │ ├── mcp.md
│ │ │ │ ├── migrate-deploy.md
│ │ │ │ ├── migrate-dev.md
│ │ │ │ ├── migrate-diff.md
│ │ │ │ ├── migrate-reset.md
│ │ │ │ ├── migrate-resolve.md
│ │ │ │ ├── migrate-status.md
│ │ │ │ ├── studio.md
│ │ │ │ └── validate.md
│ │ │ └── SKILL.md
│ │ ├── prisma-client-api/
│ │ │ ├── references/
│ │ │ │ ├── client-methods.md
│ │ │ │ ├── constructor.md
│ │ │ │ ├── filters.md
│ │ │ │ ├── model-queries.md
│ │ │ │ ├── query-options.md
│ │ │ │ ├── raw-queries.md
│ │ │ │ ├── relations.md
│ │ │ │ └── transactions.md
│ │ │ └── SKILL.md
│ │ ├── prisma-compute/
│ │ │ ├── references/
│ │ │ │ ├── app-deploy-cli.md
│ │ │ │ ├── compute-config.md
│ │ │ │ ├── create-prisma.md
│ │ │ │ ├── frameworks.md
│ │ │ │ ├── sdk-api.md
│ │ │ │ └── troubleshooting.md
│ │ │ └── SKILL.md
│ │ ├── prisma-database-setup/
│ │ │ ├── references/
│ │ │ │ ├── cockroachdb.md
│ │ │ │ ├── mongodb.md
│ │ │ │ ├── mysql.md
│ │ │ │ ├── postgresql.md
│ │ │ │ ├── prisma-client-setup.md
│ │ │ │ ├── prisma-postgres.md
│ │ │ │ ├── sqlite.md
│ │ │ │ └── sqlserver.md
│ │ │ └── SKILL.md
│ │ ├── prisma-driver-adapter-implementation/
│ │ │ └── SKILL.md
│ │ ├── prisma-mongodb-upgrade/
│ │ │ ├── references/
│ │ │ │ ├── client-api-mapping.md
│ │ │ │ ├── decision-stay-or-migrate.md
│ │ │ │ ├── migrations-mapping.md
│ │ │ │ ├── schema-contract-mapping.md
│ │ │ │ └── verify-cutover-checklist.md
│ │ │ └── SKILL.md
│ │ ├── prisma-postgres/
│ │ │ ├── references/
│ │ │ │ ├── console-and-connections.md
│ │ │ │ ├── create-db-cli.md
│ │ │ │ ├── management-api-sdk.md
│ │ │ │ └── management-api.md
│ │ │ └── SKILL.md
│ │ ├── prisma-postgres-setup/
│ │ │ ├── references/
│ │ │ │ ├── api-basics.md
│ │ │ │ ├── auth.md
│ │ │ │ ├── endpoints.md
│ │ │ │ └── prisma7-client.md
│ │ │ └── SKILL.md
│ │ └── prisma-upgrade-v7/
│ │ ├── references/
│ │ │ ├── accelerate-users.md
│ │ │ ├── driver-adapters.md
│ │ │ ├── env-variables.md
│ │ │ ├── esm-support.md
│ │ │ ├── prisma-config.md
│ │ │ ├── removed-features.md
│ │ │ └── schema-changes.md
│ │ └── SKILL.md
│ ├── .claude/
│ │ └── skills/
│ │ ├── prisma-cli
│ │ ├── prisma-client-api
│ │ ├── prisma-compute
│ │ ├── prisma-database-setup
│ │ ├── prisma-driver-adapter-implementation
│ │ ├── prisma-mongodb-upgrade
│ │ ├── prisma-postgres
│ │ ├── prisma-postgres-setup
│ │ └── prisma-upgrade-v7
│ ├── .windsurf/
│ │ └── skills/
│ │ ├── prisma-cli
│ │ ├── prisma-client-api
│ │ ├── prisma-compute
│ │ ├── prisma-database-setup
│ │ ├── prisma-driver-adapter-implementation
│ │ ├── prisma-mongodb-upgrade
│ │ ├── prisma-postgres
│ │ ├── prisma-postgres-setup
│ │ └── prisma-upgrade-v7
│ ├── http/
│ │ └── welife.http
│ ├── prisma/
│ │ ├── migrations/
│ │ │ ├── 20260724040901_init_user_media/
│ │ │ │ └── migration.sql
│ │ │ ├── 20260724041153_add_addresses/
│ │ │ │ └── migration.sql
│ │ │ ├── 20260724041307_add_wallet/
│ │ │ │ └── migration.sql
│ │ │ ├── 20260724041420_add_fnb/
│ │ │ │ └── migration.sql
│ │ │ ├── 20260724041738_add_rides/
│ │ │ │ └── migration.sql
│ │ │ ├── 20260724043202_auth_driver_profile/
│ │ │ │ └── migration.sql
│ │ │ ├── 20260724063446_add_partner_org/
│ │ │ │ └── migration.sql
│ │ │ ├── 20260724071016_driver_kyc_media/
│ │ │ │ └── migration.sql
│ │ │ ├── 20260724072439_driver_kyc_full/
│ │ │ │ └── migration.sql
│ │ │ ├── 20260724100000_payment_intents/
│ │ │ │ └── migration.sql
│ │ │ ├── 20260725090000_geo_verticals_ratings_order_pay/
│ │ │ │ └── migration.sql
│ │ │ ├── 20260725093000_chat_social_calls_notifications/
│ │ │ │ └── migration.sql
│ │ │ ├── 20260728050000_email_auth_optional_phone/
│ │ │ │ └── migration.sql
│ │ │ ├── 20260728160000_place_map_fields/
│ │ │ │ └── migration.sql
│ │ │ ├── 20260729090000_place_catalog_wp_place_02/
│ │ │ │ └── migration.sql
│ │ │ ├── 20260729103000_cms_pages_adm_04/
│ │ │ │ └── migration.sql
│ │ │ ├── 20260729120000_place_claim_wp_place_03/
│ │ │ │ └── migration.sql
│ │ │ ├── 20260730100000_medical_rx_partner/
│ │ │ │ └── migration.sql
│ │ │ ├── 20260731120000_ride_vehicle_type/
│ │ │ │ └── migration.sql
│ │ │ ├── 20260731130000_ride_payment_method/
│ │ │ │ └── migration.sql
│ │ │ ├── 20260804120000_p8_gap_verticals/
│ │ │ │ └── migration.sql
│ │ │ ├── 20260804140000_media_kind_audio/
│ │ │ │ └── migration.sql
│ │ │ └── migration_lock.toml
│ │ ├── schema.prisma
│ │ └── seed.ts
│ ├── scripts/
│ │ ├── generate-swagger-stubs.mjs
│ │ └── stub-modules.snippet.txt
│ ├── src/
│ │ ├── common/
│ │ │ ├── decorators/
│ │ │ │ ├── current-user.decorator.ts
│ │ │ │ └── roles.decorator.ts
│ │ │ ├── dto/
│ │ │ │ └── nearby-geo-query.dto.ts
│ │ │ ├── enums/
│ │ │ │ ├── auth-surface.enum.ts
│ │ │ │ └── role.enum.ts
│ │ │ ├── filters/
│ │ │ │ └── safe-http-exception.filter.ts
│ │ │ ├── geo/
│ │ │ │ ├── geocoding.ts
│ │ │ │ ├── haversine.ts
│ │ │ │ ├── map-bounds-postgis.ts
│ │ │ │ └── nearby-postgis.ts
│ │ │ ├── guards/
│ │ │ │ ├── jwt-auth.guard.ts
│ │ │ │ ├── optional-jwt-auth.guard.ts
│ │ │ │ └── roles.guard.ts
│ │ │ ├── realtime/
│ │ │ │ └── socket-root.module.ts
│ │ │ ├── redis/
│ │ │ │ └── create-redis.ts
│ │ │ ├── security/
│ │ │ │ ├── assert-secure-boot.spec.ts
│ │ │ │ └── assert-secure-boot.ts
│ │ │ ├── dev-http-log.interceptor.ts
│ │ │ └── stub.ts
│ │ ├── modules/
│ │ │ ├── addresses/
│ │ │ │ ├── dto/
│ │ │ │ │ └── address.dto.ts
│ │ │ │ ├── addresses.controller.ts
│ │ │ │ ├── addresses.module.ts
│ │ │ │ ├── addresses.service.spec.ts
│ │ │ │ └── addresses.service.ts
│ │ │ ├── assistant/
│ │ │ │ ├── dto/
│ │ │ │ │ └── assistant.dto.ts
│ │ │ │ ├── assistant.controller.ts
│ │ │ │ ├── assistant.module.ts
│ │ │ │ └── assistant.service.ts
│ │ │ ├── atm/
│ │ │ │ ├── atm.controller.ts
│ │ │ │ ├── atm.module.ts
│ │ │ │ └── atm.service.ts
│ │ │ ├── auth/
│ │ │ │ ├── dto/
│ │ │ │ │ └── auth.dto.ts
│ │ │ │ ├── auth.controller.ts
│ │ │ │ ├── auth.module.ts
│ │ │ │ ├── auth.service.ts
│ │ │ │ ├── google-auth.util.spec.ts
│ │ │ │ ├── google-auth.util.ts
│ │ │ │ ├── jwt.strategy.ts
│ │ │ │ ├── mail.service.ts
│ │ │ │ ├── otp-store.service.ts
│ │ │ │ ├── sms.service.spec.ts
│ │ │ │ ├── sms.service.ts
│ │ │ │ ├── token-blacklist.service.ts
│ │ │ │ └── totp.util.ts
│ │ │ ├── bills/
│ │ │ │ ├── dto/
│ │ │ │ │ └── bills.dto.ts
│ │ │ │ ├── bills.controller.ts
│ │ │ │ ├── bills.module.ts
│ │ │ │ └── bills.service.ts
│ │ │ ├── cart/
│ │ │ │ ├── dto/
│ │ │ │ │ └── cart.dto.ts
│ │ │ │ ├── cart.controller.ts
│ │ │ │ ├── cart.module.ts
│ │ │ │ └── cart.service.ts
│ │ │ ├── charging/
│ │ │ │ ├── dto/
│ │ │ │ │ └── charging.dto.ts
│ │ │ │ ├── charging.controller.ts
│ │ │ │ ├── charging.module.ts
│ │ │ │ └── charging.service.ts
│ │ │ ├── chat/
│ │ │ │ ├── dto/
│ │ │ │ │ └── chat.dto.ts
│ │ │ │ ├── chat-realtime.service.ts
│ │ │ │ ├── chat-socket.bootstrap.ts
│ │ │ │ ├── chat.controller.ts
│ │ │ │ ├── chat.module.ts
│ │ │ │ └── chat.service.ts
│ │ │ ├── cms/
│ │ │ │ ├── dto/
│ │ │ │ │ └── cms-admin.dto.ts
│ │ │ │ ├── cms.controller.ts
│ │ │ │ ├── cms.module.ts
│ │ │ │ └── cms.service.ts
│ │ │ ├── delivery/
│ │ │ │ ├── dto/
│ │ │ │ │ └── delivery.dto.ts
│ │ │ │ ├── delivery.controller.ts
│ │ │ │ ├── delivery.module.ts
│ │ │ │ └── delivery.service.ts
│ │ │ ├── driver/
│ │ │ │ ├── dto/
│ │ │ │ │ └── driver.dto.ts
│ │ │ │ ├── driver.controller.ts
│ │ │ │ ├── driver.module.ts
│ │ │ │ ├── driver.service.spec.ts
│ │ │ │ └── driver.service.ts
│ │ │ ├── favorites/
│ │ │ │ ├── dto/
│ │ │ │ │ └── favorite.dto.ts
│ │ │ │ ├── favorites.controller.ts
│ │ │ │ ├── favorites.module.ts
│ │ │ │ └── favorites.service.ts
│ │ │ ├── fuel/
│ │ │ │ ├── dto/
│ │ │ │ │ └── fuel.dto.ts
│ │ │ │ ├── fuel.controller.ts
│ │ │ │ ├── fuel.module.ts
│ │ │ │ └── fuel.service.ts
│ │ │ ├── health/
│ │ │ │ ├── api-root.controller.spec.ts
│ │ │ │ ├── api-root.controller.ts
│ │ │ │ ├── health.controller.ts
│ │ │ │ └── health.module.ts
│ │ │ ├── homeservices/
│ │ │ │ ├── dto/
│ │ │ │ │ └── homeservices.dto.ts
│ │ │ │ ├── homeservices.controller.ts
│ │ │ │ ├── homeservices.module.ts
│ │ │ │ └── homeservices.service.ts
│ │ │ ├── hotels/
│ │ │ │ ├── dto/
│ │ │ │ │ └── hotels.dto.ts
│ │ │ │ ├── hotels.controller.ts
│ │ │ │ ├── hotels.module.ts
│ │ │ │ └── hotels.service.ts
│ │ │ ├── kyc/
│ │ │ │ ├── dto/
│ │ │ │ │ └── kyc.dto.ts
│ │ │ │ ├── kyc.controller.ts
│ │ │ │ ├── kyc.module.ts
│ │ │ │ └── kyc.service.ts
│ │ │ ├── media/
│ │ │ │ ├── dto/
│ │ │ │ │ └── media.dto.ts
│ │ │ │ ├── media.constants.ts
│ │ │ │ ├── media.controller.ts
│ │ │ │ ├── media.module.ts
│ │ │ │ ├── media.service.spec.ts
│ │ │ │ ├── media.service.ts
│ │ │ │ └── s3.service.ts
│ │ │ ├── medical/
│ │ │ │ ├── dto/
│ │ │ │ │ └── medical.dto.ts
│ │ │ │ ├── health-history.mapper.spec.ts
│ │ │ │ ├── health-history.mapper.ts
│ │ │ │ ├── medical.controller.ts
│ │ │ │ ├── medical.module.ts
│ │ │ │ └── medical.service.ts
│ │ │ ├── merchants/
│ │ │ │ ├── dto/
│ │ │ │ │ └── merchants.dto.ts
│ │ │ │ ├── merchants.controller.ts
│ │ │ │ ├── merchants.module.ts
│ │ │ │ ├── merchants.service.spec.ts
│ │ │ │ └── merchants.service.ts
│ │ │ ├── notifications/
│ │ │ │ ├── dto/
│ │ │ │ │ └── notifications.dto.ts
│ │ │ │ ├── notifications.controller.ts
│ │ │ │ ├── notifications.module.ts
│ │ │ │ └── notifications.service.ts
│ │ │ ├── orders/
│ │ │ │ ├── dto/
│ │ │ │ │ └── orders.dto.ts
│ │ │ │ ├── orders.controller.ts
│ │ │ │ ├── orders.module.ts
│ │ │ │ ├── orders.service.spec.ts
│ │ │ │ └── orders.service.ts
│ │ │ ├── parking/
│ │ │ │ ├── dto/
│ │ │ │ │ └── parking.dto.ts
│ │ │ │ ├── parking.controller.ts
│ │ │ │ ├── parking.module.ts
│ │ │ │ └── parking.service.ts
│ │ │ ├── partners/
│ │ │ │ ├── dto/
│ │ │ │ │ └── partners.dto.ts
│ │ │ │ ├── partners.controller.ts
│ │ │ │ ├── partners.module.ts
│ │ │ │ ├── partners.service.spec.ts
│ │ │ │ └── partners.service.ts
│ │ │ ├── payments/
│ │ │ │ ├── dto/
│ │ │ │ │ └── payments.dto.ts
│ │ │ │ ├── payments.controller.ts
│ │ │ │ ├── payments.crypto.spec.ts
│ │ │ │ ├── payments.crypto.ts
│ │ │ │ ├── payments.module.ts
│ │ │ │ └── payments.service.ts
│ │ │ ├── pharmacy/
│ │ │ │ ├── dto/
… truncated 883 lines
Statistics by folder
| Folder | Files | .ts | .tsx | Tests | Config-ish | .env* | Media |
|---|---|---|---|---|---|---|---|
| api | 354 | 222 | 0 | 16 | 4 | 5 | 0 |
| mobile | 224 | 39 | 158 | 4 | 4 | 5 | 6 |
| dashboard | 35 | 3 | 21 | 0 | 1 | 4 | 0 |
| partner | 104 | 24 | 71 | 0 | 3 | 3 | 0 |
| driver | 37 | 11 | 17 | 0 | 3 | 3 | 0 |
| docs | 57 | 0 | 0 | 0 | 0 | 0 | 0 |
| scripts | 17 | 0 | 0 | 0 | 0 | 0 | 0 |
| deploy | 44 | 0 | 0 | 0 | 2 | 0 | 0 |
| design | 41 | 0 | 0 | 0 | 0 | 0 | 39 |
| assets | 57 | 0 | 0 | 0 | 0 | 0 | 28 |
| .cursor | 15 | 0 | 0 | 0 | 0 | 0 | 0 |
| ALL (walk) | 1007 | 299 | 267 | 20 | 19 | 23 | 73 |
Notes
- No
packages/shared workspace package present. - Root
package.jsonis orchestration scripts only (not npm/pnpm/yarn workspaces). - Design mockups live under
design/mockups/(JPG counts under Media fordesign).