formatted the files
This commit is contained in:
@@ -307,7 +307,7 @@ export const handler = safeHandler(async (event: APIGatewayProxyEvent): Promise<
|
||||
);
|
||||
uploadedHostDocs.push({
|
||||
documentTypeXid: doc.documentTypeXid,
|
||||
documentName: doc.documentName, // Keep documentName for database
|
||||
documentName: doc.fieldName, // Keep documentName for database
|
||||
filePath,
|
||||
});
|
||||
}
|
||||
|
||||
@@ -529,58 +529,58 @@ export class MinglarService {
|
||||
}
|
||||
|
||||
async getAllCoadminAndAM() {
|
||||
// 1. Fetch all required users (Admin, Co-Admin, AM)
|
||||
const users = await this.prisma.user.findMany({
|
||||
where: {
|
||||
roleXid: {
|
||||
in: [
|
||||
ROLE.MINGLAR_ADMIN, // Admin
|
||||
ROLE.CO_ADMIN, // Co-Admin
|
||||
ROLE.ACCOUNT_MANAGER // AM
|
||||
]
|
||||
// 1. Fetch all required users (Admin, Co-Admin, AM)
|
||||
const users = await this.prisma.user.findMany({
|
||||
where: {
|
||||
roleXid: {
|
||||
in: [
|
||||
ROLE.MINGLAR_ADMIN, // Admin
|
||||
ROLE.CO_ADMIN, // Co-Admin
|
||||
ROLE.ACCOUNT_MANAGER // AM
|
||||
]
|
||||
},
|
||||
isActive: true,
|
||||
userStatus: USER_STATUS.ACTIVE,
|
||||
},
|
||||
isActive: true,
|
||||
userStatus: USER_STATUS.ACTIVE,
|
||||
},
|
||||
include: {
|
||||
role: {
|
||||
select: {
|
||||
id: true,
|
||||
roleName: true,
|
||||
include: {
|
||||
role: {
|
||||
select: {
|
||||
id: true,
|
||||
roleName: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
});
|
||||
});
|
||||
|
||||
if (!users.length) return [];
|
||||
if (!users.length) return [];
|
||||
|
||||
const userIds = users.map((u) => u.id);
|
||||
const userIds = users.map((u) => u.id);
|
||||
|
||||
// 2. Count assigned hosts for ANY user (Admin / Co-Admin / AM)
|
||||
const groupedHosts = await this.prisma.hostHeader.groupBy({
|
||||
by: ["accountManagerXid"],
|
||||
where: {
|
||||
accountManagerXid: { in: userIds }, // assigned user
|
||||
isActive: true,
|
||||
},
|
||||
_count: {
|
||||
id: true,
|
||||
},
|
||||
});
|
||||
// 2. Count assigned hosts for ANY user (Admin / Co-Admin / AM)
|
||||
const groupedHosts = await this.prisma.hostHeader.groupBy({
|
||||
by: ["accountManagerXid"],
|
||||
where: {
|
||||
accountManagerXid: { in: userIds }, // assigned user
|
||||
isActive: true,
|
||||
},
|
||||
_count: {
|
||||
id: true,
|
||||
},
|
||||
});
|
||||
|
||||
// 3. Build quick lookup map: userId -> hostCount
|
||||
const hostCountMap: Record<number, number> = {};
|
||||
groupedHosts.forEach((g) => {
|
||||
const uid = Number(g.accountManagerXid);
|
||||
hostCountMap[uid] = g._count.id;
|
||||
});
|
||||
// 3. Build quick lookup map: userId -> hostCount
|
||||
const hostCountMap: Record<number, number> = {};
|
||||
groupedHosts.forEach((g) => {
|
||||
const uid = Number(g.accountManagerXid);
|
||||
hostCountMap[uid] = g._count.id;
|
||||
});
|
||||
|
||||
// 4. Attach host counts to each user
|
||||
return users.map((user) => ({
|
||||
...user,
|
||||
assignedHostCount: hostCountMap[user.id] ?? 0,
|
||||
}));
|
||||
}
|
||||
// 4. Attach host counts to each user
|
||||
return users.map((user) => ({
|
||||
...user,
|
||||
assignedHostCount: hostCountMap[user.id] ?? 0,
|
||||
}));
|
||||
}
|
||||
|
||||
|
||||
async assignAMToHost(userId: number, hostXid: number, accountManagerXid: number) {
|
||||
|
||||
Reference in New Issue
Block a user