diff --git a/README.md b/README.md index ac2390b..5e8000d 100644 --- a/README.md +++ b/README.md @@ -76,7 +76,7 @@ git add deploy-bundle.tar.gz && git commit -m "refresh deploy bundle" && git pus | نقش | ورود | رمز / OTP | |------|------|-----------| -| ادمین | `09121112222` | `admin123` | +| ادمین | `09128081392` | `123456` | | مشتری | `09121234567` | OTP پیامکی (۴ رقم) — با `SMS_ENABLED=false` کد ثابت: `1234` | ## متغیرهای محیطی diff --git a/dist/admin-users/admin-users.service.js b/dist/admin-users/admin-users.service.js index ab61892..465975f 100644 --- a/dist/admin-users/admin-users.service.js +++ b/dist/admin-users/admin-users.service.js @@ -48,7 +48,7 @@ const client_1 = require("@prisma/client"); const bcrypt = __importStar(require("bcryptjs")); const prisma_service_1 = require("../prisma/prisma.service"); const phone_1 = require("../common/utils/phone"); -const DEFAULT_PASSWORD = 'admin123'; +const DEFAULT_PASSWORD = '123456'; let AdminUsersService = class AdminUsersService { prisma; constructor(prisma) { diff --git a/dist/admin-users/admin-users.service.js.map b/dist/admin-users/admin-users.service.js.map index 057a9b2..4f41c94 100644 --- a/dist/admin-users/admin-users.service.js.map +++ b/dist/admin-users/admin-users.service.js.map @@ -1 +1 @@ -{"version":3,"file":"admin-users.service.js","sourceRoot":"","sources":["../../src/admin-users/admin-users.service.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"admin-users.service.js","sourceRoot":"","sources":["../../src/admin-users/admin-users.service.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/prisma/seed.ts b/prisma/seed.ts index 75f8b4f..17bc629 100644 --- a/prisma/seed.ts +++ b/prisma/seed.ts @@ -1,4 +1,4 @@ -import { PrismaClient, AdminRole, CustomerType, OrderStatus, SettlementType, CheckRegistrationMode, CheckStatus, CashPaymentStatus, ShipmentStatus, NotificationTone } from '@prisma/client'; +import { PrismaClient, AdminRole, CustomerType, OrderStatus, SettlementType, CheckRegistrationMode, CheckStatus, CashPaymentStatus, ShipmentStatus } from '@prisma/client'; import * as bcrypt from 'bcryptjs'; const prisma = new PrismaClient(); @@ -25,61 +25,18 @@ async function main() { await prisma.internalMessage.deleteMany(); await prisma.systemSettings.deleteMany(); - const passwordHash = await bcrypt.hash('admin123', 10); + const passwordHash = await bcrypt.hash('123456', 10); - await prisma.adminUser.createMany({ - data: [ - { - id: 'usr-1', - fullName: 'علی محمدی', - phone: '09121112222', - email: 'admin@fabrictrade.ir', - passwordHash, - role: AdminRole.admin, - isActive: true, - lastLoginAt: new Date('2024-10-25T08:00:00'), - }, - { - id: 'usr-2', - fullName: 'سارا احمدی', - phone: '09133334444', - email: 'sales@fabrictrade.ir', - passwordHash, - role: AdminRole.sales, - isActive: true, - lastLoginAt: new Date('2024-10-25T07:45:00'), - }, - { - id: 'usr-3', - fullName: 'رضا کریمی', - phone: '09155556666', - email: 'finance@fabrictrade.ir', - passwordHash, - role: AdminRole.finance, - isActive: true, - lastLoginAt: new Date('2024-10-24T17:10:00'), - }, - { - id: 'usr-4', - fullName: 'مریم حسینی', - phone: '09177778888', - email: 'warehouse@fabrictrade.ir', - passwordHash, - role: AdminRole.warehouse, - isActive: true, - lastLoginAt: new Date('2024-10-24T14:00:00'), - }, - { - id: 'usr-5', - fullName: 'امیر نوری', - phone: '09199990000', - email: 'amir.n@fabrictrade.ir', - passwordHash, - role: AdminRole.sales, - isActive: false, - lastLoginAt: new Date('2024-09-30T11:00:00'), - }, - ], + await prisma.adminUser.create({ + data: { + id: 'usr-1', + fullName: 'مدیر سیستم', + phone: '09128081392', + email: 'admin@parche.ir', + passwordHash, + role: AdminRole.admin, + isActive: true, + }, }); await prisma.company.createMany({ @@ -581,61 +538,11 @@ async function main() { }, }); - await prisma.adminNotification.createMany({ - data: [ - { - id: 'ntf-1', - title: 'سفارش جدید ثبت شد', - body: 'سفارش ORD-1403-1260 از مشتری پارچه‌سرای نیکو در انتظار بررسی است.', - tone: NotificationTone.info, - link: '/orders', - isRead: false, - sentAt: new Date('2024-10-25T10:05:00'), - }, - { - id: 'ntf-2', - title: 'چک در انتظار تأیید', - body: '۳ فقره چک برای سفارش ORD-1403-1254 نیاز به بررسی دارد.', - tone: NotificationTone.warning, - link: '/orders/ord-1/checks', - isRead: false, - sentAt: new Date('2024-10-25T09:50:00'), - }, - { - id: 'ntf-3', - title: 'پیش‌فاکتور ارسال شد', - body: 'پیش‌فاکتور سفارش ORD-1403-1252 برای مشتری ارسال گردید.', - tone: NotificationTone.success, - isRead: false, - sentAt: new Date('2024-10-25T09:20:00'), - }, - ], - }); - - await prisma.internalMessage.createMany({ - data: [ - { - id: 'msg-1', - senderName: 'سارا احمدی', - subject: 'هماهنگی ارسال سفارش ORD-1403-1256', - preview: 'لطفاً وضعیت باربری سفارش مشتری پارچه‌سرای نیکو را بررسی کنید.', - sentAt: new Date('2024-10-25T09:15:00'), - isRead: false, - }, - { - id: 'msg-2', - senderName: 'رضا کریمی', - subject: 'درخواست اصلاح قیمت', - preview: 'مشتری درخواست تخفیف ۵٪ روی متراژ بالای ۳۰۰۰ متر داده است.', - sentAt: new Date('2024-10-25T08:40:00'), - isRead: false, - }, - ], - }); + // اعلان و پیام داخلی دمو ساخته نمی‌شود؛ فقط رویدادهای واقعی سیستم می‌آیند. void order1; console.log('Seed completed successfully.'); - console.log('Admin login: 09121112222 / admin123'); + console.log('Admin login: 09128081392 / 123456'); console.log('Customer OTP login: 09121234567 / code 1234'); } diff --git a/scripts/reset-admin.mjs b/scripts/reset-admin.mjs new file mode 100644 index 0000000..52de742 --- /dev/null +++ b/scripts/reset-admin.mjs @@ -0,0 +1,43 @@ +/** + * ادمین‌های قبلی را پاک می‌کند و فقط یک ادمین می‌سازد. + * داخل کانتینر API: + * node scripts/reset-admin.mjs + * یا با DATABASE_URL محلی: + * node scripts/reset-admin.mjs + */ +const { PrismaClient } = require('@prisma/client'); +const bcrypt = require('bcryptjs'); + +const PHONE = process.env.ADMIN_PHONE || '09128081392'; +const PASSWORD = process.env.ADMIN_PASSWORD || '123456'; +const FULL_NAME = process.env.ADMIN_NAME || 'مدیر سیستم'; + +async function main() { + const prisma = new PrismaClient(); + try { + const passwordHash = await bcrypt.hash(PASSWORD, 10); + await prisma.$transaction([ + prisma.adminUser.deleteMany({}), + prisma.adminUser.create({ + data: { + id: 'usr-1', + fullName: FULL_NAME, + phone: PHONE, + email: 'admin@parche.ir', + passwordHash, + role: 'admin', + isActive: true, + }, + }), + prisma.internalMessage.deleteMany({}), + ]); + console.log(`Admin reset OK: ${PHONE} / ${PASSWORD}`); + } finally { + await prisma.$disconnect(); + } +} + +main().catch((err) => { + console.error(err); + process.exit(1); +}); diff --git a/scripts/smoke-order-flow.mjs b/scripts/smoke-order-flow.mjs index 86e53ee..0862373 100644 --- a/scripts/smoke-order-flow.mjs +++ b/scripts/smoke-order-flow.mjs @@ -6,8 +6,8 @@ */ const BASE = process.env.SMOKE_BASE_URL || 'http://127.0.0.1:3999/api'; const CUSTOMER_PHONE = '09121234567'; -const ADMIN_PHONE = '09121112222'; -const ADMIN_PASSWORD = 'admin123'; +const ADMIN_PHONE = '09128081392'; +const ADMIN_PASSWORD = '123456'; let passed = 0; let failed = 0; diff --git a/setup.sh b/setup.sh index 1ca0b3a..beab6b3 100644 --- a/setup.sh +++ b/setup.sh @@ -34,5 +34,5 @@ echo "آماده است. سرور را با این دستور اجرا کنید: echo " npm run start:dev" echo "" echo "Swagger: http://localhost:3000/api/docs" -echo "Admin: 09121112222 / admin123" +echo "Admin: 09128081392 / 123456" echo "OTP: 09121234567 / 1234" diff --git a/src/admin-users/admin-users.service.ts b/src/admin-users/admin-users.service.ts index c3c61b6..44b8122 100644 --- a/src/admin-users/admin-users.service.ts +++ b/src/admin-users/admin-users.service.ts @@ -14,7 +14,7 @@ import { toEnglishDigits, } from '../common/utils/phone'; -const DEFAULT_PASSWORD = 'admin123'; +const DEFAULT_PASSWORD = '123456'; @Injectable() export class AdminUsersService {