From a308d6e039cfe1db2b471628c7bb59b60c39bf6c Mon Sep 17 00:00:00 2001 From: safavimohadeseh78 Date: Thu, 10 Sep 2026 18:34:31 +0330 Subject: [PATCH] fix some bug --- Dockerfile | 2 ++ Dockerfile.dist | 4 +++- prisma/seed.ts | 14 +++++++++++--- runtime/seed.cjs | 22 +++++++++++++++------- runtime/server.cjs | 21 ++++++++++++++------- src/main.ts | 6 ++++-- src/run-seed.ts | 15 +++++++++++---- 7 files changed, 60 insertions(+), 24 deletions(-) diff --git a/Dockerfile b/Dockerfile index 5a9659d..ac3be5a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,6 +5,8 @@ WORKDIR /app ENV NODE_ENV=production ENV TZ=Asia/Tehran +ENV PORT=9292 +ENV GLOBAL_PREFIX=server/api ENV PRISMA_QUERY_ENGINE_LIBRARY=/app/runtime/libquery_engine-debian-openssl-3.0.x.so.node COPY runtime ./runtime diff --git a/Dockerfile.dist b/Dockerfile.dist index c0fa4a1..cf7f5d4 100644 --- a/Dockerfile.dist +++ b/Dockerfile.dist @@ -5,6 +5,8 @@ WORKDIR /app ENV NODE_ENV=production ENV TZ=Asia/Tehran +ENV PORT=9292 +ENV GLOBAL_PREFIX=server/api ENV PRISMA_QUERY_ENGINE_LIBRARY=/app/runtime/libquery_engine-debian-openssl-3.0.x.so.node COPY runtime ./runtime @@ -13,5 +15,5 @@ RUN chmod +x /app/docker-entrypoint.sh \ && test -f /app/runtime/server.cjs \ && test -f /app/runtime/libquery_engine-debian-openssl-3.0.x.so.node -EXPOSE 3000 +EXPOSE 9292 ENTRYPOINT ["./docker-entrypoint.sh"] diff --git a/prisma/seed.ts b/prisma/seed.ts index f2caabc..9d54aa2 100644 --- a/prisma/seed.ts +++ b/prisma/seed.ts @@ -18,9 +18,9 @@ import * as bcrypt from 'bcryptjs'; const prisma = new PrismaClient(); async function main() { - const existingAdmins = await prisma.adminUser.count(); - if (existingAdmins > 0 && process.env.RUN_SEED !== 'force') { - console.log('Seed skipped; admin users already exist'); + const existingOrders = await prisma.order.count(); + if (existingOrders > 0 && process.env.RUN_SEED !== 'force') { + console.log('Seed skipped; data already exists'); return; } @@ -479,6 +479,8 @@ async function main() { color: 'آبی', requestedMeterage: 2000, confirmedMeterage: 2000, + companyId: 'company-par', + companyName: 'شرکت پَر', }, { id: 'oi-2', @@ -489,6 +491,8 @@ async function main() { color: 'مشکی', requestedMeterage: 1500, confirmedMeterage: 1000, + companyId: 'company-par', + companyName: 'شرکت پَر', }, { id: 'oi-3', @@ -499,6 +503,8 @@ async function main() { color: 'آبی پشت سفید', requestedMeterage: 750, confirmedMeterage: 750, + companyId: 'company-par', + companyName: 'شرکت پَر', }, ], }, @@ -570,6 +576,8 @@ async function main() { confirmedMeterage: 3200, unitPrice: 250000, lineTotal: 800_000_000, + companyId: 'company-fam-baft', + companyName: 'فام‌بافت', }, ], }, diff --git a/runtime/seed.cjs b/runtime/seed.cjs index 2a0cd17..c0e7c5d 100644 --- a/runtime/seed.cjs +++ b/runtime/seed.cjs @@ -8674,9 +8674,9 @@ __name(_hash, "_hash"); // prisma/seed.ts var prisma = new import_client.PrismaClient(); async function main() { - const existingAdmins = await prisma.adminUser.count(); - if (existingAdmins > 0 && process.env.RUN_SEED !== "force") { - console.log("Seed skipped; admin users already exist"); + const existingOrders = await prisma.order.count(); + if (existingOrders > 0 && process.env.RUN_SEED !== "force") { + console.log("Seed skipped; data already exists"); return; } console.log("Seeding fabric_trade database..."); @@ -9123,7 +9123,9 @@ async function main() { productCode: "377-BL", color: "\u0622\u0628\u06CC", requestedMeterage: 2e3, - confirmedMeterage: 2e3 + confirmedMeterage: 2e3, + companyId: "company-par", + companyName: "\u0634\u0631\u06A9\u062A \u067E\u064E\u0631" }, { id: "oi-2", @@ -9133,7 +9135,9 @@ async function main() { productCode: "377-BK", color: "\u0645\u0634\u06A9\u06CC", requestedMeterage: 1500, - confirmedMeterage: 1e3 + confirmedMeterage: 1e3, + companyId: "company-par", + companyName: "\u0634\u0631\u06A9\u062A \u067E\u064E\u0631" }, { id: "oi-3", @@ -9143,7 +9147,9 @@ async function main() { productCode: "378-BLW", color: "\u0622\u0628\u06CC \u067E\u0634\u062A \u0633\u0641\u06CC\u062F", requestedMeterage: 750, - confirmedMeterage: 750 + confirmedMeterage: 750, + companyId: "company-par", + companyName: "\u0634\u0631\u06A9\u062A \u067E\u064E\u0631" } ] }, @@ -9213,7 +9219,9 @@ async function main() { requestedMeterage: 3200, confirmedMeterage: 3200, unitPrice: 25e4, - lineTotal: 8e8 + lineTotal: 8e8, + companyId: "company-fam-baft", + companyName: "\u0641\u0627\u0645\u200C\u0628\u0627\u0641\u062A" } ] }, diff --git a/runtime/server.cjs b/runtime/server.cjs index 62cda15..07cee25 100644 --- a/runtime/server.cjs +++ b/runtime/server.cjs @@ -140206,18 +140206,23 @@ var require_run_seed = __commonJS({ console.log("No runtime/seed.cjs; skipping seed"); return Promise.resolve(); } - return new Promise((resolve, reject) => { + return new Promise((resolve) => { const child = (0, node_child_process_1.spawn)(process.execPath, [seedFile], { stdio: "inherit", env: process.env }); child.on("exit", (code) => { - if (code === 0) + if (code === 0) { resolve(); - else - reject(new Error(`seed exited ${code}`)); + return; + } + console.error(`Seed failed (${code}); API will still start`); + resolve(); + }); + child.on("error", (err) => { + console.error("Seed error; API will still start", err); + resolve(); }); - child.on("error", reject); }); } __name(runBundledSeed, "runBundledSeed"); @@ -140236,13 +140241,15 @@ var run_seed_1 = require_run_seed(); async function bootstrap() { if (process.env.NODE_ENV === "production") { await (0, apply_migrations_1.applyPendingMigrations)(); - await (0, run_seed_1.runBundledSeed)(); + if (process.env.RUN_SEED === "true" || process.env.RUN_SEED === "force") { + await (0, run_seed_1.runBundledSeed)(); + } } const app = await core_1.NestFactory.create(app_module_1.AppModule); const bodyLimit = process.env.BODY_LIMIT || "25mb"; app.use((0, express_1.json)({ limit: bodyLimit })); app.use((0, express_1.urlencoded)({ extended: true, limit: bodyLimit })); - const globalPrefix = process.env.GLOBAL_PREFIX || "api"; + const globalPrefix = process.env.GLOBAL_PREFIX || "server/api"; app.setGlobalPrefix(globalPrefix); app.enableCors({ origin: true, diff --git a/src/main.ts b/src/main.ts index ce0de45..c6ce424 100644 --- a/src/main.ts +++ b/src/main.ts @@ -9,7 +9,9 @@ import { runBundledSeed } from './run-seed'; async function bootstrap() { if (process.env.NODE_ENV === 'production') { await applyPendingMigrations(); - await runBundledSeed(); + if (process.env.RUN_SEED === 'true' || process.env.RUN_SEED === 'force') { + await runBundledSeed(); + } } const app = await NestFactory.create(AppModule); @@ -20,7 +22,7 @@ async function bootstrap() { app.use(urlencoded({ extended: true, limit: bodyLimit })); // پشت LiteSpeed روی /server → GLOBAL_PREFIX=server/api - const globalPrefix = process.env.GLOBAL_PREFIX || 'api'; + const globalPrefix = process.env.GLOBAL_PREFIX || 'server/api'; app.setGlobalPrefix(globalPrefix); app.enableCors({ origin: true, diff --git a/src/run-seed.ts b/src/run-seed.ts index 21e12b9..12d53e4 100644 --- a/src/run-seed.ts +++ b/src/run-seed.ts @@ -9,15 +9,22 @@ export function runBundledSeed(): Promise { return Promise.resolve() } - return new Promise((resolve, reject) => { + return new Promise((resolve) => { const child = spawn(process.execPath, [seedFile], { stdio: 'inherit', env: process.env, }) child.on('exit', (code) => { - if (code === 0) resolve() - else reject(new Error(`seed exited ${code}`)) + if (code === 0) { + resolve() + return + } + console.error(`Seed failed (${code}); API will still start`) + resolve() + }) + child.on('error', (err) => { + console.error('Seed error; API will still start', err) + resolve() }) - child.on('error', reject) }) }