---

import { Enums, prisma } from "#lib/server/prisma";
import Layout from "../../layouts/Layout.astro";
import PaymentSuccessModule from "#modules/PaymentSuccessModule.svelte";
import { sendPaymentSuccessMail } from "#lib/server/mail/payment-success";
import { getPrismaAusweisAdapter } from "#lib/server/ausweis";
import { sendInvoiceMail } from "#lib/server/mail/invoice";
import { getCurrentUser } from "#lib/server/user";

const uidRechnung = Astro.url.searchParams.get("r");
const uidAusweis = Astro.url.searchParams.get("a");
const user = await getCurrentUser(Astro)

if (!uidRechnung || !uidAusweis || !user) {
	return Astro.redirect("/")
}

const rechnung = await prisma.rechnung.findUnique({
	where: {
		uid: uidRechnung,
		benutzer: {
			uid: user.uid
		}
	}
})

const adapter = getPrismaAusweisAdapter(uidAusweis);

if (!adapter) {
	return Astro.redirect("/")
}

const ausweis = await adapter.findUnique({
	where: {
		uid: uidAusweis
	}
})

if (!rechnung || !ausweis) {
	return Astro.redirect("/")
}

if (rechnung.status === "paid") {
	sendPaymentSuccessMail(ausweis, rechnung, user)
} else if (rechnung.bezahlmethode === Enums.Bezahlmethoden.rechnung) {
	sendInvoiceMail(ausweis, rechnung, user)
}

---


<Layout title="Zahlung Erfolgreich - IBCornelsen">
	<PaymentSuccessModule {rechnung}></PaymentSuccessModule>
</Layout>