Fix mobile validation, cascade delete for businesses/categories, and DB error handling.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-05-21 14:20:46 +03:30
co-authored by Cursor
parent 97abb808b8
commit 2d6bae2ba1
14 changed files with 237 additions and 26 deletions
+6 -2
View File
@@ -12,6 +12,10 @@ import { JwtService } from '@nestjs/jwt';
import { InjectRepository } from '@nestjs/typeorm';
import { createHash, randomInt } from 'crypto';
import { IsNull, MoreThan, Repository } from 'typeorm';
import {
isValidIranMobile,
normalizeIranMobile,
} from '../../common/utils/iran-mobile.util';
import { AuthOtpEntity } from '../../entities/auth-otp.entity';
import { UserEntity, UserRole } from '../../entities/user.entity';
import { JwtPayload } from './auth.types';
@@ -200,8 +204,8 @@ export class AuthService {
}
private normalizeMobile(mobile: string): string {
const normalized = String(mobile ?? '').trim();
if (!/^(\+?\d{10,15}|09\d{9})$/.test(normalized)) {
const normalized = normalizeIranMobile(mobile);
if (!isValidIranMobile(normalized)) {
throw new BadRequestException('Invalid mobile number');
}
return normalized;