architecture/tech-versions.md

Tech Stack Versions

Pinned versions cho project — cập nhật khi upgrade.

Technology Version Notes
Node.js 22.22.2 LTS .nvmrc tại root, nvm use để switch
NestJS 11.0.1 Backend framework
Prisma 7.6.0 ORM — v7 dùng prisma-client-js generator + @prisma/adapter-pg bắt buộc
TypeScript 5.7.x Theo NestJS 11
Next.js 16.x Web app (booking-web) — sẽ init khi bắt đầu
Expo SDK 54 Mobile app — React Native 0.81.5, React 19.1
PostgreSQL 16 (Alpine) Docker image postgres:16-alpine
Redis 7 (Alpine) Docker image redis:7-alpine
MinIO latest S3-compatible file storage
Yarn 1.22.x (Classic) Package manager — dùng yarn cho mọi command

Prisma v7 Notes (Breaking Changes)

  • Generator provider: prisma-client-js (vẫn hoạt động ở v7, CJS compatible)
  • Import: from '@prisma/client' (cách truyền thống)
  • Adapter bắt buộc: @prisma/adapter-pg — truyền vào PrismaClient({ adapter })
  • url không nằm trong datasource block nữa — config trong prisma.config.ts
  • Config dùng defineConfig + env() từ prisma/config
  • Generator prisma-client (mới) output ESM .ts files — KHÔNG compatible NestJS CJS, tránh dùng

Docker Compose Ports

Service Host Port Container Port
PostgreSQL 5442 5432
Redis 6389 6379
MinIO API 9010 9000
MinIO Console 9011 9001
NestJS API 3010 3010