Add agent level progression and extend backend services.

Introduce agent level utilities/service, expand auth and notification flows, update category definitions and seed data, and wire level-aware order and suggestion handling.
This commit is contained in:
2026-09-15 21:42:02 +03:30
parent 4660b4f922
commit be00221bef
15 changed files with 430 additions and 29 deletions
+50 -2
View File
@@ -42,6 +42,8 @@ async function main() {
await prisma.product.deleteMany();
await prisma.catalog.deleteMany();
await prisma.bankAccount.deleteMany();
await prisma.levelBenefit.deleteMany();
await prisma.customerLevelDef.deleteMany();
await prisma.customer.deleteMany();
await prisma.company.deleteMany();
await prisma.adminUser.deleteMany();
@@ -332,6 +334,51 @@ async function main() {
],
});
await prisma.customerLevelDef.create({
data: {
code: 'bronze',
label: 'برنزی',
sortOrder: 1,
criteriaJson: { minSalesToman: 0 },
benefits: {
create: [{ title: 'دسترسی به کاتالوگ پایه' }],
},
},
});
await prisma.customerLevelDef.create({
data: {
code: 'silver',
label: 'نقره‌ای',
sortOrder: 2,
criteriaJson: { minSalesToman: 500_000_000 },
benefits: {
create: [{ title: 'پشتیبانی اولویت‌دار' }],
},
},
});
const goldLevel = await prisma.customerLevelDef.create({
data: {
code: 'gold',
label: 'طلایی',
sortOrder: 3,
criteriaJson: { minSalesToman: 1_500_000_000 },
benefits: {
create: [{ title: 'تخفیف ویژه سفارش‌های عمده' }],
},
},
});
await prisma.customerLevelDef.create({
data: {
code: 'vip',
label: 'VIP',
sortOrder: 4,
criteriaJson: { minSalesToman: 3_000_000_000 },
benefits: {
create: [{ title: 'مشاوره تخصصی و ارسال سریع' }],
},
},
});
await prisma.customer.create({
data: {
id: 'agent-1',
@@ -342,10 +389,11 @@ async function main() {
customerType: CustomerType.wholesale,
appRole: AppUserRole.agent,
agentCode: 'W-1247',
levelDefId: goldLevel.id,
levelLabel: 'طلایی',
nextLevelLabel: 'VIP',
pointsToNext: 550_000_000,
levelProgress: 72,
pointsToNext: 0,
levelProgress: 0,
companyId: 'company-par',
isActive: true,
avatarLetter: 'ع',