FROM node:22-alpine AS base
WORKDIR /usr/src/app

# Install OpenSSL and other dependencies required by Prisma
RUN apk add --no-cache openssl libc6-compat

# Install dependencies separately for better caching
FROM base AS deps
COPY package*.json ./
RUN npm install

FROM base AS dev
ENV NODE_ENV=development

# Install OpenSSL for Prisma
RUN apk add --no-cache openssl libc6-compat

COPY --from=deps /usr/src/app/node_modules ./node_modules
COPY . .

# Prisma: generate client
RUN npx prisma generate || true

EXPOSE 3000
CMD ["npm", "run", "start:dev"]
