FROM node:18-alpine

WORKDIR /app

# Install OpenSSL for Prisma (Alpine 3.21 uses OpenSSL 3)
RUN apk add --no-cache openssl

# Install dependencies
COPY package*.json ./
RUN npm ci

# Copy source
COPY . .

# Generate Prisma client
RUN npx prisma generate

# Build TypeScript
RUN npm run build

# Expose ports
EXPOSE 8080 9090

CMD ["npm", "start"]
