Sync domain SSL status on a 2-hour cron and capture owner FA/EN names.

List pages stay cheap by reading ssl_enabled while Nest probes apex hosts in the background; create-business now stores first/last name in both locales.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Alireza Hassani
2026-08-03 09:21:06 +03:30
co-authored by Cursor
parent f233665d13
commit 267a218c26
8 changed files with 231 additions and 8 deletions
+16 -2
View File
@@ -42,6 +42,7 @@ type BusinessRow = {
sslEnabled: boolean | null;
ownerUserId: bigint | null;
ownerName: string | null;
ownerNameEn: string | null;
ownerCellNumber: string | null;
primaryColor: string | null;
defaultLocale: string | null;
@@ -117,6 +118,7 @@ export class BusinessAdminService {
dom.ssl_enabled AS "sslEnabled",
own."ownerUserId" AS "ownerUserId",
own."ownerName" AS "ownerName",
own."ownerNameEn" AS "ownerNameEn",
own."ownerCellNumber" AS "ownerCellNumber",
b.settings->'branding'->>'primaryColor' AS "primaryColor",
b.settings->'branding'->>'defaultLocale' AS "defaultLocale"
@@ -131,7 +133,8 @@ export class BusinessAdminService {
LEFT JOIN LATERAL (
SELECT
u.id AS "ownerUserId",
(u.first_name || ' ' || u.last_name) AS "ownerName",
NULLIF(TRIM(BOTH ' ' FROM COALESCE(u.first_name, '') || ' ' || COALESCE(u.last_name, '')), '') AS "ownerName",
NULLIF(TRIM(BOTH ' ' FROM COALESCE(u.first_name_en, '') || ' ' || COALESCE(u.last_name_en, '')), '') AS "ownerNameEn",
u.cell_number AS "ownerCellNumber"
FROM business_users bu
JOIN users u ON u.id = bu.user_id
@@ -823,7 +826,12 @@ export class BusinessAdminService {
tx: Prisma.TransactionClient,
dto: Pick<
CreateBusinessDto,
'ownerFirstName' | 'ownerLastName' | 'ownerCellNumber' | 'ownerPassword'
| 'ownerFirstName'
| 'ownerLastName'
| 'ownerFirstNameEn'
| 'ownerLastNameEn'
| 'ownerCellNumber'
| 'ownerPassword'
>,
) {
const existing = await tx.user.findUnique({
@@ -847,6 +855,8 @@ export class BusinessAdminService {
passwordHash,
firstName: dto.ownerFirstName.trim(),
lastName: dto.ownerLastName.trim(),
firstNameEn: dto.ownerFirstNameEn.trim(),
lastNameEn: dto.ownerLastNameEn.trim(),
cellVerifiedAt: new Date(),
},
});
@@ -933,6 +943,8 @@ export class BusinessAdminService {
cellNumber: string;
firstName: string | null;
lastName: string | null;
firstNameEn: string | null;
lastNameEn: string | null;
email: string | null;
};
}[];
@@ -971,6 +983,8 @@ export class BusinessAdminService {
cellNumber: owner.cellNumber,
firstName: owner.firstName,
lastName: owner.lastName,
firstNameEn: owner.firstNameEn,
lastNameEn: owner.lastNameEn,
email: owner.email,
}
: null,