Bestellung

This commit is contained in:
Moritz Utcke
2025-02-20 17:07:49 +11:00
parent 727ea1c924
commit eac6f0c035
7 changed files with 272 additions and 216 deletions

View File

@@ -9,6 +9,7 @@ import {
} from "#lib/middleware/authorization.js";
import { UUidWithPrefix } from "#components/Ausweis/types.js";
import { getPrismaAusweisAdapter } from "#lib/server/ausweis.js";
import { AusweisTyp, PRICES, SERVICES } from "#lib/constants.js";
export const PUT = defineApiRoute({
meta: {
@@ -22,6 +23,7 @@ export const PUT = defineApiRoute({
.object({
ausweisart: z.nativeEnum(Enums.Ausweisart),
ausweis_uid: UUidWithPrefix,
ausweis_typ: z.nativeEnum(AusweisTyp)
})
.merge(
RechnungSchema.omit({
@@ -47,9 +49,13 @@ export const PUT = defineApiRoute({
// Wir erstellen eine Mollie Payment Referenz und eine neue Rechnung in unserer Datenbank, daraufhin geben
// wir eine Checkout URL zurück auf die der Nutzer weitergeleitet werden kann.
const { ausweis_uid, ausweisart, bezahlmethode, services } = input;
const { ausweis_uid, ausweisart, bezahlmethode, services, ausweis_typ } = input;
let betrag = PRICES[ausweisart][ausweis_typ]
// TODO: Services Implementieren
const servicePriceList = SERVICES[ausweisart]
for (const service of input.services) {
betrag += servicePriceList[service]
}
const adapter = getPrismaAusweisAdapter(ausweis_uid);
@@ -84,7 +90,7 @@ export const PUT = defineApiRoute({
const rechnung = await prisma.rechnung.create({
data: {
benutzer_id: user.id,
betrag: 0,
betrag,
bezahlmethode: bezahlmethode,
status: Enums.Rechnungsstatus.open,
aufnahme_id: ausweis.aufnahme_id,

View File

@@ -31,7 +31,7 @@ if (!adapter) {
return Astro.redirect("/")
}
const ausweis = adapter.findUnique({
const ausweis = await adapter.findUnique({
where: {
uid: uidAusweis
}