Remove user-app v1 and ship pending order, auth, and app fixes.

Drop the duplicate customer app from the monorepo and keep user-app-v2 as the only app; include order pricing, admin cart, OTP/SMS, and dashboard cache updates.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
mahmood
2026-10-28 16:22:32 +03:30
co-authored by Cursor
parent bc881a0a8a
commit 520454481b
367 changed files with 335 additions and 28536 deletions
@@ -14,7 +14,7 @@
*/
import { ProductImageRole, Prisma } from '@prisma/client';
import { fillEmpty, upsert, type Ctx } from '../lib/context';
import { grams, int, isZero, matchKey, percent, tehran, text } from '../lib/normalize';
import { grams, int, isZero, matchKey, percent, tehran, text, toNumber } from '../lib/normalize';
type Row = Record<string, unknown>;
@@ -224,9 +224,10 @@ export async function variants(ctx: Ctx) {
qty: int(r.qty) ?? 0,
isPreOrder: int(r.is_pre_order) === 1,
isActive: !deleted && int(r.is_active) === 1,
// Decimal(18,0). Zero stays null so a variant with no rial charge is unchanged.
rialWage: isZero(r.rial_pay) ? null : new Prisma.Decimal(toNumber(r.rial_pay).toFixed(0)),
// imageId: deliberately absent — PROTECTED.md §B.
};
if (!isZero(r.rial_pay)) ctx.report.count(S, 'rial charge (rial_pay) not carried — no target field');
const res = await upsert(ctx, 'variant', r.id, {
exists: async (id) => !!(await ctx.db.productVariant.findUnique({ where: { id } })),