# syntax=docker/dockerfile:1.7
#
# Mesmo padrão de apps/predictive-dialer/Dockerfile e
# apps/freeswitch-events/Dockerfile: roda via `tsx` direto, build a partir
# da raiz do monorepo — ver docs/AI_PIPELINE.md.
FROM node:22-slim

RUN corepack enable && corepack prepare pnpm@11.24.0 --activate

WORKDIR /repo

COPY pnpm-workspace.yaml package.json pnpm-lock.yaml tsconfig.base.json ./
COPY packages/types packages/types
COPY packages/shared packages/shared
COPY packages/database packages/database
COPY packages/storage packages/storage
COPY packages/ai packages/ai
COPY apps/ai-worker apps/ai-worker

RUN pnpm install --frozen-lockfile --filter @b2bcall/ai-worker...

# `prisma generate` só precisa do schema, não de uma conexão real.
ENV DATABASE_URL="postgresql://placeholder:placeholder@localhost:5432/placeholder"
RUN pnpm --filter @b2bcall/database exec prisma generate

WORKDIR /repo/apps/ai-worker

CMD ["pnpm", "exec", "tsx", "src/main.ts"]
