fix email sender all flow
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import { Prisma } from "@/app/generated/prisma/client";
|
||||
import { prisma } from "@/lib/prisma";
|
||||
import { payoutRepo } from "@/server/repositories/payout.repo";
|
||||
import { emailService } from "@/lib/email/send";
|
||||
|
||||
const SERIAL_TX_ATTEMPTS = 6;
|
||||
|
||||
@@ -134,6 +135,33 @@ export const payoutService = {
|
||||
where: { id: { in: ids }, status: "HELD" },
|
||||
data: { status: "RELEASED", releasedAt: now },
|
||||
});
|
||||
|
||||
// E3.6 — kabari organizer payout-nya sudah lepas hold & masuk antrian
|
||||
// transfer. Pin ke `releasedAt: now` supaya hanya yang baru di-release.
|
||||
const released = await prisma.payout.findMany({
|
||||
where: { id: { in: ids }, status: "RELEASED", releasedAt: now },
|
||||
select: {
|
||||
id: true,
|
||||
amount: true,
|
||||
organizer: { select: { email: true, name: true } },
|
||||
trip: { select: { title: true } },
|
||||
},
|
||||
});
|
||||
for (const p of released) {
|
||||
void emailService.send({
|
||||
to: p.organizer.email,
|
||||
idempotencyKey: `payout_released-${p.id}`,
|
||||
template: {
|
||||
template: "payout_released",
|
||||
data: {
|
||||
organizerName: p.organizer.name,
|
||||
tripTitle: p.trip.title,
|
||||
amount: p.amount,
|
||||
},
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
return { releasedIds: ids };
|
||||
},
|
||||
|
||||
|
||||
Reference in New Issue
Block a user