Snapshot of uncommitted work: landing, bots, prod infra, partner cabinet, backoffice stage 1
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
45d7512d2b
commit
d452824c62
314 files changed
+44394
-121
No files matched your search
@@ -10,6 +10,7 @@ import { hash } from '@node-rs/argon2';
|
||||
import {
|
||||
CATALOG,
|
||||
DEFAULT_CATEGORY_DISCOUNTS,
|
||||
DEFAULT_ELITE_DISCOUNTS,
|
||||
DEFAULT_SETTINGS,
|
||||
YEREVAN_DISTRICTS,
|
||||
agencyCommission,
|
||||
@@ -20,6 +21,7 @@ import {
|
||||
type CategoryCode,
|
||||
} from '@barev/core';
|
||||
import { createDb, type Locale, type OrderStatus } from '../index.ts';
|
||||
import { ensureDefaultPresets } from '../scripts/sync-catalog.ts';
|
||||
|
||||
config({ path: path.resolve(import.meta.dirname, '../../../../.env'), quiet: true });
|
||||
|
||||
@@ -71,7 +73,7 @@ async function main() {
|
||||
const categoryOrder: CategoryCode[] = ['HOME', 'DOCS', 'LEARNING', 'PERKS'];
|
||||
const categories: Record<string, string> = {};
|
||||
for (const [i, code] of categoryOrder.entries()) {
|
||||
const c = await db.category.create({ data: { code, sortOrder: i, barevPlusDiscountPct: DEFAULT_CATEGORY_DISCOUNTS[code] } });
|
||||
const c = await db.category.create({ data: { code, sortOrder: i, barevPlusDiscountPct: DEFAULT_CATEGORY_DISCOUNTS[code], eliteDiscountPct: DEFAULT_ELITE_DISCOUNTS[code] } });
|
||||
categories[code] = c.id;
|
||||
}
|
||||
const services: Record<string, { id: string }> = {};
|
||||
@@ -102,6 +104,10 @@ async function main() {
|
||||
data: { code: 'transfer', sortOrder: 1, name: { ru: 'Перевод на карту', en: 'Card transfer', zh: '银行卡转账', hy: 'Փոխանցում քարտին', es: 'Transferencia a tarjeta' } },
|
||||
});
|
||||
|
||||
// ── пресеты ставок клинеров ──
|
||||
await ensureDefaultPresets(db);
|
||||
const middle = await db.payoutPreset.findFirstOrThrow({ where: { name: 'Мидл' } });
|
||||
|
||||
// ── агентства ──
|
||||
const domik = await db.agency.create({ data: { code: 'DOMIK', name: 'Domik Realty', commissionPct: 10, contact: '+374 00 000000' } });
|
||||
await db.agency.create({ data: { code: 'YERHOME', name: 'Yerevan Home', commissionPct: 10 } });
|
||||
@@ -135,6 +141,7 @@ async function main() {
|
||||
districts: (keyof typeof districts)[];
|
||||
companyId?: string;
|
||||
rate?: { type: 'FIXED' | 'PERCENT'; value: number };
|
||||
presetId?: string;
|
||||
onShift?: boolean;
|
||||
rating?: [number, number];
|
||||
schedule?: typeof workweek;
|
||||
@@ -150,6 +157,7 @@ async function main() {
|
||||
languages: p.languages,
|
||||
rateType: p.rate?.type ?? 'PERCENT',
|
||||
rateValue: p.rate?.value ?? 70,
|
||||
payoutPresetId: p.presetId,
|
||||
onShift: p.onShift ?? true,
|
||||
ratingSum: p.rating?.[0] ?? 0,
|
||||
ratingCount: p.rating?.[1] ?? 0,
|
||||
@@ -160,7 +168,7 @@ async function main() {
|
||||
});
|
||||
}
|
||||
|
||||
const maria = await provider({ tg: SEED_TG.cleanerMaria, name: 'Мария Петросян', role: 'CLEANER', languages: ['ru', 'hy', 'en'], districts: ['kentron', 'arabkir'], rating: [47, 10], invite: 'PRO-MARIA' });
|
||||
const maria = await provider({ tg: SEED_TG.cleanerMaria, name: 'Мария Петросян', role: 'CLEANER', languages: ['ru', 'hy', 'en'], districts: ['kentron', 'arabkir'], rating: [47, 10], presetId: middle.id, invite: 'PRO-MARIA' });
|
||||
const ani = await provider({ tg: SEED_TG.cleanerAni, name: 'Ани Саргсян', role: 'CLEANER', languages: ['hy', 'ru'], districts: ['shengavit', 'erebuni', 'malatia_sebastia'], rate: { type: 'FIXED', value: 9000 }, rating: [22, 5], invite: 'PRO-ANI' });
|
||||
const elena = await provider({ tg: SEED_TG.cleanerElena, name: 'Elena Gómez', role: 'CLEANER', languages: ['es', 'en', 'ru'], districts: ['kentron', 'arabkir', 'nor_nork'], schedule: everyday, invite: 'PRO-ELENA' });
|
||||
await provider({ tg: SEED_TG.driverArman, name: 'Арман Мкртчян', role: 'DRIVER', languages: ['ru', 'hy', 'en'], districts: ['kentron'], schedule: everyday, rate: { type: 'FIXED', value: 7000 }, invite: 'PRO-ARMAN' });
|
||||
|
||||
Reference in new issue
Block a user