Open-Generative-AI/package.json
Anuragp22 47dd61f33a feat(batch): add Prisma schema and Postgres wiring for batch feature
First slice of the CSV-driven batch video-generation feature. Introduces
the four-table schema (trainers, studios, batches, jobs) that the worker
and new /batch UI will operate on, plus the infrastructure glue so the
schema can be applied locally and in the docker-compose stack.

- prisma/schema.prisma: Trainer, Studio, Batch, Job models with the
  indexes the worker's claim query will need
  ([batchId, status] and [status, nextAttemptAt]).
- prisma/migrations/20260423011041_init_batch_schema: initial migration
  generated and applied against the compose Postgres.
- lib/prisma.js: standard Next.js PrismaClient singleton, reused across
  the web API routes and the worker process.
- docker-compose.yml: map Postgres to host port 5433 to avoid colliding
  with a pre-existing local Postgres on 5432; wire MUAPI_API_KEY env
  through web and worker; add uploads_data volume mounted at
  /data/uploads for slice-2 trainer/studio image backups.
- .env.example: documented DATABASE_URL (5433 for host, 5432 for
  in-compose) and MUAPI_API_KEY placeholders.
- .gitignore: ignore /data/uploads/ now so future runtime uploads
  don't end up tracked.

Also downgraded prisma from 7.x to ^6 since 7 moved datasource config
out of schema.prisma into a separate prisma.config.ts (breaking change
we don't need to absorb yet).

No API routes, worker, or UI in this slice — those land in the next
branches (feat/trainers-studios-crud, feat/batch-create-csv, etc).
2026-04-23 06:41:31 +05:30

114 lines
2.8 KiB
JSON

{
"name": "open-generative-ai",
"description": "Open-source alternative to Higgsfield AI — AI image, video, cinema and lip sync studio",
"private": true,
"version": "1.0.4",
"workspaces": [
"packages/studio",
"packages/workflow-ui",
"packages/ai-agent"
],
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start",
"lint": "next lint",
"build:studio": "cd packages/studio && npm run build",
"setup": "npm install && npm run build:studio",
"vite:dev": "vite",
"vite:build": "vite build",
"electron:dev": "npm run vite:build && electron .",
"electron:build": "vite build && electron-builder --mac",
"electron:build:win": "vite build && electron-builder --win",
"electron:build:linux": "vite build && electron-builder --linux",
"electron:build:all": "vite build && electron-builder --mac --win --linux"
},
"build": {
"appId": "ai.generative.open",
"productName": "Open Generative AI",
"copyright": "Copyright © 2025",
"directories": {
"output": "release"
},
"afterPack": "./afterPack.js",
"files": [
"dist/**/*",
"electron/**/*"
],
"mac": {
"category": "public.app-category.graphics-design",
"icon": "public/banner.png",
"gatekeeperAssess": false,
"target": [
{
"target": "dmg",
"arch": [
"x64",
"arm64"
]
}
]
},
"win": {
"icon": "public/banner.png",
"target": [
{
"target": "nsis",
"arch": [
"x64"
]
}
]
},
"linux": {
"icon": "public/banner.png",
"category": "Utility",
"maintainer": "Open Generative AI Team",
"extraFiles": [
{
"from": "build/linux/apparmor.profile",
"to": "resources/apparmor.profile"
}
],
"target": [
{
"target": "AppImage",
"arch": [
"x64"
]
},
{
"target": "deb",
"arch": [
"x64"
]
}
]
}
},
"dependencies": {
"@prisma/client": "^6.19.3",
"ai-agent": "file:./packages/ai-agent",
"axios": "^1.7.0",
"next": "^15.0.0",
"react": "^19.0.0",
"react-dom": "^19.0.0",
"react-hot-toast": "^2.4.1",
"studio": "*",
"workflow-builder": "file:./packages/workflow-ui"
},
"devDependencies": {
"@eslint/eslintrc": "^3",
"@tailwindcss/vite": "^4.1.18",
"autoprefixer": "^10.4.24",
"electron": "^33.4.11",
"electron-builder": "^25.1.8",
"eslint": "^9",
"eslint-config-next": "^15.0.0",
"postcss": "^8.5.6",
"prisma": "^6.19.3",
"tailwindcss": "^3.4.19",
"vite": "^5.4.0"
},
"main": "electron/main.js"
}