FROM node:20-alpine AS builder

WORKDIR /app

COPY package.json package-lock.json ./
RUN npm ci

COPY tsconfig.json tsconfig.build.json ./
COPY src/ ./src/

RUN npm run build

FROM node:20-alpine AS production

WORKDIR /app

COPY package.json package-lock.json ./
RUN npm ci --omit=dev

COPY --from=builder /app/dist ./dist
COPY migrations/ ./migrations/

ENV NODE_ENV=production
ENV HOST=0.0.0.0
ENV PORT=80
ENV DATABASE_URL=postgresql://supabase_admin:28ac17bf9d4f7a3d1bad045408102cf5@safe-supabase-db:5432/postgres
ENV SUPABASE_URL=https://safe-supabase-kong.caprover.al-arcade.com
ENV SUPABASE_SERVICE_ROLE_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoic2VydmljZV9yb2xlIiwiaXNzIjoic3VwYWJhc2UiLCJpYXQiOjE3MzU2ODk2MDAsImV4cCI6MTg5MzQ1NjAwMH0.wNfmuJNkX-bZwD7RbjxOChlRf_3Xm4I7bswEYTcDCg4
ENV SUPABASE_JWT_SECRET=902343981eb82f43ff7a3757f3fcf25f14a2b9c729454eae5029ee3d1f189eb7
ENV SUPABASE_ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlIiwiaWF0IjoxNzM1Njg5NjAwLCJleHAiOjE4OTM0NTYwMDB9.31PF6PvP-pSrvRuQwLFptQoejR0W1A7o53lZhEbnz84
ENV LOG_LEVEL=info
ENV CORS_ORIGIN=*

EXPOSE 80

CMD ["node", "dist/index.js"]
